IRI Workbench bietet eine Reihe von Funktionen zum Arbeiten über mehrere Tabellen in einer Datenbank. Es enthält Assistenten für: Profildatenbanken; Spalten klassifizieren; Daten unterteilen, maskieren und migrieren; Testdaten generieren; usw.
Tools in IRI Workbench können bei der Auswahl helfen, welche Tabellen diesen Assistenten zur Verfügung stehen, sowie in einem bestimmten Beziehungsdiagramm oder beim Scannen von Tabellen nach Mustern oder Sammlungen sensibler Werte. Bei zu vielen Tabellen in einer Datenbank kann es überwältigend sein, alle Daten und Metadaten zu visualisieren, auszuwählen und zu scannen. Eine Lösung für dieses Datenüberlastungsproblem besteht darin, die Tabellen zu filtern, die zu einem bestimmten Zeitpunkt sichtbar sind.
Filter
Es ist einfacher, mit kleineren Gruppen von Tabellen gleichzeitig zu arbeiten. Typischerweise sind ein paar hundert verwandte Tabellen gleichzeitig eine angemessene Menge. Glücklicherweise gibt es in IRI Workbench einen Mechanismus, um die Liste der angezeigten Tabellen mithilfe eines Filters einzuschränken.
Ausgefilterte Tabellen werden aus der Liste im Datenquellen-Explorer, der Hauptansicht der Datenbankstruktur, ausgeschlossen. Sie erscheinen auch nicht in den Auswahllisten in Assistenten und werden bei schemaweiten Datenscans übersprungen, wodurch die Klassifizierung schwer zu findender Daten beschleunigt wird. Die Reduzierung der Anzahl der Tabellen auf einen logischen Satz mit einer überschaubaren Datenmenge erleichtert es dem Benutzer, sich auf die anstehende Aufgabe zu konzentrieren. Es können mehrere Verbindungsprofile erstellt werden, um nur die Tabellen anzuzeigen, die sich auf eine bestimmte Aufgabe beziehen.
Das einfache Filtern nach Tabellennamen ist eine integrierte Funktion des Eclipse Data Tools Platform (DTP)-Projekts, das für den Datenbankzugriff in IRI Workbench verwendet wird. Es kann jedoch nur verwendet werden, um Tabellennamen anzugeben, die mit bestimmten Zeichenfolgen beginnen, enthalten oder enden. Es gibt Zeiten, in denen ein ausgefeilterer Ansatz erforderlich ist.
DTP ermöglicht auch die Auswahl einer Liste von Tabellennamen für die Aufnahme oder den Ausschluss auf Schemabasis. Dies umfasst das Laden aller Tabellennamen in eine Assistentenseite und das anschließende Anwenden einer Häkchenauswahl auf alle einzuschließenden oder auszuschließenden Tabellennamen. Dies funktioniert gut für eine kleine Anzahl von Tabellen, wird aber schnell unhandlich, wenn die Liste der Tabellen in die Tausende oder sogar Zehntausende anwächst.
Es gibt eine relativ einfache Problemumgehung, die eine Tabellenauswahl nach Namen ermöglicht, basierend auf einer vom Benutzer bereitgestellten externen Liste. Diese Liste könnte von einem externen Tool oder als Ergebnis einer SQL-Abfrage generiert werden. Dieser Beitrag zeigt beispielhaft Schritt für Schritt, wie dies bewerkstelligt werden kann.
Erstellen Sie eine Tischliste
Viele verschiedene Abfragemethoden können verwendet werden, um die Tabellenliste aufzubauen. Eine nützliche Methode besteht darin, alle Tabellen herauszufiltern, die keine Datenzeilen enthalten. In diesem speziellen Beispiel wird jedoch eine SQL-Abfrage verwendet, um eine Liste von Tabellen zu extrahieren, die basierend auf dem Abgleich mit den Tabellennamen in den Filter aufgenommen werden sollen. Die Liste der ausgewählten Tabellen ist kurz, um das Beispiel leichter nachvollziehen zu können. Die gleiche Technik funktioniert zum Filtern von Tabellen basierend auf einer viel längeren Liste.
Die relevanten Tabellen in diesem Beispiel haben zwei Formate, sie beginnen entweder mit dem Buchstaben D, gefolgt von einem beliebigen Zeichen und dann einem Unterstrich, oder sie beginnen mit der Zeichenfolge „IRI_“. Jedem Muster kann dann eine beliebige Anzahl zusätzlicher Zeichen folgen.
Der Unterstrich wurde absichtlich als interessierendes Zeichen gewählt, da der Unterstrich in der strukturierten Abfragesprache (SQL) ein einzelnes Platzhalterzeichen darstellt. Daher ist die Verwendung eines Unterstrichs in einem DTP-Filterausdruck oder einer SQL-Anweisung nicht einfach.
Dieses Beispiel basiert auf einer Oracle-Datenbank und zeigt, wie der Unterstrich maskiert wird, damit er wörtlich in der where-Klausel einer Abfrage verwendet werden kann. Die Abfrage, die eine Tabellenliste erzeugt, die den obigen Kriterien entspricht:
SELECT TABLE_NAME FROM ALL_TABLES WHERE ( TABLE_NAME LIKE 'D_\_%' ESCAPE '\' OR TABLE_NAME LIKE 'IRI\_%' ESCAPE '\' ) AND OWNER LIKE 'SCOTT' ;
Beachten Sie die Verwendung des umgekehrten Schrägstrichs, um den Unterstrich zu maskieren, wo immer er wörtlich interpretiert werden sollte. Diese Abfrage kann von einem SQL-Sammelalbum ausgeführt werden Datei innerhalb der IRI Workbench. Die Ergebnisse werden in den SQL-Ergebnissen angezeigt Sichtfenster. Wenn sich der Cursor im SQL Scrapbook-Dateieditor befindet, klicken Sie mit der rechten Maustaste auf das Kontextmenü und wählen Sie Alle ausführen .
Die Abfrage muss auch separat für jedes andere Schema (EIGENTÜMER) ausgeführt werden, das eine gefilterte Tabellenliste benötigt. Abfrageergebnisse für verschiedene Schemas werden getrennt gehalten und auf ähnliche Weise verarbeitet.
Die Ergebnisse werden unter Ergebnis 1 angezeigt Registerkarte in den SQL-Ergebnissen Aussicht. Wählen Sie im Kontextmenü dieser Ansicht Exportieren> Aktuelles Ergebnis . Exportieren Sie im nächsten Dialog das Ergebnis als CSV-Datei in den Projektordner im Arbeitsbereich.
Tabellenliste zur Verbindungsprofil-Importdatei
Eclipse DTP bietet einen Mechanismus zum Importieren und Exportieren eines oder mehrerer Datenbankverbindungsprofile aus oder in eine speziell definierte XML-Datei. Dabei wird zunächst die CSV-Datei zum Einfügen in die Importdatei vorbereitet, dann das zu filternde Verbindungsprofil exportiert und schließlich die Exportdatei mit der Liste der Tabellennamen als Filterbedingung modifiziert.
Öffnen Sie die CSV-Datendatei im Texteditor der IRI Workbench. Die CSV-Datei wird nicht genau so formatiert, wie sie benötigt wird. Löschen Sie zuerst die allererste Zeile mit der Spaltenüberschrift. Als nächstes müssen die Tabellennamen von einfachen Anführungszeichen statt doppelten Anführungszeichen eingerahmt werden, und ein Komma muss jeden Namen trennen.
Drücken Sie Strg+F, um Suchen/Ersetzen aufzurufen Dialog. Geben Sie die folgenden Muster für F ein ind: ^”(.*)”$ und R e Ort mit: ‘\1‘, und wählen Sie das Reguläre e aus x Druck Möglichkeit. Drücken Sie auf Ersetzen A ll Schaltfläche und speichern Sie dann die Datei. Die Tabellenlistendatei kann nun in der Importdatei verwendet werden.
Der nächste Schritt besteht darin, einen Export des Datenbankverbindungsprofils ohne angewendeten Tabellennamenfilter vorzubereiten. Die Schaltfläche zum Exportieren des Verbindungsprofils befindet sich im Datenquellen-Explorer Symbolleiste anzeigen. Es sieht aus wie ein Korb mit einem Pfeil, der nach oben und rechts zeigt. Setzen Sie ein Häkchen neben das Verbindungsprofil, das den Filter benötigt, und geben Sie im Projektarbeitsbereich einen Dateinamen mit der Erweiterung .xml an. Achten Sie auch darauf, die Option Dateiinhalt verschlüsseln zu deaktivieren Box, bevor Sie die Datei speichern.
Öffnen Sie die XML-Exportdatei in der IRI Workbench. Klicken Sie auf die Quelle Registerkarte am unteren Rand des XML-Editor-Fensters. Drücken Sie Umschalt+Strg+F, um den XML-Code auf mehrere Zeilen zu formatieren, damit er einfacher bearbeitet werden kann. Ganz oben, direkt innerhalb des Profils tag, ist eine Zeile mit den Attributen id und Name .
Rufen Sie eine Website wie https://www.guidgen.com/ auf und generieren Sie eine neue GUID, um den Wert in id zu ersetzen Attribut. Bearbeiten Sie den Namen -Attribut, um das Wort „gefiltert“ oder einen anderen Indikator hinzuzufügen, der das neue Verbindungsprofil identifiziert.
Unten sehen Sie eine Vorher-Nachher-Ansicht des beispielhaften Verbindungsprofils:
Vorher:
Nachher:
Suchen Sie als Nächstes die Zeile mit:
<org.eclipse.datatools.connectivity.sqm.filterSettings />
Wenn das Tag bereits zusätzliche Elemente enthält, bedeutet dies, dass bereits Filter auf Schemas im Verbindungsprofil angewendet wurden. Sie können an Ort und Stelle belassen und neue Tabellenfilter für zusätzliche Schemas eingefügt werden.
Andernfalls können die Eigenschaften des Verbindungsprofils bearbeitet werden, um sie vor dem erneuten Exportieren zu entfernen. Die obige Zeile muss durch Folgendes ersetzt werden:
<org.eclipse.datatools.connectivity.sqm.filterSettings> <property name="::SCOTT::DatatoolsTableFilterPredicate" value="IN()" /> </org.eclipse.datatools.connectivity.sqm.filterSettings>
Gehen Sie zurück zur bearbeiteten CSV-Datendatei mit der Liste der Tabellen. Markieren Sie den gesamten Text und kopieren Sie ihn in die Zwischenablage. Kehren Sie zur XML-Datei zurück und fügen Sie den Inhalt der Zwischenablage direkt zwischen den Klammern im Text direkt darüber ein. Beachten Sie, dass sich der Name des Schemas (EIGENTÜMER) in der Eigenschaft befindet Tag muss es so geändert werden, dass es mit dem Namen des zu filternden Schemas übereinstimmt.
Wenn weitere Schemas mit Tabellenlisten vorhanden sind, wiederholen Sie die Schritte, um weitere Eigenschaften hinzuzufügen Stichworte. Wenn eine Tabellenliste nicht eingeschlossen, sondern ausgeschlossen werden soll, fügen Sie das Schlüsselwort NOT ein vor dem Wort IN . Das resultierende XML in diesem einfachen Beispiel ist unten dargestellt. In einer komplizierteren Datenbank können Tausende von Zeilen mit Tabellennamen vorhanden sein. Wenn alle Bearbeitungen abgeschlossen sind, wählen Sie Datei> Speichern unter… und speichern Sie die Datei unter einem neuen Namen.
Importieren Sie das gefilterte Verbindungsprofil
Die neu erstellte XML-Datei des gefilterten Verbindungsprofils kann importiert werden, wodurch eine neue Kopie des exportierten Profils mit angewendeter Filterung erstellt wird. Die Schaltfläche zum Importieren von Verbindungsprofilen befindet sich im Datenquellen-Explorer Ansichtssymbolleiste, direkt links neben der Exportschaltfläche. Es sieht aus wie ein Korb mit einem Pfeil, der nach unten und nach rechts zeigt. Navigieren Sie zu der XML-Datei, die mit der Tabellenliste geändert wurde. Wenn bereits ein Profil mit demselben Namen vorhanden ist, aktivieren Sie das Kontrollkästchen, um es zu überschreiben.
Wenn Sie schließlich das Verbindungsprofil öffnen und zu dem gefilterten Schema navigieren, werden nur die Tabellen angezeigt, die in der Liste enthalten sind: