Fabric データ エージェントの SQL ソース

Fabric データ エージェントを使うと、OneLake 上の SQL データ(Lakehouse、Data Warehouse、Fabric SQL Database、Mirrored Databases)に対して自然言語で質問でき、ガバナンスが適用された読み取り専用の回答を得られます。 裏では、エージェントは組み込みの自然言語からSQLへの変換(NL2SQL)ツールを使って、各質問をT-SQLクエリに変換し、選択したスキーマと照らして検証し、ソースのSQL分析エンドポイントを通じて実行します。

この記事では、エージェントが SQL ソースに使用できる 2 つのクエリ生成ツールについて説明します。

  • NL2SQL標準ランタイム上のデータ エージェントによって使用される一般公開 (GA) ツール。
  • Advanced NL2SQL — プレビュー ランタイム上のデータ エージェントによって使用される、複数ステップの推論を含む プレビュー ツールです。

どちらのツールも、スキーマの選択、データ ソース命令、クエリの例など、各 SQL ソースに対して指定したのと同じ構成に基づいて作成されます。 これらの入力の構成の詳細については、データ エージェントでのデータ ソースの追加と構成Fabric参照してください。

NL2SQL

NL2SQL は、SQL ソースの既定のクエリ生成ツールであり、標準ランタイム上のデータ エージェントによって使用されるツールです。 1 回のパスで T-SQL クエリが生成されます。

  1. 選択したスキーマと、提供したデータソースの指示を読み取ります。
  2. サンプル クエリ ライブラリに対するベクトルの類似性を使用して、ユーザーの質問に最も似た上位のクエリ例を取得します。
  3. そのコンテキストで基盤となる SQL クエリが生成され、承認されたスキーマに対して検証され、SQL 分析エンドポイントを介して実行されます。

NL2SQL は、安定した予測可能な動作に最適化されており、リリース間で一貫した出力が重要な運用データ エージェントに推奨される選択肢です。 スキーマの選択、データ ソースの指示、NL2SQL をフィードするクエリの例の詳細については、データ エージェントでのデータ ソースの追加と構成Fabric参照してください。

Advanced NL2SQL (プレビュー)

Advanced NL2SQL は、プレビュー ランタイムで使用できる NL2SQL ツールの新しいバージョンです。 これは同じツールで、SQLソースを通じた自然言語からSQLへの変換ですが、1つの大きな違いがあります。クエリを一回のパスで生成するのではなく、クエリを返す前に複数の推論ステップを計画し実行することです。 たとえば、スキーマを検査したり、関連する例を選択したり、あいまいなフィルター値を解決したり、クエリにコミットする前に明確な質問をしたりできます。

T-SQL クエリを返す前に、Fabric データ エージェントでいくつかの推論手順を計画および実行する高度な NL2SQL のアニメーション図。

Advanced NL2SQLは、NL2SQLにはない品質向上と設定体験を提供します:

  • 次の例では、クエリの一貫性が高くなります。 NL2SQL は、常に例のクエリに厳密に従うとは限りません。また、例に含まれていないロジックや制約が追加される場合があります。 Advanced NL2SQL は、クエリ ライブラリの例で示されているパターンにより厳密に準拠しています。
  • フィルター値を正しく置き換えます。 質問が明示的に示すのではなく、複数のカテゴリフィルターまたはブール型フィルターを意味する場合、NL2SQL はそれらの一部を見逃したり、誤って適用したりする可能性があります。 高度なNL2SQLは、暗黙のフィルターを推論し、適切な値をクエリに代入します。
  • あいまいな質問の処理。 質問があいまいな場合、NL2SQL は仮定にコミットし、クエリを生成する傾向があります。 Advanced NL2SQL では、あいまいさを検出し、SQL を生成する前に明確な質問をユーザーに求め、意図の読み間違いによる誤った回答を減らすことができます。
  • スキーマの詳細も理解しています。 オブジェクト名だけではスキーマ要素の意味を説明できず、データソースの命令はすべてのオブジェクトを記述するのに十分なスペースがないかもしれません。 スキーマオブジェクトの記述を用いることで、作成者は個々のテーブル、列、その他のスキーマ要素に文脈を提供でき、Advanced NL2SQLがスキーマを解釈し、より正確なクエリを生成できます。

高度なNL2SQLは、すでにNL2SQLで設定しているスキーマ選択、データソース命令、例クエリを使用します。 また、スキーマオブジェクト記述など、Advanced NL2SQLでのみ利用可能な構成も利用できます。

Advanced NL2SQL を使用する

Advanced NL2SQL は、プレビュー ランタイムの一部です。 これを使用するには、データ エージェントをプレビュー ランタイムに切り替えます。 ランタイムを切り替える方法と、切り替えたときに他に何が変わるかについては、Fabric データ エージェント ランタイムを参照してください。

Advanced NL2SQL はプレビュー段階であるため、リリース間で動作が変わる可能性があります。 これを使用して、今後の改善点を評価し、GAに卒業する前にフィードバックを提供します。一貫性のある出力を必要とする運用データ エージェントの場合は、NL2SQL を使用して標準ランタイムを維持します。