Search

Text to SQL

Text to SQLとは?

Text-to-SQL(以下、TTS)は、ユーザーが自然言語で入力した質問をSQLクエリに変換する機能です。ユーザーはデータベースとスキーマを選択したうえで質問を入力し、生成されたSQLを実行して結果を確認できます。
TTSは、設定されたLLM(大規模言語モデル)を使用してSQLを生成します。生成されたクエリは、実行前に必ず内容を確認してください。

使用前に確認する事項

参照対象のデータベースおよびスキーマにアクセス権限が必要です。
メタテーブルを使用するように設定されている場合、TTSで使用するテーブルはメタテーブルに登録されている必要があります。
質問は、参照したいデータ、条件、集計基準を具体的に記載すると、精度が高くなります。

使用方法

1.
上部メニューバーで SQL ▾ → SQL Lab をクリックします。
2.
左側パネルで参照したい データベース と スキーマ を選択します。
3.
右側の質問入力欄に質問を入力したうえで、生成する ボタンをクリックします。
4.
画面にSQLクエリが生成されたら、表示されるクエリ生成理由を確認し、クエリ内容を確認します。
5.
実行する ボタンをクリックして結果を確認します。
6.
実行結果と質問の意図が一致しているかを確認します。

結果の活用方法

結果データの活用

結果ウィンドウ上部のボタンを使用すると、クエリ結果を次の方法で活用できます。
1.
グラフ作成: 結果データを基にチャートを作成します。チャートを保存すると、そのクエリに基づく仮想テーブルも併せて保存されます。
2.
CSV形式でダウンロード: クエリ結果データをCSVファイルとしてダウンロードします。
3.
クリップボードにコピー: クエリ結果データをシステムのクリップボードにコピーします。

クエリまたは仮想テーブルとして保存

生成されたSQLをABIにクエリまたは仮想テーブルとして保存するには、保存する または 保存する右側の矢印ボタン をクリックします。
1.
保存する: 作成したクエリをABIに保存します。保存されたクエリは、上部メニューバーの SQL → 保存済みクエリ で確認できます。
2.
データセットを保存: 作成したクエリで構成される仮想テーブルをABIに保存します。保存されたテーブルは、上部メニューバーの データセット で確認できます。

注意事項

メタテーブル管理(管理者機能)

TTSは、データの内容、構造、業務ルールを自ら正確に把握することはできません。
正確なSQL生成のために、管理者はメタテーブルに、テーブル説明、カラム説明、コード値の意味、ジョイン規則、重複値の処理方法など、LLMが参照できる情報を登録する必要があります。
カラム名
説明
db_name
Supersetに登録されたデータベース名を入力します。
PostgreSQL
schema_name
SQLエディタ(SQL Editor)で参照するスキーマ名を入力します。
adventureworks
table_name
テーブル名を入力します。
adventureworks_product_categories
column_name
カラム名を入力します。
製品カテゴリキー、カテゴリ名
table_yn
テーブルかどうかを確認します。
Y または N
similar_word
類似語を入力します。
製品大分類、商品大分類
comment
説明を入力します。
顧客情報テーブル adventureworks_salesテーブルと顧客一意キーでジョイン可能
remark
カラム説明およびジョイン関連の参考事項を入力します。
生年月日: 文字形式、例: 'MM/DD/YYYY' 年収情報: 文字形式、例: ' $80,000 '
メタテーブルには、次の情報が含まれている必要があります。
テーブルの業務上の意味
主要なカラム名とカラム説明
コード値または略語の意味
テーブル間のジョイン基準
スキーマ上に明示されていない業務ルール
重複値の処理、型変換、集計基準など、クエリ作成時に必要な参考事項
メタテーブルを使用するように設定されている場合、メタテーブルに登録されたテーブルのみがTTSで使用可能です。(メタテーブルの使用有無は管理者にお問い合わせください。)

トークン超過時の対応方法

TTSリクエストで使用するメタデータが多い場合、LLMのトークン制限を超える可能性があります。トークン超過が発生した場合は、次の方法を検討します。
1.
メタテーブルに登録されたテーブル一覧を、必要な範囲に絞ります。
2.
テーブルおよびカラムのコメントを、短く明確な要約に整理します。
3.
テーブル名とカラム名を、意味を推測できる名前に整理し、重複する説明は削除します。
4.
頻繁に使用しないカラム説明は除外するか、別の問い合わせフローに分離します。
5.
より多くのトークン数をサポートするモデルへの変更が必要な場合は、管理者にお問い合わせください。

良い質問の書き方のコツ

期間、条件、並び替え基準を一緒に入力します。
必要な集計方法がある場合は、合計、平均、件数、最大値など、明確に記載します。
特定のテーブルやカラムを把握している場合は、質問に含めます。
結果件数が多くなる可能性のある質問は、上位N件、直近N日などのように範囲を制限します。
生成されたSQLが意図と異なる場合は、条件をより具体的に変更して再度生成します。
 メニューに戻る