DataGrip 2024.1 がリリースされました! この 2024 年最初のメジャーアップデートでは多くの改善が行われています。 すべての新機能と更新の内容をご紹介します!
AI Assistant のチャットにコンテキストを示すデータベーススキーマをアタッチすることで、生成される SQL クエリの品質を改善できるようになりました。 今後はテーブルと列の名前のみがアタッチされ、テーブル数の上限は 50 件になります。
この機能を使用するには、AI Assistant がプロジェクト内のデータベースオブジェクトを検索することに同意する必要があります。
新しいスキーマをアタッチするたびに同意することもできますが、 Attach Schema(スキーマのアタッチ)ポップアップで AI Assistant に選択した内容を記憶させるオプションを有効にすることもできます。 その場合、Enable database context(データベースコンテキストを有効にする)設定が自動的にオンになります。
重要: Enable database context(データベースコンテキストを有効にする)設定がオンの場合、AI Assistant がすべてのデータソースに含まれるすべてのオブジェクト名にアクセス可能になります。
エディターで Explain Code(コードの説明)などのコンテキストメニュー機能をデータベースコンソールから呼び出した場合、現在のスキーマが理解されるようになりました。
AI Assistant がスキーマを認識するため、以下が可能です。
これらは実行可能な操作のほんの一例に過ぎません。 可能性は無限です!
待望の機能がついに実装され、行を列の値で絞り込めるようになりました。
このフィルターはデータベースへのクエリ送信が発生しない実装方法を採用しているため、高速に動作します。 ただし、フィルターは現在のページにしか適用されません。 そのため、より多くの情報を絞り込む必要がある場合は、ページサイズを変更するか、すべてのデータを取得する必要があります。
現在のデータエディターですべてのローカルフィルターをオフにするには、Enable Local Filter(ローカルフィルターの有効化)ボタン の選択を解除してください。
ローカルのテキスト検索機能(Ctrl/Cmd+F
)もお忘れなく! この機能は数十年前から存在していますが、探しているデータの位置を大まかにしか把握していない場合などには今でも役に立ちます。
データエディターで単一レコードに注目できるようになりました。 レコードビューを開くには、Ctrl/Cmd+Shift+Enter
ショートカットかツールバーの Record View(レコードビュー)ボタン を使用します。
レコードビュー内のセルはメインのグリッドで編集可能な場合に編集できます。
用途に応じて 2 列レイアウトに変更することもできます。
2024.1 以降のデータエディターでは CSV ファイル内の列を移動し、変更をファイル自体に適用できるようになっています。
課題トラッカーに寄せられたさまざまなご要望に応えて、以下のように UUID をより扱いやすくしました。
binary(16)
、blob(16)
および同様の型で表記されたものを含め、UUID が格納された任意の列を編集できるようになりました。過去数年間にわたり、セッションの概念が分かりにくく、この機能が DataGrip を習得するうえで重大な影響を及ぼしているとのフィードバックがユーザーから非常に多く寄せられていました。 以下にいくつかの例を掲載しています。
プロジェクトを最優先し、コンソールセッションを分離するというモデルはやり過ぎです。 このモデルのせいで単純な SQL ファイルを開いて実行するのがかなり面倒になっています。 スクリプトを開いて実行する場合、先にプロジェクトを作成してからファイルをプロジェクトに追加し、その後にコンソールとセッションの順に開き、ファイルをセッションに追加しなければなりません。 かなりの苦痛ですよ。
SQL Server Management Studio(SSMS)から乗り換えましたが、DataGrip の UI のほうがはるかに複雑です。 SSMS には基本的にサーバー、クエリ、そして結果があるだけです。 DataGrip にはセッションにコンソール、スクラッチファイルなどなどがあり、新規ユーザーにとってはかなり直感的に使えないツールになっています。
UI の動作がどことなく不自然で、分かりにくいです。 スクリプトを実行するコンソールを選択しなければならない場面がありますが、そうする必要性も、選択した結果がどうなるかもさっぱり分かりません。 デフォルトの挙動はこうあるべきではないですね。
DataGrip での「セッション」とは、接続用のコンテナーを参照する技術用語です。 言い換えると、接続を確立、停止、再確立できるのは 1 つのセッション内であるということです。 各接続に対して 1 つのセッションが存在します。
セッションのアタッチ機能は強力な仕組みである一方で、多くの場合、ユーザーが必要とするのは実行するクエリのコンテキスト(データソースとデータベース、またはスキーマ)を設定することだけです。
バージョン 2024.1 からはクエリを実行するセッションを手動で選択する必要はありません。これは、すべてのタイプのクエリに適用されます。 セッションは内部的にはまだ存在していますが、ユーザーが気にする必要はありません。 この変更が DataGrip の主なユースケースに及ぼす影響を詳しく見てみましょう。
ファイルをアタッチする際、セッションではなくデータソースを選択するだけでよくなりました。 データソースを選択した後はスキーマを選択します。
クライアントの Services(サービス)ツールウィンドウのコンテキストメニューのみに Switch Session(セッションの切り替え)アクションが表示されるようになりました。 このアクションを使用すると、現在のデータソース内のセッションのみを切り替えることができます。
関数を起動する前にセッションを選択する必要がなくなりました。 Execute Routine(ルーチンの実行)ウィンドウの Run from(実行元)オプションを使用することで、関数を起動する元のコンソールかファイルを選択できます。
INSERT
ステートメントのコードの位置揃えスタイル複数行 INSERT
ステートメントを整形し、その値の位置を揃えられるようになりました。 フォーマッターによって各列に含まれる値の幅が解析され、最適な幅が適用されます。
この機能をオンにするには、Align multi-row VALUES(複数行 VALUES の位置揃え)オプションを有効にします:
DataGrip は値の一部が他の値よりも非常に長い場合にも対応できます。 このような値はフォーマッターによって検出されて例外扱いとなり、それ以外のフィールドは次の行に移動されます。
この動作は次の 3 つのオプションで管理できます:
GROUP BY
句の列の補完DataGrip が SELECT
句で使用されている集約関数を解析し、適切な列のリストを GROUP BY
句の候補に含めるようになりました。
WHERE TRUE
句の警告Unsafe query(危険なクエリ)警告を拡張しました。 WHERE TRUE
条件やそのいずれかのバリエーションを含むクエリを実行した際に警告を表示するようにしました。 この句をデバッグ目的でよく使用しており、それを変更するのを時々忘れてしまう人に役立つかもしれません!
コード補完候補を受け入れるためのシンボルを指定する機能を追加し、SQL をより迅速に書けるようにしました。 この機能を使用するには、2 つのオプションを有効にする必要があります。 1 つはこのオプションです:
もう 1 つはこのオプションです:
この機能は演算子を使用する場合に特に役立ちます:
大きなファイルでの作業を簡単にするため、エディターで行を固定表示できるようにしました。 この機能を使用すると、CREATE
ステートメントなどの重要な構造要素をエディターの上部にピン留めした状態でスクロールできます。 そうすればコンテキストが常に視界に入り、ピン留めされた行をクリックして迅速にコード内を移動できます。
この機能はデフォルトで有効になっています。 Settings/Preferences(設定/環境設定)| Editor(エディター)| General(一般)| Appearance(外観)のチェックボックスでオフにすることも、ピン留めする最大行数を設定することもできます。
DataGrip が RedisJSON、RediSearch、RedisBloom および RedisTimeSeries の 4 つの代表的な Redis Stack モジュールのコマンドをサポートするようになりました。 このサポートを有効にするには、新しいバージョン 1.5 のドライバーも必要です。 RedisGraph モジュールは非推奨であり、今後はサポートされません。 このモジュールが提供するサポートの内容は以下の通りです。
JSON ドキュメントが専用のフォルダーに表示されるようになりました。 その値をデータビューアーで表示したり、JSON パスを指定したりできます。
RedisTimeSeries および RedisBloom モジュールが提供する型のキーは data structures
フォルダーの下に表示されます。
データカタログ経由で共有される外部データベースがサポートされるようになりました。 その内容がイントロスペクションの対象になり、対応する補完が提供されるようになりました。