SQL AI Assistant:あらゆるクエリの作成、編集、説明、最適化、修正を可能に

SQL AI Assistant:あらゆるクエリの作成、編集、説明、最適化、修正を可能に

新しいSQL AI Assistant で、 SQL 開発の生産性を高めることができます。

by David Dichmann
この記事は、2023/12/21 に公開された「Introducing the SQL AI Assistant: Create, Edit, Explain, Optimize, and Fix Any Query」の翻訳です。

あなたが、ビジネスアナリストとして新しい仕事を始めたばかりだとします。そして、すぐに答えが必要な質問をされました。スタート地点に立つのに必要なデータを見つけるのに、どれくらいの時間がかかるでしょうか?何度もクエリの作成を繰り返さなければならないことを考えてみてください。

このシナリオでは、更新が必要なレポートもあり、クエリには、見たこともないような厄介なものが含まれているとします。新しいビジネス要件に適合させるための修正はおろか、まずは理解するためにかかる時間を想像してみてください。

また、これらの厄介なクエリは、常に最も効率的な方法で実行されるとは限りません。エラーを探すのも一苦労です。例えば、KPI が見つからない場合は、コードの隅々まで修正し、最適化し、測定しなければならず、かなりの時間と試行錯誤が必要になります。

想像するだけでも厄介なことがわかります。そんな時、データセットについて何でも知っていて、SQL の専門家であり、問題解決、最適化されたコードの記述、クエリの説明など、さまざまなことを素早く手助けしてくれるパーソナル アシスタントがいたらどうでしょうか?Clouderaの SQL AI Assistant はまさに、その望みを叶えてくれます。

データモデルを初めて作成する場合のクエリの作成

新人であろうと、特定のデータソースを初めて使う場合であろうと、データを見つけることがクエリ作成の90%を占めます。しかし、新しいSQL AI Assistantを使えば、これはもう面倒なタスクではありません。SQL AI Assistantを起動し、自然言語のプロンプトに基づいてクエリを生成するように依頼するだけです。

総売上高のパフォーマンス順に並べられた店舗のリストを検索する例を使ってみましょう。まずは、SQL AI Assistantを起動し、メニューから ”generate” を選択し、プロンプトとして “get store name, store id, manager, zip code, total sales of each store, and sort by total sales in ascending order” (店舗名、店舗ID、マネージャー、郵便番号、各店舗の売上合計を取得し、売上合計で昇順に並べ替える) と入力します。

“assumptions”フィールドでは、SQL AI Assistantがデータモデルをどのように調べたかを見ています。探しているものと比較して、探しているリストを提供するクエリを提供するために必要な適切なテーブル、列、結合を見つけることができました。これ以上、テーブルやカラムを探したり、暗号化されたメタデータを調べたりして、正しいデータセットを見つけるために試行錯誤を繰り返す必要はありません。加えて、クエリも書いてくれるので、さらに時間を節約できます。

既存のクエリを編集して結果を絞り込む

上の生成の例に続いて、もう少し正確なクエリを作りたいとします。クエリを改良するためには、適切なテーブル、カラム、結合などを決定する必要があり、データを調べることになります。たとえデータが明確であったとしても、一から書いたクエリでない場合、どこに結合やWhere句などを追加して、結果全体を台無しにしないようにするかを決めるのは難しい場合があります。ここでも、SQL AI Assistant がお手伝いできます。

例えば、売上高別の店舗リストが、業績指標を正しく理解するのに役立っていないとしましょう。多くの販売員を抱える大きな店舗は、より大きな売上を上げます。しかし、本当に欲しいのは、店舗ごとの営業担当者別の内訳かもしれません。そうすれば、スタッフ1人当たりの平均売上高が最も高いのは誰なのかを知ることができます。そこで、元のクエリをクエリ・エディタ・フィールドに置いた状態で、SQL AI Assistantの ”edit” メニュー項目を使い、追加したいものだけをプロンプトに書くことができます。この場合、SQL AI Assistantに “add sales per employee and sort by sales per employee where sales per employee is total sales divided by the number of employees.” (従業員あたりの売上高を合計し、従業員あたりの売上高で並べ替える。従業員あたりの売上高は、総売上高を従業員数で割ったものである) というように依頼するだけです。

ここでは、元のクエリ (左側) と新しいクエリ (右側) の違いを見て、SQL AI Assistantがクエリ自体の変更として何を提案しているのかを正確に確認することができます。また、結果を洗練させるために必要な追加データについて何を発見したかを説明する “assumptions” フィールドも見られます。これらの変更が気に入れば、新しいクエリとしてエディターに “insert” することができます。また、このクエリをどのように作成したかの履歴を記録しておくために、オプションで元のプロンプトと追加の詳細プロンプトの両方を、新しいクエリのコメントに含めることもできます。

複雑なクエリを理解する

自分が書いていないクエリを扱わなければならないことは多々あり、そのクエリを最後に触った人が見つからないことはよくあります。あるいは、自分が書いたクエリでも、あまりに昔のことで、何をするものなのか思い出せないこともあります。単純なクエリであれば、それは大した問題ではありません。しかし、テーブル名やカラム名が暗号化された複雑なクエリで、実行して結果を見ても、それがどのように機能するのかさっぱりわからないとしたらどうでしょうか?それに対して、もっと詳細を盛り込んだり、結果を洗練させたりするために、それに変更を加えたい場合どうすれば良いでしょうか?そのような場合もSQL AI Assistantの出番です。データモデルとSQLの専門家のように、クエリを読み取り、そのクエリが何をするのかを自然言語で正確に説明します。

これを行うには、SQLエディタフィールドにクエリを貼り付け、SQL AI Assistantから “explain” を選択するだけで、説明が表示されます。この例では、このクエリを理解する必要がありました。

説明プロセスを実行すると、クエリの自然言語の説明が表示されます。 

SQL AI Assistantは、データセントリックの要素も認識します。可能であれば、値 1.2 と比較すると平均より 20% 高いことと同じであるなどのことを認識します。この説明はSQLエディタにコメントとして挿入することができるので、クエリを保存したり文書化したりするときに、クエリと一緒にこの説明を保存・修正できます。

あらゆるクエリの最適化

複雑すぎるクエリを見かけることもよくあります。それを、より読みやすく、高速なパフォーマンスのために単純化することも、大変な作業になります。そんな時も SQL AI Assistantは、対応できます。この例では、多くのサブセレクトを含み、読みにくく、理解しにくいクエリを取り上げてみましょう。このクエリをSQLエディタフィールドに貼り付け、SQL AI Assistantメニューから ”optimize” を選択すると、最適化されたものが表示されます。

結果、元のクエリと最適化されたクエリを並べて比較することができ、より良くするために何をしたかを確認できます。この場合、複数のサブセレクトが単純な結合に変換されていることがわかります。

実行されないクエリの修正

コードをいくら見ても問題が見つからない、構文エラーがあるクエリに悩まされることもあるでしょう。そんな時も、SQL AI Assistantがお手伝いできます。シンタックスエラーのような単純なものから、論理障害のような (循環依存など) 複雑なものまで、SQLエディターにクエリがあれば、メニューからFIXを選択するだけで、SQL AI Assistantが見つけてくれる推奨事項を見ることができます。

上の例では、修正前のクエリと修正後のクエリを並べて比較しています。列リストの括弧を閉じ忘れたり、”group by” フレーズにスペースを入れ忘れたり、”limit” を” limits”とスペルミスしたりしています。

“from” で、テーブル名を “store_sales”ではなく、”stor_sales”と間違えています。 これは構文エラーではありませんが、このクエリを実行しようとするエンジンには確実に引っかかります。SQL AI Assistantはこのミスを発見し、訂正を示してくれました。

すべての間違いが見つかったら、修正したクエリをエディターに挿入してみましょう。

データスキーマも熟知したインテリジェントなSQLエキスパートであるSQL AI Assistantを使えば、作業を劇的に改善できます。生成機能を使えば、正しいデータを見つけ、正しい構文を構築し、新しいクエリを開始する時間を短縮できます。編集機能でクエリを簡単に改良し、最適化機能でクエリの実行を改善し、修正機能でエラーを排除することができます。説明機能を使うことで、どんなクエリでも、その機能についての豊かな自然言語による説明を素早く文書化することができます。全体として、SQL の開発から面倒な作業がなくなるので、難しい質問に答えたり、より良い意思決定を促進するためにデータを使用したりするという楽しい部分に集中できるようになります。

次のステップ

SQL AI Assistant は現在、Cloudera Data Warehouse on Public Cloud で技術プレビューとして利用可能です。SQLを使用する際のメリットを体験していただきたいと思いますのでぜひお試しください。また、Cloudera Data Warehouseのページでは、セルフサービスのデータ分析について、エンタープライズAIのページでは、Cloudera Data Platformがどのようにビジネスの変革に役立つかをご覧ください。

Cloudera Japan Marketing
この著者の他の記事

コメントする

あなたのメールアドレスは公開されません。また、コメントにリンクを貼ることはできません。