Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ターゲットとしての Aurora/RDS Postgres
このセクションでは、S3 にステージングされた時系列データを Amazon RDS/Aurora PostgreSQL に取り込む方法について説明します。取り込みプロセスでは主に、Postgres に取り込むために Timestream のエクスポートツールから生成された CSV ファイルに焦点を当てます。PostgreSQL のスキーマとテーブルは、時間ベースのクエリに適したインデックス作成戦略で設計することをお勧めします。任意の ETL プロセスを使用して、Timestream の特殊な構造を、特定の要件に最適化されたリレーショナルテーブルに変換します。Timestream データをリレーショナルデータベースに移行するときは、プライマリタイムインデックスとしてタイムスタンプ列、Timestream の measure_name から派生した測定識別子列、Timestream のディメンションと実際のメジャーからのディメンション列を使用してスキーマを構築します。時間範囲と頻繁にクエリされるディメンションの組み合わせに関する戦略的インデックスを作成して、データ変換とロードプロセス中のパフォーマンスを最適化します。時系列データを PostgreSQL に移行する場合、クエリパフォーマンスを大規模に維持するには、インスタンスサイズの適切な設定が重要となります。インスタンスクラスを選択するときは、想定されるデータ量、クエリの複雑さ、および同時実行要件を考慮します。特に、時系列集約ワークロードのメモリ割り当てに注意してください。数千万行を超えるデータセットの場合、PostgreSQL のネイティブパーティショニング機能と高度なインデックス作成戦略を活用して、時系列アクセスパターンを最適化します。
機能テストとパフォーマンステストを実施して適切なインスタンスを選択し、PostgreSQL データベースを調整してパフォーマンスのボトルネックに対処することをお勧めします。移行の成功を確保し、クエリの正確性を維持するためには、ソースとなる Timestream データベースとターゲットシステム間のサンプルクエリの比較を通じてデータの完全性の厳密なチェックを実行することが重要です。両方のシステムに対して同一のクエリを実行し、レコード数、集計、外れ値などの結果を比較することで、変換エラー、データ損失、またはクエリ解釈の意味的違いを示す可能性のある不一致を特定できます。この検証プロセスでは、データが移行後に分析値を維持していることの検証、これらのインサイトに依存するステークホルダー間の新しいシステムにおける信頼性の構築、プラットフォーム間の構文や機能の違いに対応するために必要なクエリ調整の特定、移行が完了して成功とみなされるタイミングを決定するための定量化可能なベースラインの確立を行います。これらのチェックを体系的に行わないと、わずかなデータの不整合が検出されず、誤ったビジネス上の意思決定や移行プロジェクト全体の信頼の低下につながる可能性があります。
取り込み
ソースを S3 (CSV と Parquet の両方をサポート) とし、PostgreSQL をターゲットとして AWS Database Migration Service (DMS) を使用することをお勧めします。 AWS DMS が特定の要件に適さないシナリオでは、S3 から PostgreSQL に CSV データを移行するための補足的な Python ベースのユーティリティ (PostgreSQL CSV Ingestion Tool
PostgreSQL CSV 取り込みツールの概要
PostgreSQL CSV 取り込みツールは、CSV ファイルを PostgreSQL データベースに効率的にロードするように設計された高性能ユーティリティです。マルチスレッドと接続プーリングを活用して複数のファイルを並行して処理するため、データのロード時間が大幅に短縮されます。EC2 インスタンスを使用してこのスクリプトを実行することをお勧めします。C5N などのネットワークオペレーション向けに最適化されたインスタンスタイプの使用を検討してください。
の主な特徴
-
マルチスレッド処理: 複数の CSV ファイルを同時にロードします。
-
接続プーリング: データベース接続を効率的に管理します。
-
自動列検出: CSV ヘッダーから列名を動的に抽出します。
-
再試行ロジック: エクスポネンシャルバックオフで一時的なエラーを処理します。
-
ファイル管理: 処理済みファイルを指定されたディレクトリに移動するため、再試行は再開されますが、再起動はされません。
-
包括的なログ記録: モニタリングとトラブルシューティングの詳細ログ。
-
エラー通知: 障害に対するオプションの SNS 通知。
-
Secure Credentials: AWS Secrets Manager からデータベースパスワードを取得します。
前提条件とインストール
GitHub で PostgreSQL CSV 取り込みツールの「README」
使用方法
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>'
検証
Timestream のエクスポートツールによって生成されたエクスポートされた行またはログに DynamoDB を使用し、PostgreSQL の取り込み自動化ログから取り込まれた行と比較できます。ソーステーブルとターゲットテーブルに対して一貫したエクスポート時間およびインポート時間で select count を実行できます。移行プロセス中にデータが継続的に取り込まれている場合はカウント数が変化するため、エクスポートされた行とログ記録の重要な行を比較することをお勧めします。
クリーンアップ
-
Timestream for LiveAnalytics エクスポートツールの一部として作成されたアンロードされたデータをクリーンアップします。
-
EC2 でダウンロードしたデータとログを削除して、スペースを再利用します。
-
Timestream for LiveAnalytics エクスポートツールの一部としてログ記録に DynamoDB テーブルを使用する場合は、このテーブルを削除します。