AI Assistant を使用する
AI Assistant プラグインをインストールする
この機能は、インストールして有効にする必要がある AI Assistant(英語) プラグインに依存しています。
Ctrl+Alt+S を押して設定を開き、
を選択します。マーケットプレースタブを開き、AI Assistant プラグインを見つけて、インストールをクリックします (プロンプトが表示されたら、IDE を再起動します)。
AI Assistant は、ソフトウェア開発用の AI を活用した機能を提供します。AI Assistant の詳細については、AI Assistant トピックを参照してください。
このチュートリアルでは、次のタスクに AI Assistant を使用する方法を学習します。
データアグリゲータとエクストラクターを作成する
カスタムデータアグリゲータまたはエクストラクターが必要な場合は、AI Assistant にタスク用のものを作成するように依頼し、作成したスクリプトを aggregators または extractors ディレクトリに追加できます。
LLM に動作するスクリプトの例を提供すると、プロンプトと修正の回数が減る可能性があります。DataGrip では、バンドルされたスクリプトは Scratches and Consoles | Extensions | Database Tools and SQL | data のファイルツールウィンドウ (Alt+2) にあります。
アグリゲータとエクストラクターの詳細については、集計ビューおよびデータ抽出を参照してください。
このチュートリアルでは、アグリゲータを作成し、次の AVG.groovy アグリゲータを例として使用します。
DataGrip では、このスクリプトは Scratches and Consoles | Extensions | Database Tools and SQL | data | aggregators のファイルツールウィンドウにあります。
ステップ 1. スクリプトをリクエストする
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
入力フィールドにプロンプトを入力します。必要なスクリプトを説明し、動作するスクリプトの例を LLM に提供します。
生成されたスクリプトがあるフィールドの右上隅で、
クリップボードにコピーをクリックしてコードをクリップボードにコピーします。
生成されたスクリプト:

ステップ 2. スクリプトをファイルとして保存する
次のいずれかの方法でファイルツールウィンドウを開くことができます。
メインメニューで、
に移動します。ツールウィンドウバーで、
ファイルをクリックします。
Alt+2 を押します。
Scratches and Consoles | Extensions | Database Tools and SQL | data | aggregators に移動します。
アグリゲータノードを右クリックし、 を選択します。
新規ファイルポップアップで、新しいファイル名を入力します。例:
most_frequent_values.groovy。
新しいデータアグリゲータスクリプトをファイルに貼り付けます。
(オプション) 貼り付けたコードを変換するダイアログが表示されたら、キャンセルを押します。このチュートリアルでは、生成されたスクリプト自体を保存します。
新しいデータアグリゲータがデータエディターのステータスバーのアグリゲータリストに表示され、データで使用できるようになります。

自然言語を使用してクエリと情報をリクエストする
AI Assistant はスキーマに関するインサイトを提供し、自然言語のリクエストに基づいてスキーマの SQL クエリを生成することもできます。スキーマにアクセスして構造を分析し、要求されたクエリまたは情報を提供します。
説明のために、ai_demo
データベースにインポートされた PostgreSQL Sakila スキーマを使用します。ダンプファイルは、dumps
リポジトリをクローンすることで取得できます。
リポジトリのクローン作成の詳細については、Git リポジトリのセットアップを参照してください。DataGrip でのダンプファイルの実行の詳細については、SQL ダンプファイルをインポートするを参照してください。
ステップ 1. スキーマを添付する
LLM にデータベーススキーマへのアクセスを許可するには、AI Assistant ツールウィンドウでスキーマをチャットにアタッチします。
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
AI Assistant ツールウィンドウで、入力フィールドの上にある
スキーマを添付をクリックし、アタッチするスキーマを選択します。この例では、
ai_demo.public
です。スキーマを添付ダイアログが表示されたら、接続をクリックしてスキーマを添付します。
チャットにスキーマを添付する方法の詳細については、スキーマセレクタを使用してスキーマを添付するを参照してください。

ステップ 2. チャットで質問する
計画の表示を使用してスキーマとクエリを最適化する
AI Assistant は、EXPLAIN PLAN
コマンドを使用してスキーマとクエリの最適化を支援します。スキーマにアクセスして、プランを分析し、最適化を提案できます。
説明のために、ai_demo
データベースにインポートされた PostgreSQL Sakila スキーマを使用します。ダンプファイルは、dumps
リポジトリをクローンすることで取得できます。
リポジトリのクローン作成の詳細については、Git リポジトリのセットアップを参照してください。DataGrip でのダンプファイルの実行の詳細については、SQL ダンプファイルをインポートするを参照してください。
このチュートリアルでは、次のクエリを使用します。
ステップ 1. 計画の表示コマンドを実行する
AI Assistant に分析させたい EXPLAIN PLAN
を入手してコピーします。
クエリコンソールで、クエリを右クリックし、
に移動します。結果タブで、Ctrl+A と Ctrl+C を押して結果をクリップボードにコピーします。
計画の表示コマンドの詳細については、クエリ実行計画を参照してください。
元のクエリの EXPLAIN PLAN
:

ステップ 2. スキーマを添付する
LLM にデータベーススキーマへのアクセスを許可するには、AI Assistant ツールウィンドウでスキーマをチャットにアタッチします。
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
AI Assistant ツールウィンドウで、入力フィールドの上にある
スキーマを添付をクリックし、アタッチするスキーマを選択します。この例では、
ai_demo.public
です。スキーマを添付ダイアログが表示されたら、接続をクリックしてスキーマを添付します。
チャットにスキーマを添付する方法の詳細については、スキーマセレクタを使用してスキーマを添付するを参照してください。

ステップ 3. 最適化の提案とコマンドを要求する
AI Assistant にクエリの EXPLAIN PLAN
を分析し、可能な最適化を提案するよう依頼します。
ステップ 4. 提案されたインデックスの作成コマンドを実行する
コマンドを選択し、ツールバーの
実行をクリックするか、Ctrl+Enter を押して実行します。
推奨されるコマンド:
IDE は定義されたデータベースオブジェクトを作成し、サービスツールウィンドウの出力タブで出力を表示できます。

ステップ 5. 最適化されたスキーマとクエリの計画の表示を実行する
生成された
CREATE INDEX
コマンドを含むフィールドの右上隅で、スニペットをキャレットに挿入をクリックして、クエリコンソールにコードを挿入します。
提案された最適化されたクエリ:
SELECT customer.first_name, customer.last_name, comedic_category.name FROM customer INNER JOIN rental ON customer.customer_id = rental.customer_id INNER JOIN inventory ON rental.inventory_id = inventory.inventory_id INNER JOIN film_category ON inventory.film_id = film_category.film_id INNER JOIN ( SELECT * FROM category WHERE category.name = 'Comedy' ) AS comedic_category ON film_category.category_id = comedic_category.category_id;最適化されたクエリの
EXPLAIN PLAN
:Hash Join (cost=27.80..236.36 rows=1003 width=81) Hash Cond: (rental.customer_id = customer.customer_id) -> Nested Loop (cost=5.32..211.23 rows=1003 width=70) -> Nested Loop (cost=5.04..49.31 rows=286 width=72) -> Nested Loop (cost=4.76..13.35 rows=62 width=70) -> Seq Scan on category (cost=0.00..1.20 rows=1 width=72) Filter: ((name)::text = 'Comedy'::text) -> Bitmap Heap Scan on film_category (cost=4.76..11.53 rows=62 width=4) Recheck Cond: (category_id = category.category_id) -> Bitmap Index Scan on idx_film_category_category_id (cost=0.00..4.74 rows=62 width=0) Index Cond: (category_id = category.category_id) -> Index Scan using idx_inventory_film_id on inventory (cost=0.28..0.53 rows=5 width=6) Index Cond: (film_id = film_category.film_id) -> Index Scan using idx_rental_inventory_id on rental (cost=0.29..0.53 rows=4 width=6) Index Cond: (inventory_id = inventory.inventory_id) -> Hash (cost=14.99..14.99 rows=599 width=17) -> Seq Scan on customer (cost=0.00..14.99 rows=599 width=17)

2 つのデータベースオブジェクトの DDL を比較する
データベーススキーマへのアクセスが提供されると、AI Assistant はそれを分析し、データベースオブジェクトの DDL を比較できます。
testing.public
スキーマの actor
テーブルと actor_test
テーブルを比較してみましょう。

ステップ 1. スキーマを添付する
LLM にデータベーススキーマへのアクセスを許可するには、AI Assistant ツールウィンドウでスキーマをチャットにアタッチします。
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
AI Assistant ツールウィンドウで、入力フィールドの上にある
スキーマを添付をクリックし、アタッチするスキーマを選択します。この例では、
ai_demo.public
です。スキーマを添付ダイアログが表示されたら、接続をクリックしてスキーマを添付します。
チャットにスキーマを添付する方法の詳細については、スキーマセレクタを使用してスキーマを添付するを参照してください。

ステップ 2. テーブルの DDL を比較する
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
入力フィールドにプロンプトを入力し、Enter を押します。
AI Assistant が DDL を比較し、その違いを説明します。

コードの間違いを修正する
一部のコードが機能しない場合は、AI Assistant にコードに間違いがないか確認して修正するよう依頼できます。
間違いのある次のコードを例として使用してみましょう。
ここでの間違いは、宣言された関数に出力パラメーター p_film_count
があるのに、SQL 本体がそれを計算したり返したりしていないことです。さらに、関数は SETOF integer
を返すように宣言されていますが、SELECT
ステートメントの結果のみを返します。
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
入力フィールドにプロンプトを入力し、コードを貼り付けて、コード修正を要求し、Enter を押します。
必要に応じて、次のプロンプトに追加して修正してください。
修正されたコード:

ある DBMS から別の DBMS にコードを移行する
ある DBMS から別の DBMS にデータベースオブジェクトを移行することは、データの移行、スキーマの変換などの手順を伴う複雑なタスクです。AI Assistant に、データベースオブジェクトのソースコードの移行スクリプトを生成するように依頼できます。
例として、PostgreSQL Sakila スキーマの次の inventory_held_by_customer
プロシージャを使用します。
AI Assistant がコードを移行するには、プロンプトに移行の詳細を入力します。
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
入力フィールドにプロンプトを入力します。元の DBMS とターゲット DBMS を定義し、移行するデータベースオブジェクトの DDL を貼り付けて、Enter を押します。
必要に応じて、次のプロンプトに追加して修正してください。
生成された移行スクリプト:

コードをフォーマットする
インデントや改行、大文字と小文字の統一などがされていないコードは読みにくい場合があります。このようなコードを読みやすくするには、AI Assistant を使用して、推奨するコードスタイルに従ってフォーマットします。
次のような形式が不適切な SQL コードを例として使用します。
AI Assistant でコードをフォーマットするには、プロンプトで希望するコードフォーマットルールを記述します。
ツールバーで、
他のツールウィンドウをクリックし、
AI Assistant を選択して AI Assistant ツールウィンドウを開きます。
入力フィールドに、フォーマットルールを含むプロンプトを入力し、フォーマットするコードを貼り付けて、Enter を押します。
必要に応じて、次のプロンプトに追加して修正してください。
フォーマットされたコード:

関連ページ:

AI Assistant
AI Assistant プラグインをインストールするこの機能は、インストールして有効にする必要がある AI Assistant プラグインに依存しています。を押して設定を開き、を選択します。マーケットプレースタブを開き、AI Assistant プラグインを見つけて、インストールをクリックします (プロンプトが表示されたら、IDE を再起動します)。AI Assistant は、ソフトウェア開発に AI を活用した機能を提供します。コードの説明、コードの断片に関する質問への回答、コードの提案の提供、...

データを表示する
データベースエクスプローラー (表示 | ツールウィンドウ | データベースエクスプローラー) でテーブルをダブルクリックすると、テーブル、ビュー、仮想ビューがデータエディタータブで開きます。データ表示モード:データは、Table、ツリー、テキスト、入れ替えの 3 つのモードで参照および編集できます。これらのモードを切り替えるには、指定形式で表示ボタン () をクリックして、必要なモードを選択します。入れ替え: 行と列が入れ替わる表示モード。このチェックボックスを他の表示モードと組み合わせることが...

データ抽出
データ抽出は、エディター (テキストエディター表示モード) でデータをコピーまたは表示する方法のルールを設定します。データのエクスポートアイコン () の近くにあるデータ抽出リストからデフォルトのエクストラクターを選択したり、既存のエクストラクターを構成したり、Groovy または JavaScript を使用してカスタムエクストラクターを作成したりできます。最後に選択したエクストラクターが、新しく開いたエディタータブのデフォルトのエクストラクターになります。MongoDB の場合、デフォルトの...

ユーザーインターフェース
DataGrip で新しいプロジェクトを開くと、IDE に基本的な要素といくつかの便利なショートカットが表示されます。DataGrip の主なユーザーインターフェース要素は次のとおりです。ツールバー。データベースエクスプローラー (ツールウィンドウ)。ファイルツールウィンドウ。クエリコンソール。データエディターとビューアー。ポップアップメニュー、コンテキストメニュー。サービスツールウィンドウ。クエリ結果タブ。ナビゲーションバー。ステータスバー。

Git リポジトリのセットアップ
既存の Git リポジトリのクローンを作成するか、既存のプロジェクトを Git バージョンコントロール下に置くと、DataGrip はコンピューターに Git がインストールされているかどうかを自動的に検出します。IDE が Git 実行可能ファイルを見つけられない場合、それをダウンロードすることを提案します。DataGrip は、Windows10 バージョン 2004 で使用可能な Windows Subsystem for Linux 2 (WSL2) の Git をサポートします。Git...

SQL ダンプファイルをインポートする
このチュートリアルでは、DataGrip で SQL ダンプファイルを実行する方法を学習します。MySQL と PostgreSQL の場合、DataGrip はダンプツールをサポートしています。使用方法の詳細については、MySQL と PostgreSQL の完全なデータダンプを復元するを参照してください。始める前に:以下のものがあることを確認してください。すぐに使用できる実行中のデータベースインスタンス。DataGrip では、データベースインスタンスに接続できるデータソースです。SQL...