DataGrip 2023.3 の新機能

データ可視化

Since the release of DataGrip 2023.3, it's been possible to visualize data following our integration of the Lets-Plot library, with its basic no-code data visualization possibilities. 以下の 3 つの全グリッドタイプで可視化を利用できます。

  • Main(メイン)タブ: テーブル、ビュー、または CSV ファイルを開く際、プロットが分割モードで表示されます。
  • Result(結果)タブ: Services(サービス)ツールウィンドウでクエリの結果を確認する際、プロットをグリッドの代わりに表示できます。
  • エディター内の結果: プロットをグリッドの代わりに表示できます。

可視化の設定は保存されないため、グリッドを開き直すとプロットがデフォルトの状態に戻るという既知の問題があることに注意してください。 データ可視化の詳細については、ドキュメントをご覧ください。 この機能はまだ開発中ですので、ぜひフィードバックをお寄せください! フィードバックの提出にはフィードバックフォームを使用するか、課題トラッカーで課題を作成してください。datagrip@jetbrains.com に直接ご連絡いただくことも可能です。

新しいインポート機能

インポート機能の改良には多大な時間を費やしてきましたが、以下の理由により、それだけの価値はあったと思っています。

  • It was the last chapter in the big transition to our generated Modify Object UI, which is described in detail here.
  • この機能を使って複数のターゲットをインポートできるようになりました。
  • 複数の項目を同時に編集できるようになりました。 たとえば、複数ターゲットのスキーマを変更しながら書式の変更や複数ファイルのエンコーディングを行えます。

注目すべき一部の機能を以下に掲載しています。

マッピング

デフォルトのターゲットエンティティはマッピングと呼ばれます。 ここではターゲットテーブルを定義し、ファイルの列をターゲットテーブルの列にマッピングすることができます。 テーブルそのものを編集する必要がある場合は、Edit(編集)ボタンをクリックします。

テーブルが右側のツリー UI に表示されます。 この UI は Modify Object(オブジェクトの変更)UI を完全に再現しているため、テーブルとそのオブジェクトをさまざまな方法で操作できます。

テーブル名の自動生成

このボタンはテーブル名をソースファイルから自動的に生成します。 テーブルの名前を変更した後にデフォルトの名前に戻したい場合に便利です。

列名の単純化

このアクションは元の列名にスペースが含まれる場合に便利です。

古い UI に戻す機能

JetBrains はこの改良が大きな変更であり、一部のユーザーには不便を生じる可能性があることを理解しています。 また、新しい UI の改善点を把握し、あらゆるユーザーケースにおいてより強力で分かりやすい UI にできるよう、どんなフィードバックでもお寄せいただきたいと考えています。

何らかの理由で古い UI に戻したい場合は、このオプションを使用できます。

このオプションは新しい UI に関して受け取ったすべてのフィードバックが処理されるまで提供される予定です。

データの操作

データエディターの数値書式のカスタマイズ

データエディターでさらに柔軟に数値を表示できるようになりました。 最も大きな変更は、小数点と桁区切り記号を指定できるようになったことです。 その他のオプションには、無限大と NaN の表示方法を定義する機能があります。

数値を UNIX タイムスタンプで表示する機能

In the UNIX timestamp format, timestamps are stored as numbers, expressing how many milliseconds have elapsed since January 1, 1970 (UTC). この形式が DataGrip でサポートされるようになりました。

SQL Server BCP を使用したテーブルのインポート/エクスポートのサポート

We've added support for the BCP tool, which lets you export and import tables in SQL Server.

DynamoDB のサポート

このチケットへの 419 人の皆さんの投票が無駄にならなかったことをお伝えします。 JetBrains IDE が DynamoDB のサポートを開始しました!

以下はこれまでに実装された内容です。

  • DynamoDB データを DataGrip のデータビューアーで表示する。
  • コードエディターで Dynamo DB 用の PartiQL をサポートする。
  • キーとインデックスのあるテーブルをイントロスペクションの対象にする。

他に優先してサポートする必要があると思われるものがあれば、こちらの YouTrack 課題にコメントを残してください。

イントロスペクション

イントロスペクションのスケジューラー

データソースごとにイントロスペクションの間隔を設定できるようになりました。

Oracle イントロスペクションレベルのデフォルト値

DataGrip では Oracle のスキーマのイントロスペクションに長時間を要しますが、これは Oracle のカタログが概して非常に遅いためです。 イントロスペクションレベルはこの問題を解決するために導入されたものです。

デフォルトでは、最も高いレベルが選択されていました。 言い換えると、イントロスペクションは選択されたスキーマの第 3 レベルでのみ開始され、低速となっていました。 さらに、イントロスペクションレベルの設定が存在していることを知らないユーザーもいました。

DataGrip 2023.3 では機能の充実度よりもユーザーエクスペリエンスとパフォーマンスが優先されています。 イントロスペクションレベルのデフォルト値は現在、Auto Select(自動選択)に設定されています。

新しい手法では、スキーマのタイプとオブジェクト数に基づいてスキーマごとにデフォルトのイントロスペクションレベルが設定されるようになっています。 ユーザーは現在のスキーマ(Oracle セッションが接続されているスキーマ)を使用することが最も多く、現在以外のスキーマを使用することは少なく、システムスキーマを使用することはほとんどないと想定しました。

イントロスペクターは各スキーマについてオブジェクトをカウントし、以下のしきい値(N はオブジェクト数)を使用してイントロスペクションレベルを選択します。

また、単一オブジェクトのメタデータを取得する断片的イントロスペクションも実装しました。 この機能はメタデータ(通常、ソースコード)がユーザーから明示的にリクエストされた場合に役立ちます。 たとえば、ビューをダブルクリックしてもイントロスペクションレベルが低い場合、DataGrip はソースコードを同時にリクエストします。 これは、他のすべてのデータベースツールに近い動作です。

自動レベル検出はデフォルトで有効になっています。 DataGrip を以前の動作に戻すには、Data Source properties(データソースのプロパティ)| Options(オプション)| Introspection(インスペクション)| Default level(デフォルトレベル)に移動し、Level 3(レベル 3)を選択します。 この機能の動作の詳細については、こちらの記事をお読みください。

SQL Server 新しいオブジェクトのサポート

SQL Server で以下の新しいオブジェクトをサポートしています。

  • パーティション関数とパーティションスキーム
  • パーティションと関連テーブル/インデックスプロパティ
  • 台帳テーブル
  • ファイルグループ

Redshift マテリアライズドビューのサポート

Redshift のマテリアライズドビューがイントロスペクション対象になり、Database Explorer(データベースエクスプローラー)で専用のノードに表示されるようになりました。

クエリの実行

Oracle クエリコンソールでの REF カーソルのサポート

コンソールまたは SQL ファイルでクエリを実行する際に REF カーソルから結果を得られるようになりました。

  • 実行する関数が 1 つの REF カーソルのみを含む結果を返す場合、DataGrip はその REF カーソルから結果に即時に移動します。
  • 結果に複数の REF カーソルが含まれるか REF カーソル以外のものが含まれるより複雑なケースでは、DataGrip はメインの結果を示し、他の REF カーソルからの結果を表示する機会を提供します。 REF カーソルのあるセルから対応する結果セットに移動できます(Enter/ダブルクリック)。逆方向の移動(Ctrl+B)も可能です。

コード生成

データセットオブジェクトの有効化/無効化

いくつかのタイプのオブジェクトを有効化または無効化できます。 このリリースの DataGrip からはこの操作を UI で実行できるようになり、対応するコードを生成して実行することができます。

この機能は以下のオブジェクトに適用されます。

  • MySQL イベント。
  • PostgreSQL ルール、トリガー、およびイベントトリガー。
  • MS SQL インデックス、外部キー、チェック制約、およびトリガー。
  • Oracle キー、一意制約、外部キー、チェック制約、トリガー、テーブル空間、およびユーザーアカウント。

その他

SQLite WSL パスを使用している場合の警告

残念ながら、WSL パス配下の SQLite データベースを使用することはできません。 これは、WSL が SQLite ファイルのロック機構を考慮しないためです。 現時点で DataGrip が提供できる解決策は、この特殊なケースで警告を表示することだけです。

Please vote for the original WSL issue if this is critical for you.