sql >> Database teknologi >  >> RDS >> Database

Tabelfiltrering i IRI Workbench

IRI Workbench indeholder en række funktioner til at arbejde på tværs af flere tabeller i en database. Det inkluderer guider til: profildatabaser; klassificere kolonner; delmængde, maskering og migrering af data; generere testdata; osv.

Værktøjer i IRI Workbench kan hjælpe med at vælge, hvilke tabeller der er tilgængelige for disse guider, såvel som i et bestemt relationsdiagram eller ved scanning af tabeller for mønstre eller samlinger af følsomme værdier. Med for mange tabeller i en database kan det være overvældende at visualisere, vælge og scanne alle data og metadata. En løsning på dette dataoverbelastningsproblem er at filtrere de tabeller, der er synlige på et bestemt tidspunkt.

Filtre

Det er nemmere at arbejde med mindre sæt borde på én gang. Typisk er et par hundrede relaterede borde ad gangen et rimeligt beløb. Heldigvis er der en mekanisme i IRI Workbench til at begrænse listen over viste tabeller ved hjælp af et filter.

Tabeller, der er filtreret fra, er udelukket fra listen i Data Source Explorer, hovedvisningen i databasestrukturen. De vises heller ikke i valglisterne i guider og springes over under skemadækkende datascanninger, hvilket fremskynder klassificeringen af ​​svære at finde data. At reducere antallet af tabeller til et eller andet logisk sæt, med en overskuelig mængde data, gør det lettere for brugeren at fokusere på den aktuelle opgave. Der kan oprettes flere forbindelsesprofiler for kun at vise de tabeller, der er relateret til en bestemt opgave.

Enkel filtrering efter tabelnavn er en indbygget funktion i Eclipse Data Tools Platform-projektet (DTP), som bruges til databaseadgang i IRI Workbench. Det kan dog kun bruges til at angive tabelnavne, der starter med, indeholder eller slutter med bestemte tegnstrenge eller ikke. Der er tidspunkter, hvor en mere sofistikeret tilgang er nødvendig.

DTP tillader også, at en liste over tabelnavne kan vælges til enten inklusion eller ekskludering på skemabasis. Dette indebærer, at alle tabelnavne indlæses på en guideside og derefter anvender markering af flueben på alle de tabelnavne, der skal inkluderes eller udelukkes. Dette fungerer godt for et lille antal borde, men bliver hurtigt uoverskueligt, når listen over tabeller vokser til tusinder eller endda titusinder.

Der er en forholdsvis nem løsning, der tillader tabelvalg efter navn, baseret på en ekstern liste, som brugeren har leveret. Denne liste kan genereres af et eksternt værktøj eller som et resultat af en SQL-forespørgsel. Som eksempel vil dette indlæg vise, trin-for-trin, hvordan dette kan opnås.

Forbered en tabelliste

Mange forskellige forespørgselsmetoder kan bruges til at bygge tabellisten. En nyttig metode er at bortfiltrere alle tabeller, der har nul rækker med data. Men i dette særlige eksempel vil en SQL-forespørgsel blive brugt til at udtrække en liste over tabeller, der skal inkluderes i filteret baseret på matchning med tabelnavnene. Listen over udvalgte tabeller vil være kort for at gøre eksemplet lettere at følge. Den samme teknik vil fungere til at filtrere tabeller baseret på en meget længere liste.

Tabellerne af interesse i dette eksempel har to formater, de starter enten med bogstavet D, efterfulgt af et hvilket som helst tegn og derefter en understregning, eller de starter med strengen "IRI_". Begge mønstre kan derefter efterfølges af et hvilket som helst antal yderligere tegn.

Understregningen blev med vilje valgt som en karakter af interesse, fordi i struktureret forespørgselssprog (SQL) repræsenterer understregningen et enkelt jokertegn. Derfor er det ikke ligetil at bruge en understregning i et DTP-filterudtryk eller en SQL-sætning.

Dette eksempel er baseret på en Oracle-database og vil vise, hvordan man undslipper understregningstegnet, så det kan bruges bogstaveligt i where-klausulen i en forespørgsel. Forespørgslen, som vil producere en tabelliste, der matcher ovenstående kriterier:

SELECT TABLE_NAME
  FROM ALL_TABLES 
  WHERE ( 
    TABLE_NAME LIKE 'D_\_%' ESCAPE '\' OR 
    TABLE_NAME LIKE 'IRI\_%' ESCAPE '\' 
  ) 
  AND OWNER LIKE 'SCOTT'
;

Læg mærke til brugen af ​​omvendt skråstreg for at undslippe understregningstegn, hvor det end skal fortolkes bogstaveligt. Denne forespørgsel kan udføres fra en SQL Scrapbog fil i IRI Workbench. Resultaterne vil blive vist i SQL-resultater udsigtsvindue. Med markøren i SQL Scrapbook-fileditoren, højreklik for at få genvejsmenuen og vælg Udfør alle .

Forespørgslen skal også køres separat for ethvert andet skema (OWNER), som har brug for en filtreret tabelliste. Forespørgselsresultater for forskellige skemaer vil blive holdt adskilt og behandlet på lignende måde.

Resultaterne vil kunne ses på Resultat 1 fanen i SQL-resultater udsigt. Vælg Eksportér> Aktuelt resultat i kontekstmenuen i den visning . I den næste dialog skal du eksportere resultatet til projektmappen i arbejdsområdet som en CSV-formateret fil.

Tabelliste til forbindelsesprofilimportfil

Eclipse DTP giver en mekanisme til at importere og eksportere en eller flere databaseforbindelsesprofiler fra eller til en specielt defineret XML-fil. Fremgangsmåden her vil være først at forberede CSV-filen til indsættelse i importfilen, derefter eksportere forbindelsesprofilen, der vil blive filtreret, og til sidst at ændre eksportfilen med listen over tabelnavne som en filterbetingelse.

Åbn CSV-datafilen i IRI Workbench-teksteditoren. CSV-filen bliver ikke formateret præcis, som den er nødvendig. Først skal du slette den allerførste række, som har kolonneoverskriften. Dernæst skal tabelnavnene indrammes af enkelte anførselstegn i stedet for dobbelte anførselstegn, og et komma skal adskille hvert navn.

Tryk på Ctrl+F for at få vist Find/Erstat dialog. Indtast følgende mønstre for F ind: ^”(.*)”$ og R e sted med: ‘\1’, og vælg Almindelig e x tryk mulighed. Tryk på Erstat A ll knappen og gem derefter filen. Tabellistefilen er nu klar til brug i importfilen.

Det næste trin er at forberede en eksport af databaseforbindelsesprofilen uden brug af tabelnavnsfilteret. Knappen til eksport af forbindelsesprofil er på Datakilde Explorer se værktøjslinjen. Det ligner en kurv med en pil, der peger op og til højre. Sæt et flueben ud for den forbindelsesprofil, der skal bruge filteret, og angiv et filnavn med en .xml-udvidelse i projektets arbejdsområde. Sørg også for at fjerne markeringen af ​​Kryptér filindhold boksen, før du gemmer filen.

Åbn XML-eksportfilen i IRI Workbench. Klik på Kilde fanen nederst i XML-editorvinduet. Tryk på Shift+Ctrl+F for at formatere XML på flere linjer, for at gøre det nemmere at redigere. Nær toppen, lige inden for profilen tag, er en linje med attributterne id og navn .

Gå til et websted som https://www.guidgen.com/ og generer et nyt GUID for at erstatte værdien i id attribut. Rediger navnet attribut for at tilføje ordet "filtreret" eller en anden indikator, der identificerer den nye forbindelsesprofil.

Nedenfor er en før og efter visning af eksempelforbindelsesprofilen:

Før:

Efter:

Find derefter den linje, der har:

<org.eclipse.datatools.connectivity.sqm.filterSettings />

Hvis der allerede er yderligere elementer inde i tagget, betyder det, at der allerede er anvendt filtre på skemaer i forbindelsesprofilen. De kan efterlades på plads, og nye tabelfiltre indsættes for yderligere skemaer.

Ellers kan egenskaberne for forbindelsesprofilen redigeres for at fjerne dem, før de eksporteres igen. Linjen ovenfor skal erstattes med følgende:

<org.eclipse.datatools.connectivity.sqm.filterSettings>
  <property name="::SCOTT::DatatoolsTableFilterPredicate" 
  value="IN()" />
</org.eclipse.datatools.connectivity.sqm.filterSettings>

Gå tilbage til den redigerede CSV-datafil med listen over tabeller. Vælg al teksten, og kopier den til udklipsholderen. Vend tilbage til XML-filen, og indsæt udklipsholderens indhold direkte mellem parenteserne i teksten umiddelbart ovenfor. Bemærk, at hvis skemaet (OWNER) navn er i egenskaben tag, skal det ændres, så det matcher navnet på det skema, der filtreres.

Hvis der er yderligere skemaer med tabellister, skal du gentage trinnene for at tilføje yderligere egenskab tags. Hvis en tabelliste skal ekskluderes i stedet for inkluderet, skal du indsætte søgeordet NOT foran ordet IN . Den resulterende XML i dette simple eksempel er vist nedenfor. I en mere kompliceret database kan der være tusindvis af linjer med tabelnavne. Når al redigering er færdig, skal du vælge Filer> Gem som... og gem filen under et nyt navn.

Importer den filtrerede forbindelsesprofil

Den nyligt oprettede filtrerede forbindelsesprofil XML-fil kan importeres, hvilket skaber en ny kopi af den eksporterede profil, med filtrering anvendt. Forbindelsesprofilimportknappen er på Datakildestifinder se værktøjslinjen lige til venstre for eksportknappen. Det ligner en kurv med en pil, der peger nedad og til højre. Gå til XML-filen, der blev ændret med tabellisten. Hvis der allerede findes en profil med det samme navn, skal du markere afkrydsningsfeltet for at overskrive det.

Til sidst, åbning af forbindelsesprofilen og navigering til det skema, der blev filtreret, resulterer i, at kun de tabeller, der er på listen, vises:


  1. Skift Oracle-port fra port 8080

  2. SQLite - JOIN-sætninger

  3. MySQL versus PDO

  4. Syntaks for for-loop i SQL Server