-1

DynamoDBに格納されている毎日のログテーブル(毎日約10mの入力)があります。AWS:dynamodbからredshiftへのデータ変換

分析を行うには、Redshiftに転送する必要があります。さらに、文字列(nvarchar(250))を解析することで、既存の列から新しい列を作成する必要があります。私の考えは、COPYコマンドを使用してDynamoDBからRedshiftにデータを転送し、UDFを使用して新しい列を作成することでした。

このアプローチの問題は、(両方の部分)を完了するのに多くの時間がかかり、失敗し続けることです(問合せの状態が悪化します):1つのコピーコマンドで約10日間のデータを転送しています。

データパイプラインやEMRのようなアマゾンサービスを使用する方が良いと思いますか?同じことをやっているのですが、組織は違っていますか?

答えて

1

私の設計提案はあなたのデータをdynamodbに保存しません。コスト・パースペクティブでは、コピー・コマンドを実行するときに、ダイナモ・データベース用に設定した最高​​のスループット値を消費するためです。

どのようにプライマリキーの値を設定するのか、dynamodbに設定した現在のスルー値がどのようなものかはわかりません。

私のソリューションは、データをs3に必要な赤色シフトストレージ形式で書き込みます。 s3から、定期的/一回の活動でデータパイプラインを使用して、データを赤方偏移クラスタに処理します。

Awsデータパイプラインは、デフォルトでEMRを使用してデータを処理します。

データを保存する前にさらにクレンジングが必要な場合は、EMRでSparkを使用することを検討してください。

しかしこれの前に、あなたは言う必要があります。 10mのレコードサイズのサイズは何ですか?s3への書き込みのように私の提案を採用するオプションがあります。はいの場合は、パフォーマンス/コスト最適化プロセスを考慮して設計する必要があります。

さらにヘルプが必要な場合は、コメントを投稿することをお勧めします。

+0

ありがとうございました! 1つの質問:データパイプラインを使用してダイナモブロックからs3にデータを転送するとき、またはデータを最初に転送してから変換(赤方偏移)する必要があると思いますか? –

+0

データパイプラインはこの機能をサポートしていません。なぜあなたは必要なデータでs3ファイルを書くことができませんか?あなたはdynamo dbからそれをしたい場合。 awsグルーのために行くか、ラムダのダイナモdbストリームラッパーとプロセスレコードを使用してs3に書き込みます(しかし、私はこのソリューションを長期的/コスト/パフォーマンスの要素で強く反対します) –

+0

私が見た限り、awsグルーそれだけでなく)は、私たち東(n。バージニア)と私のデータは、他の地域にある1つの地域で利用可能です... –

0

AWS Glueを使用して、ETL(Extract Transform Load)ジョブを設定して、DynamoDBからRedshiftにデータを移動できます。

関連する問題