2016-05-30 11 views
0

IOTデバイスの1000s(温度、圧力、RPMなどの合計50+パラメータ)からデータを取得し、多量の処理を行わずにダッシュボードに表示する必要がありますそれ以外の場合はアラームを発生させます)。 Kinesis Storm ClickStream AppAWS IOTからダッシュボードグラフへのストリームデータ

のような多くのawsブログリソースを見直してテストしましたが、このような簡単な作業のためにストームを使用するのは残念です。私がしたいのは、DBにデータを保存し、グラフ(30分、1時間、またはカスタム日付)を表示することだけです。これは私がこれまで

Device -> AWS IOT(mqtt) -> Kinesis -> x -> dynamoDB -> Presenter Web APP (Laravel) 私はグラフやアラートへのリアルタイムの更新のためのクリックストリームの例で述べたようにNode.jsRedis Pub/Subを使用する必要があります考え出したものです。

Apache StormはJavaになっており、学習曲線があり(いいリソースが見つかりませんでした)、Apache Stormは使いたくありません。私はLambdaを使うことができますが、どのようにスケールするのかはわかりません。

  • 解決策についてのご意見はありますか?
  • AWSにはKCL for PHP、代替案またはソリューションはありませんか?私はPHPに精通していますが、Javaには慣れていないからです。

答えて

1

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

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

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

+0

おかげさまで、私はキネシスを完全に削除し、 'デバイス - > AWS IOT(mqtt) - > SNS - > SQS - > Lambda - > dynamoDB'を使用しています。 「1人のコンシューマはDynamoDBになることができます」と言いましたが、それはどういう意味ですか?ダイナモは直接いくつかのテーブルにデータを保存することができますか、私はラムダが必要ですか? – Junaid

+0

KinesisとSQSはわずかに異なる用途を持つ2つの異なるキューイングソリューションです。キネシスは、データの耐久性が必要な場所で最も適しています。摂取はデータストリームの形で行われます。私はSQS対Kinesisの議論に行きません、あなたはそれを自分で評価することができます。 「1つのコンシューマはDynamoDBになることができます」:SNSトピックにメッセージをパブリッシュするときは、そのトピックでリッスンするコンシューマをいくつでも持つことができます。したがって、1 ... Nメッセージ配信として動作します。 SNSの詳細を読む。 – Adi

関連する問題