將 Timestream 資料匯出至 Amazon S3 - Amazon Timestream

如需類似 Amazon Timestream for LiveAnalytics 的功能,請考慮使用 Amazon Timestream for InfluxDB。它提供簡化的資料擷取和單一位數毫秒查詢回應時間,以進行即時分析。在這裡進一步了解。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 Timestream 資料匯出至 Amazon S3

無論遷移的目標服務為何,我們建議您遵循下列最佳實務,將 Timestream for LiveAnalytics 資料匯出至 Amazon S3,建立耐久的中繼儲存層,作為後續資料庫特定擷取的基礎。

為了可靠地將資料從 Timestream for LiveAnalytics 資料表匯出至 Amazon S3,我們建議您使用 Timestream for LiveAnalytics 匯出工具,該工具使用 Timestream UNLOAD 功能,專為大規模資料匯出而設計。

適用於 LiveAnalytics 的 Timestream 匯出工具

時間型區塊化策略

遷移大量時間序列資料時,時間型區塊至關重要。此方法會將匯出程序細分為可管理的單位,可獨立處理和重試失敗,大幅降低遷移風險。它會建立檢查點,以更輕鬆地追蹤進度,並新增在中斷後繼續的功能。對於具有持續資料擷取的組織,這允許在不同的時間區塊中匯出較新的資料,以便在持續操作和遷移之間進行更好的協調。該工具使用以天為基礎的區塊,以 S3 儲存貯體字首存放每天的資料,以實現高效的管理。此外,區塊可以根據小時、天、月或年。

監控遷移

此工具提供擷取 DynamoDB 資料表中遷移統計資料的選項、追蹤使用的組態、匯出的記錄和其他資料點等指標,以驗證遷移的完整性。我們建議您在遷移和驗證期間密切監控這些指標。您也可以使用協同運作指令碼中提供的記錄、擷取執行時間戳記、區塊邊界,以及遇到的任何錯誤條件。如果您想要整合下游系統以對失敗採取動作,此工具也會提供 SNS 通知。

建議和最佳實務

Timestream for LiveAnalytics 匯出工具提供靈活且強大的解決方案,可讓您根據目標系統需求量身打造各種組態選項,將資料匯出至 S3。如果您的目標是 Timestream for InfluxDB,請使用 Parquet 格式而不壓縮,以確保與擷取指令碼的相容性。為了獲得最佳的追蹤和監控,請啟用 DynamoDB 記錄並設定 SNS 通知,以接收匯出失敗或完成的相關提醒。

該工具會利用 Timestream for LiveAnalytics UNLOAD 功能,同時根據指定的時間範圍自動分批匯出資料,以克服其分割區的查詢限制。您可以依小時、日、月或年自訂資料分割,日為預設值。每個分割區必須保持在大約 350 GB 以下,以避免與記憶體相關的錯誤,例如查詢運算超過可用的記憶體上限。例如,如果您的年度資料超過 350 GB,請考慮使用每月分割區或更精細的選項,例如每日或每小時分割區。如果您選擇每小時一次,但仍出現「查詢運算超過可用記憶體上限」錯誤,您可以減少分割區數量,確保您的匯出成功。

此工具在匯出範圍中提供靈活性,可讓您匯出單一資料表、整個資料庫或帳戶中的所有資料庫。如需更專業的需求,例如匯出多個特定資料庫,您可以建置圍繞此自動化的自訂包裝函式。此外,您可以透過啟用反向時間順序選項,選擇先匯出最新的資料。在失敗後重新啟動時,您可以繼續使用相同的遷移標籤,將所有檔案保留在相同的 S3 字首下,或省略該標籤以在新的字首下建立檔案。當工具分批匯出資料時,如果您遇到失敗,建議您從失敗的批次開始,而不是從原始開始時間重新啟動。如果您未指定結束時間戳記,工具會自動使用目前的時間戳記 (UTC),以確保匯出和驗證的一致性。

基本命令

範例 :匯出已啟用 DynamoDB 記錄的資料表
python3.9 unload.py \ --export-table \ --database Demo \ --table Demo \ --start-time '2020-03-26 17:24:38' \ --enable-dynamodb_logger true
範例 :匯出整個資料庫
python3.9 unload.py \ --export-database \ --database Demo \ --start-time '2020-03-26 17:24:38'
範例 :匯出所有資料庫
python3.9 unload.py \ --export-all_databases \ --start-time '2020-03-26 17:24:38'
範例 :具有更多選項的進階匯出
python unload.py \ --export-table \ --database MyDB \ --table MyTable \ --start-time '2024-05-14 00:00:00' \ --end-time '2025-05-14 00:00:00' \ --partition month \ --export-format PARQUET \ --compression GZIP \ --region us-east-1 \ --s3-uri s3://my-bucket \ --enable-dynamodb_logger \ --sns-topic_arn arn:aws:sns:region:account-id:topic-name

如需詳細資訊,請參閱卸載指令碼的 README。