遷移驗證指令碼 - Amazon Timestream

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

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

遷移驗證指令碼

驗證指令碼會比較來源資料表 (Amazon Timestream 或 Amazon Athena) 與 InfluxDB 儲存貯體測量之間的邏輯資料列/點計數,以及選用的時間範圍規格。此工具透過對兩個系統執行平行查詢並比較結果,協助確保遷移程序期間的資料完整性。

驗證指令碼支援對 Athena 中匯出的資料集或原始 Timestream 資料庫/資料表的查詢。請注意,如果資料自匯出以來已寫入,直接查詢 Timestream 可能會導致不正確的比較。驗證指令碼可在開始擷取之後隨時執行。它首先輪詢 InfluxDB 的指標端點,以等待 WAL (Write-Ahead Log) 完全排清,確保所有資料處理都已完成,包括擷取後檔案合併和刪除重複。然後,指令碼會在相同的時段執行僅限計數的查詢,比較結果以反白顯示相符項目或不相符項目。它支援轉換結構描述的選用結構描述/標籤篩選,其中維度用作欄位,並產生人類可讀取的時間和結果摘要,以促進遷移程序的驗證。

先決條件和安裝

請參閱遷移驗證指令碼 README 中的先決條件和安裝一節。

用途

python validator.py [options]

所有設定都可以做為 CLI 旗標或環境變數提供。請參閱儲存庫中的 example.env 檔案。

如需疑難排解和建議,請參閱遷移驗證指令碼 README

清除

完成遷移後,將建立下列資源/成品:

  • Athena 資料表,其中包含 LiveAnalytics 資料的 Timestream。預設情況下,這是預設 Athena 資料庫中的 <Timestream 資料庫名稱>_<Timestream 資料表名稱>。

  • Athena 資料表,包含轉換的線路通訊協定資料。根據預設,這是預設 Athena 資料庫中的 lp_<Athena 資料表名稱>。

  • S3 儲存貯體中的線路通訊協定資料,路徑為 <Timestream 資料庫名稱>/<Timestream 資料表名稱>/unload-<%Y-%m-%d-%H:%M:%S>/line-protocol-output。

  • 卸載作為 Timestream for LiveAnalytics 匯出工具一部分建立的資料。

  • 已下載 EC2 執行個體上的資料和日誌。

  • 如果用於記錄作為 Timestream for LiveAnalytics 匯出工具的一部分,則為 DynamoDB 資料表。

清除 Athena 資源

若要刪除任何 Athena 資料表,請執行下列 AWS CLI 命令,將 <Athena 資料表名稱> 取代為您想要刪除的資料表名稱,並將 <Athena 資料庫名稱> 取代為資料表所在的 Athena 資料庫名稱:

aws glue delete-table \ --database-name <Athena database name> \ --name <Athena table name>

清除 S3 資源

若要刪除 S3 儲存貯體中的線路通訊協定資料,請執行下列 AWS CLI 命令,將 <S3 儲存貯體名稱> 取代為 S3 儲存貯體名稱、將 <Timestream 資料庫名稱> 取代為 Timestream for LiveAnalytics 資料庫名稱、將 <Timestream 資料表名稱> 取代為 Timestream for LiveAnalytics 資料表名稱,並將 <timestamp> 取代為 S3 儲存貯體中形成 unload-<%Y-%m-%d-%H:%M:%S> 路徑的時間戳記:

aws s3 rm \ s3://<S3 bucket name>/<Timestream database name>/<Timestream table name>/unload-<timestamp>/line-protocol-output \ --recursive

若要刪除 S3 儲存貯體,請執行下列命令,將 <S3 儲存貯體名稱> 取代為您的 S3 儲存貯體名稱:

aws s3 delete-bucket --bucket <S3 bucket name>

清除 DynamoDB 資源

若要刪除 DynamoDB 資料表,請執行下列命令,以您要刪除的 DynamoDB 資料表名稱取代 <table name>:

aws dynamodb delete-table --table-name <table name>