1

EMR 初心者向けアラート:

当社の Web サイトの使用状況データを含む大きなログがあります。顧客は、顧客 ID によって認証および識別されます。お客様の問題をトラブルシューティングしようとするときはいつでも、すべてのログを調べ (検索条件として customer_id を使用)、結果をファイルにパイプします。次に、結果ファイルを使用して問題のトラブルシューティングを行います。オンデマンドで顧客ごとのログ ファイルを作成する必要がないように、EMR を使用して顧客ごとのログ ファイルを作成することを考えていました。EMR は、すべての顧客に対して毎時間それを行ってくれます。

私たちは EMR ストリーミングを検討しており、マップ ステップ用の小さな Ruby スクリプトを作成しました。これで、キー/値 (ユーザー ID、ログデータ) の大きなリストができました。

ただし、reduce ステップで行き詰まっています。理想的には、特定の顧客のすべてのログデータを含むファイルを生成し、それを S3 バケットに入れたいと考えています。これを行う方法を教えてくれる人はいますか? EMR は私たちが使用したいテクノロジーでさえありますか?

ありがとう、ベンノ

4

3 に答える 3

0

可能性の 1 つは、ID レデューサーを使用して、事前にプロパティを介してリデュース タスクの数を規定することです。一連のユーザーのすべてのレコードが存在する固定数のファイルに到達します。特定のユーザーを検索するための適切なファイルを見つけるには、ユーザー ID をハッシュして適切なファイルを特定し、その中で検索します。

ユーザーごとに 1 つのファイルが本当に必要な場合は、レデューサーが呼び出されるたびに新しいファイルを生成する必要があります。ruby で利用できる s3 クライアント ライブラリはたくさんあると確信しています。

于 2013-10-04T03:45:00.713 に答える