0

私はDynamo DBテーブルのセットを持っています。そして、私はこれらのテーブルのデータ用にダイナミックリアルタイム(またはリアルタイムに近い)ダッシュボードを構築するための適切なソリューションを設計したいと考えています。DynamoDBでデータ用の適切な分析ダッシュボードを構築するにはどうすればよいですか?

たとえば、テーブル「ユーザー」があり、各ユーザーアイテムに「性別」属性がある場合。私は男性/女性のユーザーの数を監視して、機能をリリースした後にどのように増減するかを確認するリアルタイムダッシュボードを構築したいと考えています。

いくつかの調査の末、私は次の解決策を考え出しました: - DynamoDBに接続されたEMRクラスタを使用してください。 - EMRの出力をAmazon QuickSightに接続します。

このソリューションは効率的ですか? 膨大なデータ(例:100M行)がある場合は正常に動作しますか?

答えて

1

DynamoDBテーブル全体をEMRにダンプする予定の場合は、帯域幅、リソースなどの無駄を浪費します.Dynamodbの読み取り容量をすべて支払う必要があります。

最も簡単な形式では、テーブルをクエリして、クエリの数を「男性」/「女性」(、ただし、)にすることができます。

デザインを再考してください。私が絶えず変化しているものの合計を知る必要があれば、私は別のテーブルを作成し、アイテムがメインテーブルに追加/削除/変更されるたびに更新するでしょう。次に、データベース全体をスキャンするのではなく、1つの行だけを含む簡単なクエリを実行できます。

本当にDynamoDBをダンプする必要がある場合は、S3にダンプして、Amazon Athenaを使用してS3から直接データを処理します。このような単純な作業のために、Amazon EMRは大きな過労です。

+1

OPが100Mの行... DynamoDBのクエリを考慮する必要はないと言います。それでも、おそらく別のテーブルを作成するのが道です。 –

0

「リアルタイム」とはどういう意味ですか? 5秒または5時間の遅延のような? 5秒または5分であれば、EMRは機能しません。 EMRはhadoopに基づいており、バッチ処理であるためです。

DynamoDB自体はNoSQLデータベースです。このダッシュボードにDynamoDBテーブルを直接照会させてみませんか?

+1

プロビジョニングされた容量では、DynamoDBは解析/レポートに使用できません。 –

+0

たぶん私は「リアルタイム」という言葉を誤解しているかもしれませんが、これはコストに直接関係していることを完全に理解しているので、1時間は最低です。 DynamoDBのクエリは問題ありませんが、私の分析のほとんどはリレーショナルクエリです。それが可能だとしても、DynamoDBはそのために設計されていないと私は思う。それは効率性とコストの観点から悪いことです。 – hatemfaheem

+0

私は、そのドキュメントストア、つまりSQLデータベースがないと分析目的には適していないと思います。 –

関連する問題