0

何千もの IOT デバイス (温度、圧力、RPM など、合計 50 以上のパラメーター) からデータを取得し、多くの処理を行わずにダッシュボードに表示する必要があります (数値が範囲内にあるかどうかをチェックするだけで、それ以外の場合はアラームが発生します) が、リアルタイムです。Kinesis Storm ClickStream Appなどの多くの AWS ブログ リソースを確認してテストしました

ただし、このような簡単な作業には、嵐を使用するのはやり過ぎだと思います。やりたいことは、データを DB に保存してグラフ (30 分、1 時間、またはカスタム日付) を表示することだけです。これは私がこれまでに考え出したものです

Device -> AWS IOT(mqtt) -> Kinesis -> x -> dynamoDB -> Presenter Web APP (Laravel)ClickStream の例で述べたように、グラフとアラートをリアルタイムで更新するには、Node.jsand を使用する必要があるかもしれません。Redis Pub/Sub

Apache Storm は Java であり、学習曲線がある (そして適切なリソースが見つからない) ため、使用したくありません。使用できることはわかっていますLambdaが、どのようにスケーリングするかはわかりません。

  • 解決策について何か考えはありますか?
  • AWS には、PHP 用の KCL、代替手段、またはソリューションがありませんか? 私は PHP には精通していますが、Java には精通していません。
4

2 に答える 2

1

Apache ストームは、分散イベント処理フレームワークです。あなたのユースケースでは、イベントに対して計算を実行していないようです。基本的に、アプリケーションは次の 3 つのタスクを実行します。

  1. システムにデータを取り込みます。
  2. 期間 X から Y までのデータを読み取ります。
  3. Web フロントエンドでグラフを描画します。

取り込み部分は AWS-IOT によって処理されます。最初に行う必要があるのは、SNS トピックを作成し、すべての IoT データをSNSトピックに公開することです。ここでは、データ型 (例: 温度、圧力) ごとに 1 つのトピックを作成し、コンシューマーSQSキューをトピックにアタッチしてメッセージを蓄積するという柔軟性が得られます。永続的な DB の場合、1 つのコンシューマーをDynamoDBテーブルにすることができ、別のコンシューマーを、何らかのフィルタリングとデータ変換を実行してキャッシュを更新するLambda関数にすることができます。データに対して何らかのOLAP /Analytical クエリを実行する必要がある場合は、 Redshiftをコンシューマーの 1 つとして使用することを検討してください。設計を完成させるには、特定の要件を検討する必要があります。

于 2016-06-02T21:23:30.137 に答える
0

IoT Core で mqtt メッセージを受信した後、データを AWS IoT Analytics にルーティングすることを検討しましたか? このようにして、kinesis、Dynamo、およびプレゼンテーション レイヤーを使用したすべてのインフラストラクチャの重労働を取り除くことができます。

AWS IoT Analytics は、取り込み、データ準備、およびクエリ機能を提供します。処理済みデータストアにデータを保存したら、AWS QuickSight で視覚化できます。

于 2018-06-23T07:59:00.373 に答える