0

私はdynamodbテーブルをアーカイブし、90日間のみデータを保持したいと思います。私は90日を追跡するのに使うことができるテーブルの中にrecords_onというフィールドを持っています。データパイプラインを見ると、EMRが必要ないので、EMRで過度の過労と思われます。これを行うためのよりよい方法はありますか?日付/日に基づいてDynamodbをアーカイブします

1. Cronjob that will continue to run everyday and match recorded_on + 90days > today's date and put those rows in s3 and delete those rows. 

2. Separate cronjob to put data from s3 to redshift everyday. 

答えて

0

なぜAWSデータパイプラインを使用することが過剰であると思いますか?あなたはカスタムジョブを使うことができますが、それはパイプラインがあなたのために自動的に行う追加作業を必要とします。

奥のEMRクラスターを使用しているという事実は、その詳細があなたから離れて抽象化されているので、問題ではないはずです。 dynamoDbをs3にアーカイブするパイプラインを設定するのはとても簡単です。 90日以上経過したデータを削除するには、カスタムスクリプト&を使用してData Pipeline ShellCommandActivity(http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-shellcommandactivity.html)を実行して実行します。ここで

はCRONを超えるデータパイプラインのいくつかの利点があります:

  1. リトライ障害が発生した場合には。
  2. 監視/アラーム。
  3. EC2をプロビジョニングする必要はなく、AWSはバックグラウンドのすべてを処理します。
  4. エクスポートでどれだけの容量のDynamoDbを使用できるかを制御します。これは、エクスポートジョブが他のシステムに影響を与えないようにするために非常に重要です。

これも非常に安く、https://aws.amazon.com/datapipeline/pricing/です。

よろしく ディネッシュSolanki

0

あなたは毎日実行(またはあなたが好きな間隔で)スケジュールされたラムダ関数を作成することができ、クエリやアーカイブ項目を実行しています。

また、スケールを調整してパフォーマンスを向上させる場合は、Lambda関数でクエリを実行し、アーカイブする必要のある各アイテムのSNSトピックにメッセージを書き込んで、その上に別のラムダ関数をトリガすることができますSNSトピックを作成し、アーカイブ操作を実行します。

関連する問題