2016-05-24 5 views
2

クリックストリームタイプのユーザーイベントデータをテラバイト単位で保存しています。狭い日付範囲を合理的に迅速に照会できるように、日付別に索引付けまたはパーティション化する必要があります。私はこれに関する集計ジョブとクエリを実行できるようにしたい。 Amazon EMRなどでSparkを使用する予定です。DynamoDBとS3フラットファイル

s3://my-bucket/20160503_00/data.txt 
s3://my-bucket/20160503_01/data.txt 
s3://my-bucket/20160503_02/data.txt 

私は可能性が高い利用寄木柱ストレージではなく、生のテキストのと同じよう:

s3://my-bucket/20160503_00/data.parquet 
s3://my-bucket/20160503_01/data.parquet 
s3://my-bucket/20160503_02/data.parquet 

別のオプションは、Amazonでいっぱいです

1つのオプションは、のような一日+時間で仕切らS3フラットファイルでありますDynamoDB?

それぞれの長所と短所は何ですか?

+2

あなたがs3を使用している場合は、重要なスペースとIOサイクルを節約するためにコンテンツを圧縮して保存してください(効果的にテキストを保存しているので、うまく圧縮されます。 )また、レコード対ファイルの比率を低く抑えてください(ファイルごとに1秒あたり1レコードではなく、1ファイルあたり1分に集計するか、または可能であればどのようなものであれ)。私がこのような何かをしたとき、毎秒s3に同期しますが、5分ごとに戻ってきて1秒あたりのデータをより大きなチャンクに集約します。) – keen

答えて

0

AWS KinesisからAWS Kinesis Firehoseまでのデータをストリーミングして、データをバッファし、128MB or 15 minute chunksの小さい方でS3に保存できます。 Firehoseは自動的にチャンクをサブフォルダに配置し、必要な範囲ベースの検索を可能にします。

関連する問題