DataGrip 2021.3 ist da! Dies ist das dritte große Update des Jahres 2021, und es ist vollgepackt mit den verschiedensten Verbesserungen. Sehen wir uns an, was es zu bieten hat!
Wir haben die Möglichkeit hinzugefügt, eine aggregierte Ansicht für einen Zellenbereich anzuzeigen. Diese lang erwartete Funktion hilft Ihnen bei der Verwaltung Ihrer Daten und dürfte Ihnen so manche zusätzliche Abfrage ersparen! Der Dateneditor wird dadurch noch leistungsfähiger und benutzerfreundlicher und kommt Excel und Google Tabellen einen Schritt näher.
Wählen Sie einfach den gewünschten Zellenbereich aus, klicken Sie mit der rechten Maustaste und wählen Sie Show Aggregate View.
Das Wichtigste in Kürze:
In der Statusleiste wird ein Aggregat angezeigt, und Sie können auswählen, welcher Wert (Summe, Mittelwert, Median, Minimum, Maximum usw.) das sein soll.
Durch Drücken von F4 auf einem Schemaknoten wird der Inhalt in einer Tabellenansicht angezeigt. Sie können sich beispielsweise eine Tabellenansicht aller Tabellen in Ihrem Schema anzeigen lassen:
Oder Sie können eine Tabellenansicht der Spalten einer Tabelle abrufen:
In dieser Ansicht können Sie Spalten aus- und einblenden, die Daten in zahlreiche Formate exportieren und die Textsuche verwenden. Noch wichtiger dürfte sein, dass die folgenden Navigationsaktionen ebenfalls funktionieren:
Wenn Sie den Editor teilen und dieselbe Tabelle erneut öffnen, sind jetzt die beiden Dateneditor-Fenster völlig unabhängig voneinander. Sie können dann unterschiedliche Filter- und Sortieroptionen festlegen, um die Daten zu vergleichen und zu bearbeiten. In früheren Versionen wurden Filter- und Sortieroptionen synchronisiert, was nicht ideal war.
Sie können unter Database | Data views | Use custom font eine separate Schriftart für die Datenanzeige auswählen.
Im Dateneditor können Sie nun mehrere Werte auswählen und zu den zugehörigen Daten navigieren.
Sie können die Standardmethode zum Sortieren von Tabellen definieren – über ORDER BY oder auf der Clientseite. Die letztere Methode führt keine neuen Abfragen aus und sortiert nur die aktuelle Seite. Die Einstellung finden Sie unter Database | Data views | Sorting | Sort via ORDER BY.
16-Byte-Daten werden jetzt standardmäßig als UUID angezeigt. Sie haben auch die Möglichkeit, die Anzeige von Binärdaten in der Dateneditor-Spalte anzupassen.
filter {}
und sort {}
MongoDB Beim Filtern von Daten in MongoDB-Collections steht Ihnen jetzt die Code-Completion zur Verfügung.
Dieses Release ist eine logische Fortsetzung des letzten, das die Möglichkeit einführte, eine DDL-Datenquelle anhand einer echten Datenquelle zu generieren. Dieser Workflow wird jetzt vollständig unterstützt. Sie haben folgende Möglichkeiten:
Zur Erinnerung: Eine DDL-Datenquelle ist eine virtuelle Datenquelle, deren Schema auf einer Reihe von SQL-Skripten basiert. Das Speichern dieser Dateien in Ihrer Versionsverwaltung bietet Ihnen die Möglichkeit, Ihre Datenbanken zu versionieren.
Auf dem neuen Tab DDL mappings in den Datenkonfigurationseigenschaften können Sie vorgeben, welche reale Datenquelle welcher DDL-Datenquelle zugeordnet ist.
Wenn Sie mehr darüber erfahren möchten, wie diese neuen Funktionen Ihre täglichen VCS-Workflows unterstützen, lesen Sie bitte diesen Artikel.
Um Ihre DDL-Datenquelle mit der dazugehörigen echten Datenquelle zu vergleichen und zu synchronisieren, öffnen Sie das Kontextmenü und wählen Sie im Untermenü DDL Mappings den Eintrag Apply from... oder Dump to... aus.
Dieses neue Fenster bietet eine bessere Benutzerführung und zeigt auf der rechten Seite genau an, welches Ergebnis Sie bei einer Synchronisierung erhalten.
Die Legende im rechten Fensterbereich zeigt an, was die Farben für das potenzielle Ergebnis bedeuten:
Im Tab Script preview sehen Sie das Ergebnisskript, das entweder in einer neuen Konsole geöffnet oder in diesem Dialog ausgeführt werden kann. Die Änderungen, die durch dieses Skript vorgenommen werden, führen dazu, dass die Datenbank rechts (Ziel) zu einer Kopie der Datenbank links (Quelle) wird.
Neben dem Tab Script preview enthält der untere Fensterbereich zwei weitere Tabs: Object Properties Diff und DDL Diff. Sie zeigen die Unterschiede zwischen den jeweiligen Versionen des Objekts in Ursprungs- und Zieldatenbank an.
Zur Erinnerung: Wenn Sie lediglich zwei Schemata oder Objekte vergleichen möchten, wählen Sie diese einfach aus und drücken Sie Strg+D.
Wichtig! Der Diff-Betrachter wird noch intensiv weiterentwickelt. Da jede Datenbank spezielle Eigenschaften hat, können zwei Objekte als unterschiedlich angezeigt werden, auch wenn sie in Wirklichkeit identisch sind. Dies kann zum Beispiel aufgrund von Typ-Aliasnamen oder beim Weglassen von Standardeigenschaften bei der Generierung geschehen. Wenn Sie auf diesen Fehler stoßen, melden Sie ihn bitte in unserem Tracker.
Alle Dateiaktionen sind auch für DDL-Datenquellen verfügbar. Sie können beispielsweise Dateien, die sich auf Schemaelemente beziehen, im Datenbank-Explorer löschen, kopieren oder committen.
Wenn diese Option aktiviert ist, wird Ihre DDL-Datenquelle automatisch aktualisiert, wenn die entsprechenden Dateien geändert wurden. Dies war bisher das Standardverhalten. Jetzt haben Sie die Möglichkeit, es zu deaktivieren.
Wenn Sie die Option deaktivieren, werden Änderungen in den Quelldateien nicht automatisch in die DDL-Datenquelle übernommen, sodass Sie auf Refresh klicken müssen, um die Änderungen anzuwenden.
Im Bereich Default schemas/databases können Sie Datenbank- und Schema-Namen definieren, die in der DDL-Datenquelle angezeigt werden. DDL-Skripte enthalten normalerweise keine Namen, und in solchen Fällen werden standardmäßig Dummy-Namen für Datenbanken und Schemata verwendet.
Wenn ein Wert außer User oder Password führende oder abschließende Leerzeichen enthält, warnt DataGrip Sie, wenn Sie auf Test Connection klicken.
SQL Server LocalDB verfügt über einen eigenen Treiber in der Treiberliste. Dies bedeutet, dass es einen separaten Datenquellentyp gibt, der für LocalDB verwendet werden sollte. Daraus ergeben sich folgende Vorteile:
Die Kerberos-Authentifizierung kann jetzt in Oracle und SQL Server verwendet werden. Sie müssen mit dem Befehl kinit ein TGT (ticket-granting ticket) für den Prinzipal erstellen, das DataGrip verwendet, wenn Sie die Kerberos-Option wählen.
Mit dieser neuen Option auf dem Options-Tab können Sie DBMS_OUTPUT standardmäßig für neue Sitzungen aktivieren.
Für Fälle, in denen Sie eine selten verwendete Einstellung einer Verbindung bearbeiten müssen, haben wir die Schaltfläche More Options hinzugefügt. Die derzeit verfügbaren Optionen umfassen das Hinzufügen der Felder Schema und Role für Snowflake-Verbindungen und zwei Menüeinträge für die SSH- und SSL-Konfiguration, um die Auffindbarkeit zu verbessern.
Der Tab Advanced enthält jetzt eine Liste der Expert options (Expertenoptionen). Neben dem Aktivieren des JDBC-Introspectors (bitte diese Option nur nach Rücksprache mit unserem Support verwenden!) stehen folgende datenbankspezifische Optionen zur Verfügung:
Bei Oracle-Systemen trat das Problem auf, dass die Introspektion mit DataGrip lange dauerte, wenn viele Datenbanken und Schemata vorhanden waren. Introspektion bezeichnet das Abrufen von Metadaten aus der Datenbank – z. B. Objektnamen und Quellcode. DataGrip benötigt diese Daten, um eine schnelle Programmierunterstützung sowie Navigations- und Suchfunktionen bereitzustellen.
Die Oracle-Systemkataloge sind ziemlich langsam, und die Introspektion war noch langsamer, wenn der Account keine Administratorrechte hatte. Wir haben unser Bestes getan, um das Abfragen der Metadaten zu optimieren, aber unsere Möglichkeiten waren begrenzt.
Wir haben erkannt, dass es für die meisten Alltagsvorgänge und sogar für eine effektive Programmierunterstützung das Laden des Quellcodes der Objekte nicht erforderlich ist. In vielen Fällen reichen die Objektnamen aus, um eine ordnungsgemäße Code-Completion und Navigation zu ermöglichen. Aus diesem Grund haben wir drei Introspektionsstufen für Oracle-Datenbanken eingeführt:
Die Introspektion ist auf Stufe 1 am schnellsten und auf Stufe 3 am langsamsten.
Über das Kontextmenü können Sie die Introspektionsstufe nach Bedarf ändern:
Die Introspektionsstufe kann entweder für ein Schema oder für die gesamte Datenbank festgelegt werden. Die Schemata erben ihre Introspektionsstufe von der Datenbank, Sie können für sie aber auch eine abweichende Stufe festlegen.
Die Introspektionsstufe wird durch die pillenähnlichen Symbole neben dem Datenquellensymbol angezeigt. Je höher der Füllgrad der Pille ist, desto höher ist die Introspektionsstufe. Ein blaues Symbol bedeutet, dass die Introspektionsstufe direkt festgelegt ist, während ein graues Symbol eine geerbte Stufe darstellt.
Sie können Ihren verknüpften Server in SQL Server oder Ihren Datenbanklink in Oracle einer beliebigen vorhandenen Datenquelle zuordnen.
Wenn der Datenquelle externe Objekte zugeordnet sind, werden in Abfragen bei der Code-Completion und der Auflösung diese externen Objekte verwendet.
Interne Systemschemata (wie pg_toast oder pg_temp) sowie Vorlagendatenbanken wurden früher nicht in der Schemaliste angezeigt. Mithilfe der entsprechenden Optionen auf dem Schemas-Tab können sie jetzt angezeigt werden.
In der Datenbankansicht werden jetzt neben Tabellen und Views auch Streams angezeigt.
Verteilte Tabellen sind jetzt im Datenbank-Explorer unter einem speziellen Knoten zu finden.
One of our users posted about an unfortunate situation: he executed the UPDATE
query on a production database with the condition WHERE id - 3727
(instead of =) and had millions of records updated!
Wir waren auch überrascht, dass MySQL so etwas zulässt, aber so ist das Leben. Aber wir wären nicht das DataGrip-Team, wenn uns dafür keine Inspektion einfallen würde. Wir bitten um Applaus für die Inspektion auf boolesche Ausdrücke in WHERE
- und HAVING
-Klauseln!
Wenn der Ausdruck kein expliziter boolescher Wert zu sein scheint, hinterlegt DataGrip ihn gelb und warnt Sie, bevor Sie eine solche Abfrage ausführen. Die Inspektion funktioniert mit ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite und Vertica. In allen anderen Datenbanken wird dies als Fehler gekennzeichnet.
Sie können jetzt Abfragen als Tabellenfunktion extrahieren. Wählen Sie dazu die Abfrage aus, öffnen Sie das Menü Refactor und klicken Sie auf Extract Routine.
JOIN
-Kardinalität Ein neuer Inlay-Hint zeigt Ihnen die Kardinalität von JOIN
-Klauseln an. Es gibt drei Möglichkeiten: eins-zu-eins, eins-zu-viele und viele-zu-viele. Zum Deaktivieren ändern Sie die Einstellung Preferences | Editor | Inlay Hints | Join cardinality.
Datenbanknamen werden bei der Verwendung von getSiblingDB
vervollständigt, und bei getCollection
erhalten Sie Vorschläge für Collection-Namen.
Darüber hinaus werden Feldnamen vervollständigt und aufgelöst, wenn sie aus einer Collection verwendet werden, die mit getCollection
definiert wurde.
Wie in diesem Ticket gefordert wird die Abfrageausgabe standardmäßig ohne Zeitstempel angezeigt. Um zum bisherigen Verhalten zurückzukehren, können Sie die Einstellung Database | General | Show timestamp for query output ändern.
Wenn Sie das Services-Toolfenster im Fenstermodus verwenden, ist er standardmäßig hinter der IDE versteckt. Mit der neuen Einstellung wird der Fokus bei Ausführung einer Abfrage an das Fenster übergeben, damit es nach Abschluss der Abfrage angezeigt wird.
Sollte es Sie stören, wenn nach Abschluss einer langen Abfrage in einer anderen Konsole der entsprechende Tab im Services-Toolfenster aktiviert wird, aktivieren Sie das Kontrollkästchen Activate Services output pane for selected query console only.
Beim Importieren von .csv-Dateien oder beim Kopieren von Tabellen/Ergebnissen werden Sie folgende Verbesserungen feststellen:
Beim Öffnen oder Importieren einer CSV-Datei erkennt DataGrip ab sofort automatisch, wenn die erste Zeile eine Kopfzeile mit Spaltennamen ist.
DataGrip kann jetzt Spaltentypen in CSV-Dateien erkennen. Der Hauptvorteil besteht darin, dass Sie Daten nach Zahlenwerten sortieren können. Vorher wurden sie als Text behandelt und die Sortierung entsprach nicht immer den Erwartungen.
Bisher hatten wir zwei sehr ähnliche Fenster – Favorites und Bookmarks. Da der Unterschied zwischen den beiden manchmal nicht ganz klar war, haben wir uns entschieden, nur eines zu behalten – Bookmarks. Wir haben den Workflow für diese Funktionalität überarbeitet und ein neues Toolfenster dafür erstellt.
Von nun an werden alle Objekte oder Dateien, die Sie mit F3 (macOS) oder F11 (Windows/Linux) als wichtig markieren, im neuen Bookmarks-Toolfenster angezeigt.