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

Filtraggio tabelle in IRI Workbench

IRI Workbench fornisce una serie di funzioni per lavorare su più tabelle in un database. Include procedure guidate per: profilare i database; classificare le colonne; sottoinsieme, maschera e migrazione dei dati; generare dati di prova; ecc.

Gli strumenti in IRI Workbench possono aiutare a selezionare quali tabelle sono disponibili per tali procedure guidate, nonché in un particolare diagramma di relazione o nelle tabelle di scansione per modelli o raccolte di valori sensibili. Con troppe tabelle in un database, può essere difficile visualizzare, selezionare ed eseguire la scansione di tutti i dati e metadati. Una soluzione a questo problema di sovraccarico di dati consiste nel filtrare le tabelle che sono visibili in un determinato momento.

Filtri

È più facile lavorare con insiemi di tabelle più piccoli contemporaneamente. In genere, poche centinaia di tabelle correlate alla volta sono un importo ragionevole. Fortunatamente, esiste un meccanismo all'interno di IRI Workbench per limitare l'elenco delle tabelle visualizzate, utilizzando un filtro.

Le tabelle filtrate sono escluse dall'elenco in Esplora origine dati, la vista principale nella struttura del database. Inoltre, non vengono visualizzati negli elenchi di selezione nelle procedure guidate e vengono ignorati durante le scansioni dei dati a livello di schema, accelerando la classificazione dei dati difficili da trovare. Ridurre il numero di tabelle a un insieme logico, con una quantità gestibile di dati, rende più facile per l'utente concentrarsi sull'attività in corso. È possibile creare più profili di connessione per mostrare solo le tabelle relative a una particolare attività.

Il filtraggio semplice in base al nome della tabella è una funzionalità incorporata del progetto Eclipse Data Tools Platform (DTP), utilizzato per l'accesso al database in IRI Workbench. Tuttavia, può essere utilizzato solo per specificare nomi di tabelle che iniziano o non iniziano con, contengono o terminano con determinate stringhe di caratteri. Ci sono momenti in cui è necessario un approccio più sofisticato.

DTP consente inoltre di selezionare un elenco di nomi di tabelle per l'inclusione o l'esclusione in base allo schema. Ciò comporta il caricamento di tutti i nomi delle tabelle in una pagina della procedura guidata e quindi l'applicazione della selezione del segno di spunta a tutti i nomi delle tabelle da includere o escludere. Funziona bene per un numero limitato di tabelle, ma diventa rapidamente ingestibile quando l'elenco delle tabelle cresce di migliaia o addirittura decine di migliaia.

Esiste una soluzione relativamente semplice che consente la selezione delle tabelle in base al nome, in base a un elenco esterno fornito dall'utente. Questo elenco potrebbe essere generato da uno strumento esterno o come risultato di una query SQL. A titolo di esempio, questo post mostrerà, passo dopo passo, come questo può essere realizzato.

Prepara un elenco di tabelle

È possibile utilizzare molti metodi di query diversi per creare l'elenco delle tabelle. Un metodo utile consiste nel filtrare tutte le tabelle che hanno zero righe di dati. Tuttavia, in questo particolare esempio, verrà utilizzata una query SQL per estrarre un elenco di tabelle da includere nel filtro in base alla corrispondenza con i nomi delle tabelle. L'elenco delle tabelle selezionate sarà breve, per rendere l'esempio più facile da seguire. La stessa tecnica funzionerà per filtrare le tabelle in base a un elenco molto più lungo.

Le tabelle di interesse in questo esempio hanno due formati, iniziano con la lettera D, seguita da qualsiasi carattere e poi un trattino basso, oppure iniziano con la stringa “IRI_”. Ciascun modello può quindi essere seguito da un numero qualsiasi di caratteri aggiuntivi.

Il carattere di sottolineatura è stato scelto di proposito come carattere di interesse, poiché in SQL (Structured query language) il carattere di sottolineatura rappresenta un singolo carattere jolly. Pertanto, l'utilizzo di un carattere di sottolineatura in un'espressione di filtro DTP o in un'istruzione SQL non è semplice.

Questo esempio è basato su un database Oracle e mostrerà come evitare il carattere di sottolineatura in modo che possa essere utilizzato letteralmente nella clausola where di una query. La query che produrrà un elenco di tabelle che soddisfa i criteri di cui sopra:

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

Notare l'uso della barra rovesciata per evitare il carattere di sottolineatura ovunque dovrebbe essere interpretato letteralmente. Questa query può essere eseguita da un SQL Scrapbook file all'interno di IRI Workbench. I risultati verranno visualizzati nei Risultati SQL finestra di visualizzazione. Con il cursore nell'editor di file di SQL Scrapbook, fare clic con il pulsante destro del mouse per visualizzare il menu di scelta rapida e selezionare Esegui tutto .

La query dovrà anche essere eseguita separatamente per qualsiasi altro schema (OWNER) che necessita di un elenco di tabelle filtrato. I risultati delle query per schemi diversi verranno mantenuti separati ed elaborati in modo simile.

I risultati saranno visibili su Risultato 1 scheda in Risultati SQL Visualizza. Dal menu contestuale di quella vista, seleziona Esporta> Risultato corrente . Nella finestra di dialogo successiva, esporta il risultato nella cartella del progetto nell'area di lavoro come file in formato CSV.

Elenco tabelle al file di importazione del profilo di connessione

Eclipse DTP fornisce un meccanismo per importare ed esportare uno o più profili di connessione al database da o verso un file XML appositamente definito. La procedura qui consisterà nel preparare prima il file CSV per l'inserimento nel file di importazione, quindi esportare il profilo di connessione che verrà filtrato e infine modificare il file di esportazione con l'elenco dei nomi delle tabelle come condizione di filtro.

Aprire il file di dati CSV nell'editor di testo di IRI Workbench. Il file CSV non verrà formattato esattamente come è necessario. Innanzitutto, elimina la prima riga che contiene l'intestazione della colonna. Successivamente, i nomi delle tabelle devono essere racchiusi tra virgolette singole anziché doppie virgolette e una virgola deve separare ogni nome.

Premi Ctrl+F per visualizzare Trova/Sostituisci dialogo. Inserisci i seguenti schemi per F ind: ^”(.*)”$ e R e posto con: '\1', e seleziona la Regular e x pressioni opzione. Premi Sostituisci A tutti pulsante e quindi salvare il file. Il file dell'elenco delle tabelle è ora pronto per essere utilizzato nel file di importazione.

Il passaggio successivo consiste nel preparare un'esportazione del profilo di connessione al database senza il filtro del nome della tabella applicato. Il pulsante di esportazione del profilo di connessione si trova in Data Source Explorer Visualizza barra degli strumenti. Sembra un cestino con una freccia rivolta verso l'alto ea destra. Metti un segno di spunta accanto al profilo di connessione che necessita del filtro e specifica un nome file con estensione .xml nell'area di lavoro del progetto. Assicurati inoltre di deselezionare Crittografa contenuto file casella prima di salvare il file.

Aprire il file di esportazione XML in IRI Workbench. Fare clic su Fonte scheda nella parte inferiore della finestra dell'editor XML. Premi Maiusc+Ctrl+F per formattare l'XML su più righe, per semplificare la modifica. Vicino alla parte superiore, appena all'interno del profilo tag, è una riga con gli attributi id e nome .

Vai a un sito Web come https://www.guidgen.com/ e genera un nuovo GUID per sostituire il valore nell'id attributo. Modifica il nome attributo per aggiungere la parola “filtrata”, o qualche altro indicatore che identificherà il nuovo profilo di connessione.

Di seguito è riportata una vista prima e dopo il profilo di connessione di esempio:

Prima:

Dopo:

Quindi, trova la riga che ha:

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

Se sono già presenti elementi aggiuntivi all'interno del tag, significa che sono già presenti filtri applicati agli schemi nel profilo di connessione. Possono essere lasciati in posizione e nuovi filtri di tabella inseriti per schemi aggiuntivi.

In caso contrario, è possibile modificare le proprietà del profilo di connessione per rimuoverle prima di esportarle nuovamente. La riga sopra deve essere sostituita con la seguente:

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

Torna al file di dati CSV modificato con l'elenco delle tabelle. Seleziona tutto il testo e copialo negli appunti. Torna al file XML e incolla il contenuto degli appunti direttamente tra parentesi nel testo immediatamente sopra. Tieni presente che se il nome dello schema (PROPRIETARIO) è nella proprietà tag, deve essere modificato in modo che corrisponda al nome dello schema da filtrare.

Se sono presenti schemi aggiuntivi con elenchi di tabelle, ripeti i passaggi per aggiungere ulteriori proprietà tag. Se un elenco di tabelle deve essere escluso anziché incluso, inserire la parola chiave NON davanti alla parola IN . L'XML risultante in questo semplice esempio è mostrato di seguito. In un database più complicato, potrebbero esserci migliaia di righe di nomi di tabelle. Al termine di tutte le modifiche, seleziona File> Salva con nome... e salva il file con un nuovo nome.

Importa il profilo di connessione filtrato

Il file XML del profilo di connessione filtrato appena creato può essere importato, creando una nuova copia del profilo esportato, con il filtro applicato. Il pulsante di importazione del profilo di connessione si trova in Esplora origine dati Visualizza barra degli strumenti, appena a sinistra del pulsante di esportazione. Sembra un cestino con una freccia che punta in basso ea destra. Passare al file XML che è stato modificato con l'elenco delle tabelle. Se esiste già un profilo con lo stesso nome, seleziona la casella per sovrascriverlo.

Infine, aprendo il profilo di connessione e passando allo schema che è stato filtrato, vengono visualizzate solo le tabelle presenti nell'elenco: