データ ソースを選択すると、RAQL クエリを使用してデータを分析できます。RAQL は SQL をベースに、SQL では定義されていない機能拡張を追加的に備えています。以降の文書は、RAQL とその機能拡張の使用方法に焦点を当てています。SQL の詳しい説明は、標準的な SQL テキスト ブックを参照します。
RAQL は、データの読取と検証用に典型的な SQL 句を提供します。一部の SQL 句と構文は RAQL にはありません。RAQL クエリは句で構成されます:
これらの各句の有効式の概要については、言語リファレンスを参照してください。
RAQL クエリの最も基本的な形式には、SELECT と FROM 句が含まれます。
SELECT 句は、結果を含む列を決定し、また、OVER 句または GROUP BY 句のいずれかとともに使用して分析を実行することもできます。FROM 句はクエリを実行するデータ セットを決定し、また、データのソースとして使用するサブクエリを定義できます。
Set 演算子句では、別のクエリを使用して追加データセットを抽出してから、それらのデータセットを結合、統合、フィルター処理してさらに複雑なデータセットを派生させることができます。JOIN セット演算子は、たとえばある条件に基づいて 2 つのデータセットの行をマッチして、両方のデータセットからの列を結合した行に追加します。
WHERE 句は、データセットからの行をフィルター処理します。ORDER BY は結果行を並べ替えます。LIMIT は、クエリが返すことができる結果行の最大数を決定します。
OVER 句と GROUP BY 句の両方は、データセットの行を式に基づいたさまざまなセットにグループ化します。これらのグループは、SELECT 句での分析関数で使用される行のスコープを決定します。HAVING 句は、GROUP BY 句で返されるグループのセットをフィルター処理します。
OVER と GROUP BY は、クエリによって返されるデータに異なる効果を持つため、 相互に排他的です。OVER 句は計算を実行し、計算を追加列として各行に追加します。GROUP BY はそうではなく、計算を実行して各グループに対する計算を返すのみです。
ほとんどの RAQL 句は、式内での関数の使用もサポートします。RAQL 関数には 2 種類あります:
プレーン関数は、各行の列の値の単純な変換を実行します。たとえば UPPER はテキストを大文字に変更します。
分析関数は、一般には集約関数またはウィンドウ関数として知られていて、OVER 句または GROUP BY 句で定義されたグループ、パーティション、ウィンドウにある複数の行を使用して計算を実行します。
SUM などの集約分析関数は、現在のスコープにあるすべての行を使用します。一方、ウィンドウ分析関数は ROW_NUMBER など特定の行を使用します。これらの関数には、簡単な算術関数、統計関数、その他の分析アルゴリズムが含まれます。
RAQL は、関数拡張のセット (プレーンと分析) と、独自の関数を定義する方法を提供します。詳細については、「RAQL 拡張」を参照してください。