ターゲットとしての InfluxDB のタイムストリーム - Amazon Timestream

Amazon Timestream for LiveAnalytics と同様の機能については、Amazon Timestream for InfluxDB を検討してください。リアルタイム分析のために、シンプルなデータ取り込みと 1 桁ミリ秒のクエリ応答時間を提供します。詳細については、こちらを参照してください。

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

ターゲットとしての 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. InfluxDB インスタンスのタイプに使用する Timestream を決定するのに役立ちます。

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

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

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

前提条件とインストール

カーディナリティスクリプトの README の「前提条件」セクションと「インストール」を参照してください。

基本的な使用法

テーブルの基数を決定するために 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 を参照してください。