クエリ - Amazon Timestream

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

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

クエリ

以下は、Amazon Timestream for LiveAnalytics を使用したクエリに推奨されるベストプラクティスです。

  • メジャー名とディメンション名はクエリに不可欠なもののみを含めます。不要な列を追加すると、データスキャンが増加し、クエリのパフォーマンスに影響します。

  • クエリを本番環境にデプロイするときは、事前にクエリインサイトを確認し、空間的、時間的プルーニングが最適であることを確認することが推奨されます。詳細については、「クエリインサイトを使用して Amazon Timestream のクエリを最適化する」を参照してください。

  • 可能な場合は、SELECT 句と WHERE 句の組み込み集計とスカラー関数を使用してデータ計算を Timestream for LiveAnalytics にプッシュし、クエリのパフォーマンスを向上させてコストを削減します。「SELECT」および「集計関数」を参照してください。

  • 可能な場合は、近似関数を使用します。例えば、COUNT(DISTINCT column_name) の代わりに APPROX_DISTINCT を使用してクエリパフォーマンスを最適化し、クエリコストを削減します。「集計関数」を参照してください。

  • 同じテーブルから複数回選択するのではなく、CASE 式を使用して複雑な集計を実行します。「CASE ステートメント」を参照してください。

  • 可能な場合は、クエリの WHERE 句に時間範囲を含めます。これにより、クエリのパフォーマンスとコストが最適化されます。例えば、データセット内の過去 1 時間のデータのみが必要な場合は、time > ago(1h) などの時間述語を含めます。「SELECT」および「間隔と期間」を参照してください。

  • クエリがテーブル内のメジャーのサブセットにアクセスする場合は、クエリの WHERE 句に常にメジャー名を含めます。

  • 可能な場合は、クエリの WHERE 句でディメンションとメジャーを比較するときに等価演算子を使用します。ディメンションとメジャー名の等価述語を使用すると、クエリのパフォーマンスが向上し、クエリコストを削減できます。

  • 可能な限り、WHERE 句の関数を使用してコストを最適化することは避けます。

  • LIKE 句を複数回使用することは避けてください。文字列の列で複数の値をフィルタリングする場合は、正規表現を使用します。「正規表現関数」を参照してください。

  • クエリの GROUP BY 句には必要な列のみを使用します。

  • クエリ結果を特定の順序にする必要がある場合は、最も外側のクエリの ORDER BY 句で、その順序を明示的に指定します。クエリ結果に順序付けが必要ない場合は、クエリのパフォーマンスを向上させるために ORDER BY 句の使用は避けます。

  • クエリの最初の N 行のみが必要な場合は、LIMIT 句を使用します。

  • ORDER BY 句を使用して上位または下位の N 値を確認する場合は、LIMIT 句を使用してクエリコストを削減します。

  • 返されたレスポンスのページ分割トークンを使用して、クエリ結果を取得します。詳細については、「クエリ」を参照してください。

  • クエリの実行を開始して、求める結果が返されないことが判明したら、そのクエリをキャンセルしてコストを節約します。詳細については、「CancelQuery」を参照してください。

  • アプリケーションでスロットリングが発生した場合は、同じレートでデータを Timestream for LiveAnalytics に送信し続け、Amazon Timestream for LiveAnalytics がアプリケーションのクエリスループットのニーズを満たすように自動でスケールするようにします。

  • アプリケーションのクエリ同時実行要件が Timestream for LiveAnalytics のデフォルトの制限を超える場合は、サポートに連絡して制限の引き上げを依頼します。