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が意図と異なる場合は、条件をより具体的に変更して再度生成します。






