DynamoDB から Amazon Redshift へのデータのロード - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DynamoDB から Amazon Redshift へのデータのロード

Amazon Redshift は、Amazon DynamoDB を補完し、高度なビジネスインテリジェンス機能と強力な SQL ベースのインターフェイスを使用します。DynamoDB テーブルのデータを Amazon Redshift にコピーすると、Amazon Redshift クラスター内の他のテーブルとの結合など、複雑なデータ分析のクエリを実行することができます。

プロビジョニングされたスループットの面から見ると、DynamoDB テーブルからのコピーオペレーションによって、テーブルの読み込み容量が低下します。データをコピーした後は、Amazon Redshift 内の SQL クエリを実行しても DynamoDB に影響はありません。これは、DynamoDB 自体に対してではなく、DynamoDB からのデータのコピーに対してクエリが実行されるためです。

DynamoDB テーブルからデータをロードするには、まずデータのロード先として Amazon Redshift テーブルを作成する必要があります。注意していただきたいのは、NoSQL 環境から SQL 環境にデータをコピーしていることと、1 つの環境での特定のルールが他の環境には適用されないことです。考慮すべき相違点の例を以下に示します。

  • DynamoDB テーブル名には、最大 255 文字を含めることができます。これは、「.」を含み、「.」 (ドット) と '-' (ダッシュ) 文字で、大文字と小文字が区別されます。Amazon Redshift テーブル名は 127 文字に制限され、ドットおよびダッシュは含まず、大文字と小文字は区別されません。さらに、テーブル名には、Amazon Redshift の予約語と重複しない値を指定する必要があります。

  • DynamoDB では、SQL の NULL の概念がサポートされません。Amazon Redshift において、空白またはブランクの属性値をどのように解釈するか、つまり、NULL と空白フィールドのどちらで処理するかを指定する必要があります。

  • DynamoDB のデータ型は、Amazon Redshift のデータ型と直接には対応していません。Amazon Redshift テーブルの各列において、データ型が正しく、DynamoDB からのデータに対応したサイズであることを確認する必要があります。

Amazon Redshift SQL からの COPY コマンドの例を以下に示します。

copy favoritemovies from 'dynamodb://my-favorite-movies-table' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' readratio 50;

この例では、DynamoDB 内のソーステーブルは、my-favorite-movies-table。Amazon Redshift 内のターゲットテーブルは、favoritemoviesreadratio 50 節により、プロビジョニングされたスループットの消費される割合が制限されます。この場合、COPY コマンドでは、my-favorite-movies-table用にプロビジョニングされた読み込みキャパシティーの 50% 以下しか使用されません。この割合については、未使用のプロビジョニングされたスループットの平均よりも小さい値に設定することを強くお勧めします。

DynamoDB から Amazon Redshift にデータをロードする詳細な説明については、内の以下のセクションを参照してください。Amazon Redshift データベース開発者ガイド: