本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon 在 DynamoDB 中匯出、匯入、查詢和聯結資料表 EMR
注意
Amazon EMR-DynamoDB 連接器是在 上開源 GitHub。如需詳細資訊,請參閱 https://github.com/awslabs/emr-dynamodb-connector
DynamoDB 是完全受管的無SQL資料庫服務,可提供快速且可預測的效能,並具有無縫的可擴展性。開發人員可建立資料庫資料表,不受限制地增加請求流量或儲存空間。DynamoDB 會自動將資料表的資料與傳輸流分散到足夠數量的伺服器上,以因應客戶所指定的請求處理容量和儲存的資料量,同時保持快速、一致的效能。使用 Amazon EMR和 Hive,您可以快速有效地處理大量資料,例如存放在 DynamoDB 中的資料。如需有關 DynamoDB 的詳細資訊,請參閱 Amazon DynamoDB 開發人員指南。
Apache Hive 是軟體層,您可以使用簡化SQL的類似查詢語言 HiveQL 來查詢映射,從而減少叢集。其是在 Hadoop 架構上執行。如需有關 Hive 與 HiveQL 的詳細資訊,請參閱 HiveQL 語言手冊
您可以使用 Amazon EMR搭配自訂的 Hive 版本,其中包含與 DynamoDB 的連線,以對儲存在 DynamoDB 中的資料執行操作:
-
將 DynamoDB 資料載入 Hadoop 分散式檔案系統 (HDFS),並將其用作 Amazon EMR叢集的輸入。
-
使用SQL類似 的陳述式 (HiveQL) 查詢即時 DynamoDB 資料。
-
聯結儲存在 DynamoDB 內的資料並將之匯出,或對已聯結的資料進行查詢。
-
將儲存在 DynamoDB 中的資料匯出至 Amazon S3。
-
將儲存在 Amazon S3 中的資料匯入至 DynamoDB。
注意
Amazon EMR-DynamoDB Connector 不支援設定為使用 Kerberos 身分驗證 的叢集。
若要執行下列每個任務,您將啟動 Amazon EMR叢集、在 DynamoDB 中指定資料的位置,並發出 Hive 命令來操作 DynamoDB 中的資料。
啟動 Amazon EMR叢集的方法有多種:您可以使用 Amazon EMR主控台、命令列介面 (CLI),或使用 AWS SDK或 Amazon EMR 來設定叢集API。您也可以選擇要以互動方式執行 Hive 叢集,或是以指令碼執行。在本節中,我們將示範如何從 Amazon EMR主控台和 啟動互動式 Hive 叢集CLI。
以互動方式使用 Hive 相當適合用於查詢效能的測試和應用程式的微調工作。建立一組將定期執行的 Hive 命令之後,請考慮建立 Amazon EMR可以為您執行的 Hive 指令碼。
警告
DynamoDB 資料表上的 Amazon EMR讀取或寫入操作會根據您已建立的佈建輸送量計數,可能會增加佈建輸送量例外的頻率。對於大型請求,Amazon 會使用指數退避EMR實作重試,以管理 DynamoDB 資料表上的請求負載。與其他流量同時執行 Amazon EMR任務可能會導致您超過配置的佈建輸送量層級。您可以在 Amazon 中檢查ThrottleRequests指標來監控此狀況 CloudWatch。如果請求負載過高,您可以重新啟動叢集,並將 讀取百分比設定或 設定為寫入百分比設定較低的值,以限制 Amazon EMR操作。如需有關 DynamoDB 輸送量設定的資訊,請參閱佈建輸送量。
如果資料表設定為隨需模式,您應先將資料表變更回佈建模式,然後再執行匯出或匯入操作。管道需要輸送量比率,才能計算要從 D 使用的資源ynamoDBtable。隨需模式會移除佈建輸送量。若要佈建輸送量容量,您可以使用 Amazon CloudWatch Events 指標來評估資料表使用的彙總輸送量。