

如需與 Amazon Timestream for LiveAnalytics 類似的功能，請考慮使用 Amazon Timestream for InfluxDB。它提供簡化的資料擷取和單一位數毫秒查詢回應時間，以進行即時分析。[在這裡](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)進一步了解。

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

# 將 Timestream 資料匯出至 Amazon S3
<a name="export-timestream-data"></a>

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

為了可靠地將資料從 Timestream for LiveAnalytics 資料表匯出至 Amazon S3，我們建議您使用 [Timestream for LiveAnalytics 匯出工具](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/unload/README.md)，該工具使用 Timestream [UNLOAD](https://docs.aws.amazon.com//timestream/latest/developerguide/supported-sql-constructs.UNLOAD.html) 功能，專為大規模資料匯出而設計。

**適用於 LiveAnalytics 的 Timestream 匯出工具**

*時間型區塊化策略*

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

*監控遷移*

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

## 建議和最佳實務
<a name="recommendations-best-practices"></a>

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

此工具會利用 Timestream for LiveAnalytics [UNLOAD](https://docs.aws.amazon.com//timestream/latest/developerguide/supported-sql-constructs.UNLOAD.html) 功能，同時根據指定的時間範圍，自動分批匯出資料，以克服其[查詢限制](https://docs.aws.amazon.com//timestream/latest/developerguide/export-unload-limits.html)。您可以按小時、日、月或年自訂資料分割，日為預設值。每個分割區必須保持在大約 350 GB 以下，以避免與記憶體相關的錯誤，例如查詢運算超過可用的記憶體上限。例如，如果您的年度資料超過 350 GB，請考慮使用每月分割區或更精細的選項，例如每日或每小時分割區。如果您選擇每小時一次，但仍出現「查詢運算超過可用記憶體上限」錯誤，您可以減少[分割區數量](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/unload/README.md#optional-parameters)，確保您的匯出成功。

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

## 基本命令
<a name="basic-commands"></a>

**Example ：匯出已啟用 DynamoDB 記錄的資料表**  

```
python3.9 unload.py \
    --export-table \
    --database Demo \
    --table Demo \
    --start-time '2020-03-26 17:24:38' \
    --enable-dynamodb_logger true
```

**Example ：匯出整個資料庫**  

```
python3.9 unload.py \
    --export-database \
    --database Demo \
    --start-time '2020-03-26 17:24:38'
```

**Example ：匯出所有資料庫**  

```
python3.9 unload.py \
    --export-all_databases \
    --start-time '2020-03-26 17:24:38'
```

**Example ：具有更多選項的進階匯出**  

```
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。](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/unload/README.md)