移行検証スクリプト - Amazon Timestream

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

移行検証スクリプト

検証スクリプトは、ソーステーブル (Amazon Timestream または Amazon Athena) と InfluxDB バケットメジャーメントの間の論理的な行/ポイント数を比較します。また、オプションの時間範囲仕様を利用できます。このツールは、両方のシステムに対して並列クエリを実行し、結果を比較することで、移行プロセス中のデータの完全性を確保するのに役立ちます。

検証スクリプトは、Athena でエクスポートされたデータセットまたは元の Timestream データベース/テーブルに対するクエリをサポートします。エクスポート後にデータが書き込まれた場合、Timestream を直接クエリすると、比較が不正確になる可能性があることに注意してください。検証スクリプトは、取り込みの開始後にいつでも実行できます。まず、InfluxDB のメトリクスエンドポイントをポーリングして、WAL (ログ先行書き込み) が完全にフラッシュされるのを待ち、取り込み後のファイルのマージと重複排除を含むすべてのデータ処理が完了していることを確認します。次に、スクリプトは同一の時間枠でカウントのみのクエリを実行し、結果を比較して一致または不一致を強調表示します。ディメンションがフィールドとして使用される変換済みスキーマのスキーマ/タグフィルタリングをオプションでサポートし、タイミングと結果の概要を人間が読み取れる形式で生成して、移行プロセスの検証を容易にします。

前提条件とインストール

移行検証スクリプトの「README」の「Prerequisites」と「Installation」セクションを参照してください。

使用方法

python validator.py [options]

すべての設定は、CLI フラグまたは環境変数として指定できます。リポジトリ内の example.env ファイルを参照してください。

トラブルシューティングと推奨事項については、移行検証スクリプトの「README」を参照してください。

クリーンアップ

移行が完了すると、次のリソース/アーティファクトが作成されます。

  • Timestream for LiveAnalytics データを含む Athena テーブル。デフォルトでは、デフォルトの Athena データベースの <Timestream database name>_<Timestream table name> です。

  • 変換済みのラインプロトコルデータを含む Athena テーブル。デフォルトでは、デフォルトの Athena データベースの lp_<Athena table name> です。

  • S3 バケット内のラインプロトコルデータ。パスは <Timestream database name>/<Timestream table name>/unload-<%Y-%m-%d-%H:%M:%S>/line-protocol-output です。

  • Timestream for LiveAnalytics エクスポートツールの一部として作成されたアンロードされたデータ。

  • EC2 インスタンスにダウンロードされたデータとログ。

  • Timestream for LiveAnalytics エクスポートツールの一部としてログ記録に使用される場合の DynamoDB テーブル。

Athena リソースのクリーンアップ

Athena テーブルを削除するには、次の AWS CLI コマンドを実行します。<Athena table name> は削除するテーブルの名前に置き換え、<Athena database name> はテーブルが存在する Athena データベースの名前に置き換えます。

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

S3 リソースのクリーンアップ

S3 バケット内のラインプロトコルデータを削除するには、次の CLI コマンドを実行します AWS 。<S3 バケット名> を S3 バケットの名前、<Timestream データベース名> を LiveAnalytics データベースの Timestream の名前、<Timestream テーブル名> を LiveAnalytics テーブルの Timestream の名前、<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 bucket name> を S3 バケットの名前に置き換えます。

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

DynamoDB リソースのクリーンアップ

DynamoDB テーブルを削除するには、<table name> を削除する DynamoDB テーブルの名前に置き換えて、次のコマンドを実行します。

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