Cortex Analyst のカスタム手順

カスタム手順により、 SQL の生成をより自由にコントロールできます。自然言語を使用することで、 Cortex Analyst にセマンティックモデル YAML ファイル内から SQL クエリを生成する方法を正確に伝えることができます。例えば、カスタム手順を使用して、 パフォーマンス または 会計年度 の意味を Cortex Analyst に伝えます。このように、カスタムロジックや追加要素を組み込むことで、生成される SQL の精度を向上させることができます。

カスタム手順の仕組み

Cortex Analyst は、 custom_instructions フィールドをセマンティックモデルの YAML ファイルに導入します。このフィールドでは、 SQL クエリの生成に定義変更や追加を適用できます。

セマンティックモデルの構文についての詳細は、 Cortex Analyst セマンティックモデル仕様 をご参照ください。

カスタム手順で可能なユースケースを探るために、以下の例を考えてみましょう。

データ出力のフォーマット

出力のすべての数値が10進数で四捨五入されていることを確認してください。

セマンティックモデルの YAML ファイルの custom_instructions フィールド

custom_instructions: "Ensure that all numeric columns are rounded to 2 decimal points in the output."
Copy

生成された SQL クエリ

SELECT
  ROUND(column_name, 2) AS column_name,
  ...
FROM
  your_table;
Copy

パーセンテージの調整

一貫性を保つために、パーセンテージやレートの計算に自動的に100を掛けます。

セマンティックモデルの YAML ファイルの custom_instructions フィールド

custom_instructions: "For any percentage or rate calculation, multiply the result by 100."
Copy

生成された SQL クエリ

SELECT
  (column_a / column_b) * 100 AS percentage_rate,
  ...
FROM
  your_table;
Copy

デフォルトフィルターの追加

ユーザーがフィルターを指定しない場合、フィルターを適用します(例えば、デフォルトを直近の年にします)。

セマンティックモデルの YAML ファイルの custom_instructions フィールド

custom_instructions: "If no date filter is provided, apply a filter for the last year."
Copy

生成された SQL クエリ

SELECT
  ...
FROM
  your_table
WHERE
  date_column >= DATEADD(YEAR, -1, CURRENT_DATE);
Copy

列フィルターのリンク

ユーザー入力に基づいて、関連列に追加のフィルターを適用します。

セマンティックモデルの YAML ファイルの custom_instructions フィールド

custom_instructions: "If a filter is applied on column X, ensure that the same filter is applied to dimension Y."
Copy

生成された SQL クエリ

SELECT
  ...
FROM
  your_table
WHERE
  column_x = 'filter_value' AND
  dimension_y = 'filter_value';
Copy

ベストプラクティス

具体的に説明する。

例えば、「列に42の固定値を追加」または「列Xの合計計算を含める」など、変更をはっきりと説明してください。

小さく始める。

より複雑なシナリオに移動する前に、統計列やデフォルトフィルターを追加するなど、簡単な変更から始めます。

生成された SQL クエリをプレビューする。

手順が意図したとおりに適用され、生成された SQL クエリが正しいことを確認してください。

徐々に繰り返す。

機能に慣れるにつれて、より複雑なユースケースで実験します。