

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

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

# Aurora/RDS Postgres 做為目標
<a name="aurora-postgres-target"></a>

本節說明將 S3 階段時間序列資料擷取至 Amazon RDS/Aurora PostgreSQL。擷取程序主要著重於從 Timestream 匯出工具產生的 CSV 檔案，以擷取至 Postgres。建議您使用適當的索引策略來設計 PostgreSQL 結構描述和資料表，以進行以時間為基礎的查詢。使用任何 ETL 程序，將 Timestream 的特殊結構轉換為針對您的特定需求最佳化的關聯式資料表。將 Timestream 資料遷移至關聯式資料庫時，請以時間戳記資料欄做為主要時間索引、從 Timestream 的 measure\$1name 衍生的測量識別符資料欄，以及 Timestream 維度和實際量值的維度資料欄來建構結構描述。在時間範圍和經常查詢的維度組合上建立策略索引，以在資料轉換和載入過程中最佳化效能。將時間序列資料遷移至 PostgreSQL 時，適當的執行個體大小對於大規模維護查詢效能至關重要。選取執行個體類別時，請考慮您的預期資料量、查詢複雜性和並行需求，並特別注意時間序列彙總工作負載的記憶體配置。對於超過數百萬列的資料集，請利用 [PostgreSQL 的原生分割功能](https://docs.aws.amazon.com//AmazonRDS/latest/UserGuide/PostgreSQL_Partitions.html)和進階索引策略來最佳化時間序列存取模式。

我們建議您執行功能和效能測試，以選擇正確的執行個體並[調校 PostgreSQL 資料庫](https://docs.aws.amazon.com//AmazonRDS/latest/UserGuide/PostgreSQL.Tuning_proactive_insights.html)，以解決任何效能瓶頸。透過來源 Timestream 資料庫和目標系統之間的範例查詢比較執行嚴格的資料完整性檢查，對於確保遷移成功和維護查詢正確性至關重要。透過對兩個系統執行相同的查詢並比較結果，包括記錄計數、彙總和極端值，您可以識別任何可能表示轉換錯誤、資料遺失或查詢解釋語意差異的差異。此驗證程序會驗證您的資料在遷移後維持其分析值、在依賴這些洞察的利益相關者之間建立對新系統的信心、協助識別任何必要的查詢調整，以適應平台之間的語法或功能差異，並建立可量化的基準，以判斷遷移何時可視為完成和成功。如果沒有這些系統性檢查，細微的資料不一致可能無法偵測，可能會導致業務決策不正確或破壞整個遷移專案的信心。

## 擷取
<a name="postgres-ingestion"></a>

建議使用 [AWS Database Migration Service (DMS)](https://docs.aws.amazon.com//dms/latest/userguide/Welcome.html) 搭配[來源做為 S3](https://docs.aws.amazon.com//dms/latest/userguide/CHAP_Source.S3.html) （支援 CSV 和 Parquet)，搭配 [PostgreSQL](https://docs.aws.amazon.com//dms/latest/userguide/CHAP_Target.PostgreSQL.html) 做為目標。對於 AWS DMS 可能不適合您特定需求的案例，我們提供以 Python 為基礎的補充公用程式 ([PostgreSQL CSV 擷取工具](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/targets/rds_for_postgresql/README.md))，用於將 CSV 資料從 S3 遷移至 PostgreSQL。

### PostgreSQL CSV 擷取工具概觀
<a name="postgres-tool-overview"></a>

PostgreSQL CSV 擷取工具是一種高效能公用程式，旨在有效地將 CSV 檔案載入 PostgreSQL 資料庫。它利用多執行緒和連線集區平行處理多個檔案，大幅縮短資料載入時間。我們建議您使用 EC2 執行個體執行此指令碼。請考慮使用針對網路操作最佳化的執行個體類型，例如 C5N。

#### 主要功能
<a name="key-features"></a>
+ 多執行緒處理：同時載入多個 CSV 檔案。
+ 連線集區：有效率地管理資料庫連線。
+ 自動資料欄偵測：從 CSV 標頭動態擷取資料欄名稱。
+ 重試邏輯：使用指數退避處理暫時性錯誤。
+ 檔案管理；將處理的檔案移至指定的目錄，讓重試繼續但不重新啟動。
+ 全面記錄：監控和故障診斷的詳細日誌。
+ 錯誤通知：故障的選用 SNS 通知。
+ 安全登入資料：從 AWS Secrets Manager 擷取資料庫密碼。

*先決條件和安裝*

請參閱 GitHub 中 [PostgreSQL CSV 擷取工具讀我](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/targets/rds_for_postgresql/README.md)檔案的先決條件和安裝。

*用途*

```
python copy_postgres.py \
    --database 'postgres_testing' \
    --table 'demolarge_restored' \
    --csv-files-dir '/data/csv_files/*partition*/*.csv' \
    --host database-1.cluster-xxxxxxxx.us-east-1.rds.amazonaws.com \
    --secret-arn 'arn:aws:secretsmanager:<region>:<account_id>:secret:rds!cluster-xxxxx-xx-xx-xx-xxxxxxxx-xxxxx' \
    --sns-topic-arn 'arn:aws:sns:<region>:<account_id>:<topic_name>'
```

*驗證*

您可以使用 DynamoDB 處理 Timestream 匯出工具產生的匯出資料列或日誌，並與從 PostgreSQL 擷取自動化日誌擷取的資料列進行比較。您可以針對具有一致匯出和匯入時間的來源和目標資料表選取計數，如果資料在遷移程序期間持續擷取，則計數會有所不同，因此建議比較匯出的資料列和記錄的重要資料列。

*清除*
+ 清除作為 Timestream for LiveAnalytics 匯出工具一部分建立的卸載資料。
+ 刪除 EC2 上下載的資料和日誌，以回收空間。
+ 如果用於記錄作為 Timestream for LiveAnalytics 匯出工具的一部分，請刪除 DynamoDB 資料表。