ターゲットとしての Timestream for InfluxDB - Amazon Timestream

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

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

ターゲットとしての Timestream for InfluxDB

Amazon Timestream for InfluxDB は、リアルタイムアプリケーションにオープンソースの InfluxDB APIs AWS を使用する のマネージド時系列データベースサービスです。セットアップ、オペレーション、スケーリングが簡単で、クエリを 1 桁ミリ秒の応答時間で配信します。

Timestream for InfluxDB がユースケースに適した移行ターゲットかどうかを判断する最初のステップは、Timestream for LiveAnalytics テーブルのカーディナリティを決定することです。私たちは、Timestream for LiveAnalytics でテーブルカーディナリティを計算するスクリプトを開発しました。この計算には以下の 2 つの目的があります。

  1. カーディナリティが 1,000 万未満であるかどうかをチェックします。これは、Timestream for InfluxDB がユースケースに対応できるかどうかを判断するのに役立ちます。

  2. どの Timestream for InfluxDB のインスタンスタイプを使用すべきか決定するのに役立ちます。

InfluxDB のカーディナリティは、InfluxDB バケット内の一意のメジャーメントタグフィールドキーの組み合わせの数です。推奨される制限を超えた場合のクエリのパフォーマンス低下とメモリ消費量の増加については、カーディナリティ管理に関する Timestream for InfluxDB のドキュメントを参照してください。インスタンスの選択を確定する前に、代表的なデータサンプルに対する予想されるクエリパターンを評価し、クエリのパフォーマンスが移行後も維持されるようにします。メモリを大量に消費する集約型クエリに注意してください。このようなクエリは Timestream for LiveAnalytics とは異なる動作をする可能性があります。Timestream for LiveAnalytics から移行する場合は、パフォーマンスとリソース要件に直接影響するため、データセットのカーディナリティに基づいて InfluxDB インスタンスの仕様を慎重に選択してください。データのカーディナリティが 1,000 万を超える場合は、他の移行先を検討することをお勧めします。

カーディナリティ計算スクリプトの概要

カーディナリティ計算スクリプトは、Timestream for LiveAnalytics テーブルのカーディナリティを計算するものです。カーディナリティが 1,000 万未満の場合、スクリプトは Timestream for InfluxDB のインスタンスタイプを推奨します。デフォルトのスキーママッピングを使用して、ディメンションとメジャー名からなる一意の組み合わせの合計を計算することでカーディナリティが算出されます。適切なラインプロトコルのタグ (Timestream for LiveAnalytics のディメンションに相当) を選択すると、自動でデータのインデックスが作成され、タグを使用してデータを効率的にフィルタリングできます。このスクリプトには、カーディナリティの計算時に特定のディメンションを除外するオプションもあります。該当する場合、つまり SQL クエリでデータのフィルタリングに特定のディメンションを使用していない場合は (特に述語として使用していない場合)、これらのディメンションをカーディナリティ計算から除外できます。後で、次の移行手順でフィールド (Timestream for LiveAnalytics のメジャーに相当) として取り込むことができます。

前提条件とインストール

カーディナリティスクリプトの「README」の「Prerequisites」セクションと「Installation」を参照してください。

基本的な使用法

example_table テーブルのカーディナリティを決定するため、example_database データベースでは、次の方法でスクリプトを使用できます。

python3 cardinality.py \ --table-name example_table \ --database-name example_database

次の出力が生成されます。

Cardinality of "example_database"."example_table": 160 Your recommended Timestream for InfluxDB type is: db.influx.medium

推奨事項

スクリプトはテーブル全体を自動的にスキャンしてカーディナリティを計算し、最適なクエリ実行のための時間フィルターオプションを提供します。データに一貫したディメンションが含まれ、テーブル全体で異なるディメンションのバリエーションを分析すると、特定の時間範囲の分析と同様の結果が得られる場合は、時間フィルターを実装することをお勧めします。このアプローチにより、効率的でパフォーマンスの高いクエリ実行を確保できます。

詳細については、カーディナリティスクリプトの「README」を参照してください。