どのバックエンドデータベースがIoT実装に適しているか


15

お客様にIoTサービスを提供する必要があります。デバイスからデータベースにデータを取り込むために、MQTT、Kafka、Rest Servicesコンポーネントが使用されます。バックエンドのデータを分析する必要があります。データサイズは、135バイト/デバイスおよび6000デバイス/秒になります。ここでアーキテクチャを共有して、要件とコンポーネントを理解しました。

ここに画像の説明を入力してください

データストア(MongoDB、Postgresql(TimescaleDB)、Redis、Neo4j、Cassandra)について調査したところ、すべてのベンダーが、データベースがIoTのユースケースに適していることを証明しました。IoTで実績のある/最も信頼性の高い/スケーラブルなデータベースを使用することについて混乱しています。

これだけのデータを取り込み、分析を行うのに最適なデータベースは何でしょうか?

IoTに適したデータベースの実証済みのベンチマークはありますか?

あなたの考えや提案をお願いします。


最近、同様のユースケースでElasticSearchを使用しました。しかし、なぜ他のものよりも優れているのかは言えません。その部分はほとんど意見に基づいています。文字通りKafkaを使用してセンサーをDBに接続しました。ElasticsearchでKafkaのストリーム処理をサポートする素敵なライブラリがあります
-atakanyenel

2
「IoTのユースケース」は、実装をランク付けするには広すぎます。それぞれに長所と短所があります。
ジル 'SO-悪であるのをやめる'

1
私の分野ではありませんが、現代のデータベースがここに合わない場合は驚かれることでしょう。使い慣れたものを使用するか、最も光沢のあるツールを使用してください。
ショーンフーリ

回答:


4

SQLデータベースではサーバー上で6K TPSを直接使用することはできず、MQTT / Kafkaを介してテレマティクスデータを受信するなど、この種の操作に既に特化したSaaSクラウドサービスまたはプラットフォームを使用することもできないため、NoSQLデータベースに限定されます。分割してこれらの6000デバイス用に保存し、簡単なREST APIを提供してテレメトリデータにアクセスします。同様flespiまたは類似のものは何でも。


あなたのポイントと感謝を得ました。私のユースケースに最適なNoSQLデータベースを教えてください。
カーン

それはあなたの経験とランタイム環境に本当に依存します。AWS / GoogleCloudの場合は、1つの選択肢になります。ローカルインストールの場合は、LevelDBまたはその競合他社にお勧めします。GoogleでlevelDBを検索すると、それらの完全なリストが表示されます。いずれのバリアントでも、Webアプリケーションとデータベースの間に中間APIを実装する必要があります。そのため、これは使用するバックエンドの種類にも依存します。この記事で説明したとおり、mqttでデータを入力し、Webからデータと履歴にアクセスする場合。
シャル

1
ところで、私は過去15年間にこのNoSQLデータベースの多くを試しました。早い時期にBerkeley DBから始めました。最後に、アプリケーションで最大限のパワーとパフォーマンスが必要で、データベースの最大IOPとスループットを絞り込もうとする場合、他に方法はありませんが、特にテレマティクス(IoT)のユースケースと要件を対象とした独自のデータベースエンジンを開発します。しかし、それは私の経験でした+)
シャル

「6K TPS」?? 6tB /秒?
Mawgは、モニカを

6.000トランザクション/秒
SHAL

4

IoTはほとんど時系列データです。InfluxDB、OpenTSDB、GridDBなど、いくつかのTSDBがあります。これらはすべてコミュニティ/ ossバージョンを持っているため、ニーズに合っているかどうかを確認できます。InfluxDBは一般的なものですが、クラスタリングは有料版でのみ利用可能です。OpenTSDは純粋なossであり、GridDBはIoT指向であり、InfluxDBよりも高速であると述べています。ニーズに応じて、取り込みが速いものを探したいかもしれません。


2

Timeseriesデータセット用にカスタマイズされたpostgres拡張機能であるTimescaledbは、非常にうまく機能します。また、通常のリレーショナルデータベース機能、SQLの使用、信頼性、インデックス、スケーラビリティが得られます。


1

質問は広範であり、正確な回答は提供できませんが、これらのリンクは役立ちます。

http://outlyer.com/blog/top10-open-source-time-series-databases/ ここに画像の説明を入力してください

ベンチマークのフォローアップ:http : //outlyer.com/blog/time-series-database-benchmarks/

その他の比較:https : //gist.github.com/sacreman/00a85cf09251147175241d334aafa798

範囲を制限しようとするいくつかのルールを設定しないと、このブログは終わりません。

無料でオープンソースの時系列データベースとその機能のみが比較されています。したがって、誰かが「Kdb +とInformixを試してみましたか?」彼らはおそらく素晴らしいです。

このリストには、マーケティング資料で時系列として分類されているデータベース、または時系列データに使用しているものとしてクールな会社のブログで記述されているデータベースのみが含まれます。

これまでに行われたのは、公式ドキュメントを読み、StackOverflowを読み、Githubの問題とコードを調べ、一般に情報を一緒にハッキングすることです。これを念頭に置いて、いくつかの事実が間違っている可能性があります。

誰かが事実に誤りを見つけた場合はお知らせください。ブログを更新します。

ベンチマークは、マーケティングの主張と推定に基づいています。どうして?ベンチマークはかなりの量の作業であり、エラーが発生しやすいためです。常に「この特別な文書化されていない設定を調整する必要があります」と表示されます。リストされている数値は、ほとんどのデータベースにとって非常に有利です。これらは、過去のある時点でTwitterでブログに投稿されたか、Twitterで主張された数字です。数字が間違っていると思われる場合はお知らせください。更新します。


0

前の回答に加えて、TarantoolClickHouse、およびScyllaDBも参照することをお勧めします 。ほとんどの場合、これらのソリューションで十分です。

状況によっては、特に埋め込みの場合を除き、MDBX(またはそれに似たもの)が役立つ場合があります。


2
これらを推奨する理由を詳しく説明しますか?
ヘルマー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.