Database
 sql >> Base de données >  >> RDS >> Database

Filtrage de table dans IRI Workbench

IRI Workbench fournit un certain nombre de fonctionnalités pour travailler sur plusieurs tables dans une base de données. Il comprend des assistants pour : profiler les bases de données ; classer les colonnes ; sous-ensemble, masque et migre les données ; générer des données de test ; etc

Les outils d'IRI Workbench peuvent aider à sélectionner les tables disponibles pour ces assistants, ainsi que dans un diagramme de relations particulier, ou dans l'analyse des tables à la recherche de modèles ou de collections de valeurs sensibles. Avec trop de tables dans une base de données, il peut être fastidieux de visualiser, sélectionner et analyser toutes les données et métadonnées. Une solution à ce problème de surcharge de données consiste à filtrer les tables qui sont visibles à un moment donné.

Filtres

Il est plus facile de travailler avec des ensembles de tables plus petits à la fois. En règle générale, quelques centaines de tables associées à la fois constituent une quantité raisonnable. Heureusement, il existe un mécanisme dans IRI Workbench pour limiter la liste des tables affichées, à l'aide d'un filtre.

Les tables filtrées sont exclues de la liste dans l'explorateur de sources de données, la vue principale de la structure de la base de données. Ils n'apparaissent pas non plus dans les listes de sélection des assistants et sont ignorés lors des analyses de données à l'échelle du schéma, ce qui accélère la classification des données difficiles à trouver. La réduction du nombre de tables à un ensemble logique, avec une quantité gérable de données, permet à l'utilisateur de se concentrer plus facilement sur la tâche à accomplir. Plusieurs profils de connexion peuvent être créés pour afficher uniquement les tables liées à une tâche particulière.

Le filtrage simple par nom de table est une fonctionnalité intégrée du projet Eclipse Data Tools Platform (DTP), qui est utilisé pour l'accès à la base de données dans IRI Workbench. Cependant, il ne peut être utilisé que pour spécifier des noms de table qui commencent ou non par, contiennent ou se terminent par certaines chaînes de caractères. Il y a des moments où une approche plus sophistiquée est nécessaire.

DTP permet également de sélectionner une liste de noms de table pour l'inclusion ou l'exclusion, sur une base par schéma. Cela implique de charger tous les noms de table dans une page de l'assistant, puis d'appliquer la sélection de coches à tous les noms de table à inclure ou à exclure. Cela fonctionne bien pour un petit nombre de tables, mais devient rapidement ingérable lorsque la liste des tables se compte en milliers, voire en dizaines de milliers.

Il existe une solution de contournement relativement simple qui permet la sélection de table par nom, sur la base d'une liste externe fournie par l'utilisateur. Cette liste peut être générée par un outil extérieur ou à la suite d'une requête SQL. À titre d'exemple, cet article montrera, étape par étape, comment cela peut être accompli.

Préparer une liste de tableaux

De nombreuses méthodes de requête différentes peuvent être utilisées pour créer la liste de tables. Une méthode utile consiste à filtrer toutes les tables qui n'ont aucune ligne de données. Cependant, dans cet exemple particulier, une requête SQL sera utilisée pour extraire une liste de tables à inclure dans le filtre en fonction de la correspondance avec les noms de table. La liste des tables sélectionnées sera courte, pour faciliter la lecture de l'exemple. La même technique fonctionnera pour filtrer les tables en fonction d'une liste beaucoup plus longue.

Les tables qui nous intéressent dans cet exemple ont deux formats, soit elles commencent par la lettre D, suivie de n'importe quel caractère, puis d'un trait de soulignement, soit elles commencent par la chaîne « IRI_ ». L'un ou l'autre modèle peut alors être suivi d'un nombre quelconque de caractères supplémentaires.

Le trait de soulignement a été délibérément choisi comme caractère d'intérêt, car dans le langage de requête structuré (SQL), le trait de soulignement représente un seul caractère générique. Par conséquent, l'utilisation d'un trait de soulignement dans une expression de filtre DTP ou une instruction SQL n'est pas simple.

Cet exemple est basé sur une base de données Oracle et montrera comment échapper le caractère de soulignement afin qu'il puisse être utilisé littéralement dans la clause where d'une requête. La requête qui produira une liste de tables correspondant aux critères ci-dessus :

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

Remarquez l'utilisation de la barre oblique inverse pour échapper au caractère de soulignement là où il doit être interprété littéralement. Cette requête peut être exécutée depuis un SQL Scrapbook fichier dans IRI Workbench. Les résultats seront affichés dans les Résultats SQL fenêtre de visualisation. Avec le curseur dans l'éditeur de fichier SQL Scrapbook, faites un clic droit pour le menu contextuel et sélectionnez Tout exécuter .

La requête devra également être exécutée séparément pour tout autre schéma (OWNER) nécessitant une liste de tables filtrée. Les résultats des requêtes pour différents schémas seront conservés séparément et traités de la même manière.

Les résultats seront visibles sur le Résultat 1 onglet dans les Résultats SQL voir. Dans le menu contextuel de cette vue, sélectionnez Exporter> Résultat actuel . Dans la boîte de dialogue suivante, exportez le résultat vers le dossier du projet dans l'espace de travail sous forme de fichier au format CSV.

Liste des tableaux vers le fichier d'importation du profil de connexion

Eclipse DTP fournit un mécanisme permettant d'importer et d'exporter un ou plusieurs profils de connexion à la base de données depuis ou vers un fichier XML spécialement défini. La procédure ici sera de préparer d'abord le fichier CSV pour l'insertion dans le fichier d'import, puis d'exporter le profil de connexion qui sera filtré, et enfin de modifier le fichier d'export avec la liste des noms de table comme condition de filtre.

Ouvrez le fichier de données CSV dans l'éditeur de texte IRI Workbench. Le fichier CSV ne sera pas formaté exactement comme il est nécessaire. Tout d'abord, supprimez la toute première ligne qui a l'en-tête de colonne. Ensuite, les noms de table doivent être encadrés par des guillemets simples au lieu de guillemets doubles, et une virgule doit séparer chaque nom.

Appuyez sur Ctrl+F pour faire apparaître le Rechercher/Remplacer dialogue. Entrez les modèles suivants pour F ind : ^"(.*)"$ et R e lieu avec : ‘\1’, et sélectionnez le Regular e x pressions option. Appuyez sur Remplacer A tout bouton puis enregistrez le fichier. Le fichier de liste de tables est maintenant prêt à être utilisé dans le fichier d'importation.

L'étape suivante consiste à préparer une exportation du profil de connexion à la base de données sans appliquer le filtre de nom de table. Le bouton d'exportation du profil de connexion se trouve sur l'Explorateur de sources de données barre d'outils d'affichage. Il ressemble à un panier avec une flèche pointant vers le haut et vers la droite. Cochez la case en regard du profil de connexion qui nécessite le filtre et spécifiez un nom de fichier avec une extension .xml dans l'espace de travail du projet. Assurez-vous également de décocher la case Crypter le contenu du fichier avant d'enregistrer le fichier.

Ouvrez le fichier d'exportation XML dans IRI Workbench. Cliquez sur la Source onglet en bas de la fenêtre de l'éditeur XML. Appuyez sur Maj+Ctrl+F pour formater le XML sur plusieurs lignes, afin de faciliter sa modification. Près du haut, juste à l'intérieur du profil tag, est une ligne avec les attributs id et nom .

Accédez à un site Web tel que https://www.guidgen.com/ et générez un nouveau GUID pour remplacer la valeur dans id attribut. Modifier le nom attribut pour ajouter le mot "filtré", ou un autre indicateur qui identifiera le nouveau profil de connexion.

Vous trouverez ci-dessous une vue avant et après de l'exemple de profil de connexion :

Avant :

Après :

Ensuite, trouvez la ligne qui a :

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

S'il y a déjà des éléments supplémentaires à l'intérieur de la balise, cela signifie que des filtres sont déjà appliqués aux schémas dans le profil de connexion. Ils peuvent être laissés en place et de nouveaux filtres de table insérés pour des schémas supplémentaires.

Sinon, les propriétés du profil de connexion peuvent être modifiées pour les supprimer avant de réexporter. La ligne ci-dessus doit être remplacée par la suivante :

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

Revenez au fichier de données CSV modifié avec la liste des tables. Sélectionnez tout le texte et copiez-le dans le presse-papiers. Revenez au fichier XML et collez le contenu du presse-papiers directement entre les parenthèses dans le texte immédiatement au-dessus. Notez que si le nom du schéma (OWNER) est dans la propriété balise, elle doit être modifiée pour correspondre au nom du schéma filtré.

S'il existe des schémas supplémentaires avec des listes de tables, répétez les étapes pour ajouter une propriété supplémentaire Mots clés. Si une liste de tableaux doit être exclue plutôt qu'incluse, insérez le mot-clé PAS devant le mot IN . Le XML résultant de cet exemple simple est présenté ci-dessous. Dans une base de données plus compliquée, il peut y avoir des milliers de lignes de noms de table. Lorsque toutes les modifications sont terminées, sélectionnez Fichier> Enregistrer sous… et enregistrez le fichier sous un nouveau nom.

Importer le profil de connexion filtré

Le fichier XML de profil de connexion filtré nouvellement créé peut être importé, créant une nouvelle copie du profil exporté, avec le filtrage appliqué. Le bouton d'importation du profil de connexion se trouve sur l'Explorateur de sources de données barre d'outils d'affichage, juste à gauche du bouton d'exportation. Il ressemble à un panier avec une flèche pointant vers le bas et vers la droite. Naviguez jusqu'au fichier XML qui a été modifié avec la liste des tables. Si un profil portant le même nom existe déjà, cochez la case pour le remplacer.

Enfin, en ouvrant le profil de connexion et en naviguant vers le schéma qui a été filtré, seules les tables figurant dans la liste sont affichées :