DynamoDB データをS3 からインポートとS3 にエクスポート試してみた。

2023.05.31

概要

S3 からDynamoDBにインポートする

DynamoDB の [Imports from S3] 機能を使用して、S3 から DynamoDB テーブルにデータをインポートできます。これにより、Amazon S3 から新しい DynamoDB テーブルにテラバイト単位のデータを一括インポートできます。CSV、DynamoDB JSON、または Amazon Ion 形式のデータをインポートできます。データは新しいテーブルにインポートされます。既存のテーブルへのインポートはサポートされていません。

 

S3 にデータのエクスポートする

DynamoDB の [Exports to S3] 機能を使用して、DynamoDB テーブルから S3 にデータをエクスポートできます。データをエクスポートするには、DynamoDB ソーステーブルでポイントインタイムリカバリ (PITR) を有効にする必要があります。DynamoDB JSON または Amazon Ion でデータをエクスポートできます。

この記事では、DynamoDB データをS3 からインポートとS3 にエクスポート試してみました。

 

やってみた

S3 から DynamoDB JSON 形式でデータをインポートする

  • JSON 形式でデータ ファイル [test-data.json] を作成し、そのファイルを S3 バケットにアップロードしておきます。

 

{"Item":
{
  "Id":{"S":"101"},
  "object":{"S":"image1.jpg"}, "size":{"S":"50KB"}, "Created":{"S":"Tuesday, 30 May 2023 at 1:15 PM"}
}
}
{"Item":
{
  "Id":{"S":"102"},
  "object":{"S":"image2.jpg"}, "size":{"S":"150KB"}, "Created":{"S":"Tuesday, 30 May 2023 at 2:15 PM"}
}
}
........

 

  • DynamoDB コンソールのナビゲーションペインで、[Imports from S3]を選択し、[Import from S3]をクリックしておきます。
  • S3 のソース URL を入力し、[DynamoDB JSON] を [Import file format] として選択しておきます。

 

 

  • テーブル名、パーティション キー、およびソート キー (必要な場合) を入力し、他の設定をデフォルトのままにしてデータをインポートしておきます。

 

 

  • インポートの [Status] を確認できます。インポートが失敗した場合は、CloudWatch ログでエラーの詳細を確認できます。

 

  • インポートが完了すると、DynamoDB テーブル内のデータを確認できます。

 

S3 から CSV 形式でデータをインポートする

  • CSV 形式でデータ ファイル [data.json] を作成し、そのファイルを S3 バケットにアップロードしておきます。この CSV データにはヘッダー値がありません。
101|image1.jpg|Tuesday, 30 May 2023 at 1:15 PM
102|image2.jpg|Tuesday, 30 May 2023 at 2:15 PM
......

 

  • CSV 形式でデータをインポートするには、[CSV] を [Import file format] として選択しておきます。
  • データ ファイルにはヘッダーがないため、ヘッダーを定義し、[Pipe ("|")] を [CSV delimiter character] として選択し、他の設定をデフォルトのままにしてデータをインポートしておきます。

 

 

  • インポートの [Status] を確認できます。インポートが失敗した場合は、CloudWatch ログでエラーの詳細を確認できます。

 

DynamoDB テーブルから S3 にデータをエクスポートする

  • データをエクスポートするには、DynamoDB ソーステーブルでポイントインタイムリカバリ (PITR) を有効しておきます。

 

  • DynamoDB コンソールのナビゲーションペインで、[Exports to S3] を選択し、[Export to S3]をクリックしておきます。
  • ソーステーブルと宛先S3バケットを選択し、[DynamoDB JSON] を [Exported file format] として選択して、エクスポートしておきます。

 

 

  • エクスポートの [Status] を確認します。

 

  • エクスポートが完了すると、S3 バケットにエクスポートされたデータが表示されます。

 

まとめ

DynamoDBの [Imports from S3] と [Exports to S3] の機能により、コードを書くことなく簡単にデータのインポートやエクスポートができるようになりました。ただし、S3 バケットから既存の DynamoDB テーブルにデータをインポートすることはできません。

Reference :

Import from S3

Export to S3