sql >> Databasteknik >  >> RDS >> Database

Tabellfiltrering i IRI Workbench

IRI Workbench tillhandahåller ett antal funktioner för att arbeta över flera tabeller i en databas. Den innehåller guider för att: profildatabaser; klassificera kolumner; delmängd, maskera och migrera data; generera testdata; etc.

Verktyg i IRI Workbench kan hjälpa till att välja vilka tabeller som är tillgängliga för dessa guider, såväl som i ett visst relationsdiagram, eller i att skanna tabeller efter mönster eller samlingar av känsliga värden. Med för många tabeller i en databas kan det vara överväldigande att visualisera, välja och skanna all data och metadata. En lösning på det här dataöverbelastningsproblemet är att filtrera de tabeller som är synliga vid en viss tidpunkt.

Filter

Det är lättare att arbeta med mindre uppsättningar bord på en gång. Vanligtvis är några hundra relaterade tabeller åt gången en rimlig summa. Lyckligtvis finns det en mekanism inom IRI Workbench för att begränsa listan över tabeller som visas med hjälp av ett filter.

Tabeller som filtreras bort exkluderas från listan i Data Source Explorer, huvudvyn i databasstrukturen. De visas inte heller i urvalslistorna i guider och hoppas över under schemaomfattande datasökningar, vilket påskyndar klassificeringen av svåråtkomliga data. Att minska antalet tabeller till någon logisk uppsättning, med en hanterbar mängd data, gör det lättare för användaren att fokusera på uppgiften. Flera anslutningsprofiler kan skapas för att endast visa de tabeller som är relaterade till en viss uppgift.

Enkel filtrering efter tabellnamn är en inbyggd funktion i projektet Eclipse Data Tools Platform (DTP), som används för databasåtkomst i IRI Workbench. Den kan dock bara användas för att ange tabellnamn som börjar med, innehåller eller slutar med vissa teckensträngar eller inte. Det finns tillfällen då ett mer sofistikerat tillvägagångssätt behövs.

DTP tillåter också att en lista med tabellnamn kan väljas för antingen inkludering eller exkludering, per schema. Detta innebär att alla tabellnamn läses in på en guidesida, och sedan tillämpas bockmarkering på alla tabellnamn som ska inkluderas eller exkluderas. Detta fungerar bra för ett litet antal tabeller, men blir snabbt ohanterligt när listan med tabeller växer till tusentals eller till och med tiotusentals.

Det finns en relativt enkel lösning som tillåter tabellval efter namn, baserat på en extern lista som tillhandahålls av användaren. Denna lista kan genereras av ett externt verktyg eller som ett resultat av en SQL-fråga. Till exempel kommer detta inlägg att visa steg-för-steg hur detta kan åstadkommas.

Förbered en tabelllista

Många olika frågemetoder kan användas för att bygga tabelllistan. En användbar metod är att filtrera bort alla tabeller som har nollrader med data. Men i det här exemplet kommer en SQL-fråga att användas för att extrahera en lista med tabeller som ska inkluderas i filtret baserat på matchning mot tabellnamnen. Listan över valda tabeller kommer att vara kort för att göra exemplet lättare att följa. Samma teknik kommer att fungera för att filtrera tabeller baserat på en mycket längre lista.

Tabellerna av intresse i det här exemplet har två format, de börjar antingen med bokstaven D, följt av valfritt tecken och sedan ett understreck, eller så börjar de med strängen "IRI_". Båda mönstren kan sedan följas av valfritt antal ytterligare tecken.

Understrecket valdes avsiktligt som ett tecken av intresse, eftersom i strukturerat frågespråk (SQL) representerar understrecket ett enda jokertecken. Därför är det inte enkelt att använda ett understreck i ett DTP-filteruttryck eller en SQL-sats.

Det här exemplet är baserat på en Oracle-databas och visar hur man undviker understreckstecknet så att det kan användas bokstavligen i where-satsen i en fråga. Frågan som kommer att skapa en tabelllista som matchar kriterierna ovan:

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

Lägg märke till användningen av omvänt snedstreck för att undkomma understreckstecken där det än ska tolkas bokstavligt. Den här frågan kan köras från en SQL Scrapbook fil i IRI Workbench. Resultaten kommer att visas i SQL-resultat utsiktsfönster. Med markören i SQL Scrapbook-filredigeraren, högerklicka för snabbmenyn och välj Execute All .

Frågan kommer också att behöva köras separat för alla andra scheman (OWNER) som behöver en filtrerad tabelllista. Frågeresultat för olika scheman kommer att hållas åtskilda och bearbetas på liknande sätt.

Resultaten kommer att visas på Resultat 1 fliken i SQL-resultat se. Välj Exportera> Aktuellt resultat från snabbmenyn i den vyn . I nästa dialogruta exporterar du resultatet till projektmappen i arbetsytan som en CSV-formaterad fil.

Tabelllista till importfil för anslutningsprofil

Eclipse DTP tillhandahåller en mekanism för att importera och exportera en eller flera databasanslutningsprofiler från eller till en speciellt definierad XML-fil. Proceduren här kommer att vara att först förbereda CSV-filen för att infogas i importfilen, sedan exportera anslutningsprofilen som kommer att filtreras och slutligen att modifiera exportfilen med listan över tabellnamn som ett filtervillkor.

Öppna CSV-datafilen i IRI Workbench-textredigeraren. CSV-filen kommer inte att formateras exakt som den behövs. Ta först bort den allra första raden som har kolumnrubriken. Därefter måste tabellnamnen ramas in av enkla citattecken istället för dubbla citattecken, och ett kommatecken måste separera varje namn.

Tryck på Ctrl+F för att visa Sök/Ersätt dialog. Ange följande mönster för F ind: ^”(.*)”$ och R e plats med: '\1', och välj Vanlig e x tryck alternativ. Tryck på Ersätt A ll knappen och spara sedan filen. Tabelllistfilen är nu klar att användas i importfilen.

Nästa steg är att förbereda en export av databasanslutningsprofilen utan att tabellnamnsfiltret tillämpas. Knappen för export av anslutningsprofil finns i Datakällutforskaren visa verktygsfältet. Det ser ut som en korg med en pil som pekar uppåt och åt höger. Placera en bock bredvid anslutningsprofilen som behöver filtret och ange ett filnamn med filtillägget .xml i projektarbetsytan. Se också till att avmarkera Kryptera filinnehåll innan du sparar filen.

Öppna XML-exportfilen i IRI Workbench. Klicka på Källa fliken längst ned i XML-redigeringsfönstret. Tryck på Skift+Ctrl+F för att formatera XML på flera rader för att göra det lättare att redigera. Nära toppen, precis innanför profilen taggen, är en rad med attributen id och namn .

Gå till en webbplats som https://www.guidgen.com/ och generera en ny GUID för att ersätta värdet i id attribut. Redigera namnet attribut för att lägga till ordet "filtrerad", eller någon annan indikator som identifierar den nya anslutningsprofilen.

Nedan är en före- och eftervy av exemplet på anslutningsprofilen:

Före:

Efter:

Hitta sedan raden som har:

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

Om det redan finns ytterligare element inuti taggen betyder det att det redan finns filter som tillämpas på scheman i anslutningsprofilen. De kan lämnas på plats och nya tabellfilter infogas för ytterligare scheman.

Annars kan anslutningsprofilens egenskaper redigeras för att ta bort dem innan du exporterar igen. Raden ovan måste ersättas med följande:

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

Gå tillbaka till den redigerade CSV-datafilen med tabelllistan. Markera all text och kopiera den till urklipp. Gå tillbaka till XML-filen och klistra in urklippsinnehållet direkt mellan parenteserna i texten omedelbart ovanför. Observera att om namnet på schemat (ÄGARE) finns i egenskapen taggen måste den ändras för att matcha namnet på schemat som filtreras.

Om det finns ytterligare scheman med tabelllistor, upprepa stegen för att lägga till ytterligare egenskap taggar. Om en tabelllista ska uteslutas istället för att inkluderas, infogar du nyckelordet NOT framför ordet IN . Den resulterande XML-filen i detta enkla exempel visas nedan. I en mer komplicerad databas kan det finnas tusentals rader med tabellnamn. När all redigering är klar, välj Arkiv> Spara som... och spara filen under ett nytt namn.

Importera den filtrerade anslutningsprofilen

Den nyligen skapade, filtrerade anslutningsprofilens XML-fil kan importeras, skapa en ny kopia av den exporterade profilen, med filtrering tillämpad. Importknappen för anslutningsprofil finns i Datakällutforskaren visa verktygsfältet, precis till vänster om exportknappen. Det ser ut som en korg med en pil som pekar nedåt och åt höger. Bläddra till XML-filen som ändrades med tabelllistan. Om en profil med samma namn redan finns, markera rutan för att skriva över den.

När du slutligen öppnar anslutningsprofilen och navigerar till schemat som filtrerades resulterar det i att endast de tabeller som finns i listan visas:


  1. Oracle:Finns det något sätt att få nya SQL-syntaxfel?

  2. Säkerhetskopiera/exportera en databas från SSH

  3. Returnera 0 om fältet är null i MySQL

  4. SQLAlchemy eller psychopg2?