SQL は、リレーショナルデータベースを管理するための標準言語であり、クエリステートメントがその中核をなします。以降のセクションでは、サポートされている SQL クエリの句と制限について説明します。
SQL クエリステートメント
-
SELECT ステートメントは、テーブルからデータを取得します。すべての高度なクエリ構文は SELECT を中心に構成されています。詳細については、「SELECT」をご参照ください。
-
OpenSearch は現在、サマリー取得をサポートしていません。詳細については、「FROM-Summary query」をご参照ください。
-
WHERE 句は、指定された条件に基づいてテーブルのデータをフィルタリングします。詳細については、「WHERE」をご参照ください。
-
GROUP BY 句は、1 つ以上のフィールドのデータを集計して、最大値、最小値、平均値などの値を計算します。詳細については、「GROUP BY」をご参照ください。
-
ORDER BY 句は、1 つ以上のフィールドに基づいてデータをソートします。デフォルトのソート順は昇順 (ASC) です。ソートはパフォーマンスに悪影響を及ぼす可能性があるため、ORDER BY 句では LIMIT 句を併用する必要があります。詳細については、「ORDER BY」をご参照ください。
-
UNION ステートメントは、同じスキーマを持つ複数のインジェストエンドポイントのデータをマージします。各ステートメントで、フィールド数、フィールドの順序、データ型が同一である必要があります。詳細については、「UNION」をご参照ください。
-
JOIN 句は、複数のテーブルのデータを結合して、クエリのディメンションを拡張します。詳細については、「JOIN operation types」をご参照ください。
-
動的パラメータは、データベースの PreparedStatement インターフェイスのように機能します。SQL ステートメントで疑問符 (?) のプレースホルダーを使用し、対応する値を渡すと、エンジンが自動的に置換します。動的パラメータはキャッシュヒット率を改善し、定型クエリのパフォーマンスを大幅に向上させることができます。詳細については、「Dynamic parameters」をご参照ください。
-
TuringSQL のテーブル値関数 (TVF) は、1 つ以上のスカラーパラメータと SQL クエリを入力として受け取り、クエリをテーブルとして扱い、テーブルを出力として返します。詳細については、「Table Value Function」をご参照ください。
-
共通テーブル式 (CTE) は、単一のクエリ内で利用可能な、一時的な名前付きの結果セットを定義します。クエリの後続部分で CTE を参照することで、その構造を簡素化できます。現在サポートされているのは、SELECT ステートメントのみです。詳細については、「Introduction to Common Table Expressions」をご参照ください。
制限事項
-
データ定義言語 (DDL) およびデータ操作言語 (DML) のステートメントは、現在サポートされていません。
-
ORDER BY 句は、LIMIT 句と併用する必要があります。
-
UNNEST 句を使用して子テーブルにクエリを実行する場合、SELECT * はサポートされていません。
-
JOIN 操作は現在、Searcher 上でのみ実行されます。適切なデータ分散を確保する必要があります。
-
UNION 操作では、すべての SELECT ステートメントにおいて、フィールド数、フィールドの順序、データ型が同一である必要があります。
-
数値分析インデックスは、等価演算子 (=) を使用するクエリをサポートしていません。代わりに、WHERE QUERY('consign_time', '[1, 10]') のような範囲クエリを使用する必要があります。