本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料從 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 環境,而且某個環境中的特定規則不適用於另一個環境。以下是一些需要考量的差異:
-
DynamoDB 資料表名稱最多可以包含 255 個字元,包括「.」(點) 和「-」(破折號) 字元,並且區分大小寫。Amazon Redshift 資料表名稱不得超過 127 個字元以,而且不能包含點或破折號,也不區分大小寫。此外,資料表名稱不能與任何 Amazon Redshift 保留字衝突。
-
DynamoDB 不支援 SQL 的 NULL 概念。您必須指定 Amazon Redshift 如何解譯 DynamoDB 中的空屬性值或空白屬性值,將它們視為 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 中的目標資料表是 favoritemovies
。readratio 50
子句會調節使用的佈建輸送量百分比,在此情況下,COPY 命令不會使用超過 50% 為 my-favorite-movies-table
佈建的讀取容量單位。強烈建議將此比率設定為小於平均未用佈建輸送量的值。
如需將 DynamoDB 中的資料載入 Amazon Redshift 的詳細說明,請參閱《Amazon Redshift 資料庫開發人員指南》中的下列章節: