2

我需要使用amazon數據管道將我的dynamoDB表數據備份到S3。使用亞馬遜數據管道將DynamoDB數據備份到S3

我的問題是 - 我可以使用單個數據管道將多個dynamoDB表備份到S3,還是我必須爲它們中的每一個製作單獨的管道?另外,由於我的表有一個year_month前綴(ex-2014_3_tableName),所以我一直在考慮在月份發生變化時使用數據管道SDK更改管道定義中的表名。是否需要這項工作?有沒有其他更好的方法?

謝謝!

回答

8

如果您通過DynamoDB Console的導入/導出按鈕設置數據管道,則必須爲每個表創建單獨的管道。如果您直接使用數據管道(通過數據管道API或通過數據管道控制檯),則可以在同一管道中導出多個表。對於每個表,只需添加一個額外的DynamoDBDataNode和一個EmrActivity以將該數據節點鏈接到輸出S3DataNode。

關於你的year_month前綴用例,使用數據管道sdk來定期更改表名看起來是最好的方法。另一種方法是製作script that export EmrActivity is running的副本(您可以在活動的「步驟」下看到腳本位置),然後通過檢查當前日期更改配置單元腳本確定表名的方式。您需要製作該腳本的副本並將修改的腳本託管在您自己的S3存儲桶中,並將EmrActivity指向該位置而不是默認位置。我以前沒有嘗試過任何一種方法,但兩者在理論上都是可行的。

有關導出DynamoDB表的更多常規信息可在DynamoDB Developer Guide中找到,更多詳細信息可在AWS Data Pipeline developer guide中找到。

+1

謝謝!還有一件事,當在單個數據管道中添加多個dynamodb數據節點(對於多個表)時,我們是否需要多個s3 datanodes或者只有一個?如果有,那麼我們如何在S3上指定不同表的備份文件夾? ?? – user3610975

1

這是一個古老的問題,但我一直在尋找最後幾天的答案。 添加多個DynamoDBDataNode時,仍然可以使用一個單獨的S3DataNode(如輸出)。只需在EmrActivity步驟字段中指定不同的output.directoryPath,即可區分S3存儲桶中的文件夾。

像這樣: #{} output.directoryPath/newFolder

每一個新的文件夾將在S3桶被自動創建。

+1

你有一個輸出多個表的管道的樣本json文檔嗎?這將是非常有益的。 – Kannaiyan

+0

爲我工作,謝謝!雖然我仍然很煩,但是我們無法使用簡單的通配符從一個DynamoDBDataNode中備份Dynamo表。 –