Amazon DynamoDB テーブルにデータを一括でアップロードしたいと考えています。これを行うにはどうすればよいですか?
解決方法
次のいずれかのオプションを使用して、データを DynamoDB に一括でアップロードします。
BatchWriteItem
複数の PutItem 呼び出しを同時に発行するには、BatchWriteItem API オペレーションを使用します。また、コード内で並列プロセスまたはスレッドを使用して、複数の並列の BatchWriteItem API 呼び出しを発行して、データのロードを高速化することもできます。
AWS Data Pipeline
データが Amazon Simple Storage Service (Amazon S3) にある場合は、Data Pipeline を使用して DynamoDB にエクスポートできます。Data Pipeline は、Amazon EMR クラスターを作成し、BatchWriteItem の並行リクエストでデータを Amazon S3 から DynamoDB にエクスポートするプロセスを自動化します。Data Pipeline を使用する場合、並列転送用のコードを記述する必要はありません。詳細については、「Amazon S3 から DynamoDB にデータをインポートする」を参照してください。
テーブルのインポート機能
データが S3 に保存されている場合は、テーブルのインポート機能を使用して新しい DynamoDB テーブルにデータをアップロードできます。この機能は、圧縮形式 (GZIP もしくは ZSTD) または非圧縮形式の CSV、DynamoDB JSON、または Amazon ION 形式をサポートします。詳細については、「Amazon S3 からの DynamoDB データのインポート: 仕組み」を参照してください。
Amazon EMR
Amazon EMR および Apache Hive を使用して DynamoDB にデータをアップロードするには、次の手順に従います。
- 次の手順で EMR クラスターを作成します。
[Release] (リリース) で、emr-5.30.0 以降を選択します。
[Applications] (アプリケーション) で、Hive を含むオプションを選択します。
- データの Amazon S3 の場所を指す外部 Hive テーブルを作成します。
- 別の外部 Hive テーブルを作成し、DynamoDB テーブルをポイントします。
- INSERT OVERWRITE コマンドを使用して、Amazon S3 から DynamoDB にデータを書き込みます。詳細については、DynamoDB へのデータのインポートを参照してください。
AWS Database Migration Service (AWS DMS)
AWS DMS を使用して、リレーショナルデータベースから DynamoDB テーブルにデータをエクスポートできます。詳細については、Amazon DynamoDB データベースを AWS Database Migration Service のターゲットとして使用するを参照してください。
AWS Glue
アップロードするデータが、元々 DynamoDB エクスポート機能を使用して別の DynamoDB テーブルから S3 にエクスポートされたものである場合は、このオプションを使用します。エクスポート機能は DynamoDB バックアップ機能を使用し、ソーステーブルをスキャンしないため、このオプションは大きなデータセットのアップロードに効率的です。ソーステーブルのパフォーマンスや可用性には影響しません。詳細については、「Using AWS Glue and Amazon DynamoDB export」(AWS Glue の使用と Amazon DynamoDB エクスポート) を参照してください。