sql >> Base de Datos >  >> RDS >> Database

Filtrado de tablas en IRI Workbench

IRI Workbench proporciona una serie de funciones para trabajar en varias tablas de una base de datos. Incluye asistentes para:bases de datos de perfiles; clasificar columnas; dividir, enmascarar y migrar datos; generar datos de prueba; etc

Las herramientas de IRI Workbench pueden ayudar a seleccionar qué tablas están disponibles para esos asistentes, así como en un diagrama de relación particular o en la exploración de tablas en busca de patrones o colecciones de valores confidenciales. Con demasiadas tablas en una base de datos, puede ser abrumador visualizar, seleccionar y escanear todos los datos y metadatos. Una solución a este problema de sobrecarga de datos es filtrar las tablas que están visibles en un momento determinado.

Filtros

Es más fácil trabajar con conjuntos de tablas más pequeños a la vez. Por lo general, unos cientos de tablas relacionadas a la vez es una cantidad razonable. Afortunadamente, existe un mecanismo dentro de IRI Workbench para limitar la lista de tablas mostradas, utilizando un filtro.

Las tablas que se filtran se excluyen de la lista en el Explorador de fuentes de datos, la vista principal de la estructura de la base de datos. Tampoco aparecen en las listas de selección de los asistentes y se omiten durante los análisis de datos de todo el esquema, lo que acelera la clasificación de los datos difíciles de encontrar. Reducir el número de tablas a un conjunto lógico, con una cantidad manejable de datos, facilita que el usuario se concentre en la tarea que tiene entre manos. Se pueden crear múltiples perfiles de conexión para mostrar solo aquellas tablas relacionadas con una tarea en particular.

El filtrado simple por nombre de tabla es una función integrada del proyecto Eclipse Data Tools Platform (DTP), que se utiliza para acceder a la base de datos en IRI Workbench. Sin embargo, solo se puede usar para especificar nombres de tablas que comiencen o no contengan o terminen con ciertas cadenas de caracteres. Hay ocasiones en las que se necesita un enfoque más sofisticado.

DTP también permite seleccionar una lista de nombres de tablas para su inclusión o exclusión, según el esquema. Esto implica cargar todos los nombres de las tablas en una página del asistente y luego aplicar una selección de marca de verificación a todos los nombres de las tablas que se incluirán o excluirán. Esto funciona bien para un pequeño número de tablas, pero rápidamente se vuelve inmanejable cuando la lista de tablas crece a miles o incluso decenas de miles.

Existe una solución alternativa relativamente fácil que permite la selección de tablas por nombre, en función de una lista externa proporcionada por el usuario. Esta lista podría ser generada por una herramienta externa o como resultado de una consulta SQL. A modo de ejemplo, esta publicación mostrará, paso a paso, cómo se puede lograr esto.

Preparar una lista de tablas

Se pueden utilizar muchos métodos de consulta diferentes para crear la lista de la tabla. Un método útil es filtrar todas las tablas que tienen cero filas de datos. Sin embargo, en este ejemplo en particular, se usará una consulta SQL para extraer una lista de tablas para incluir en el filtro en función de la coincidencia con los nombres de las tablas. La lista de tablas seleccionadas será corta, para que el ejemplo sea más fácil de seguir. La misma técnica funcionará para filtrar tablas en función de una lista mucho más larga.

Las tablas de interés en este ejemplo tienen dos formatos, comienzan con la letra D, seguida de cualquier carácter y luego un guión bajo, o comienzan con la cadena "IRI_". Cualquier patrón puede ir seguido de cualquier número de caracteres adicionales.

El guión bajo se eligió a propósito como un carácter de interés, porque en el lenguaje de consulta estructurado (SQL) el guión bajo representa un único carácter comodín. Por lo tanto, usar un guión bajo en una expresión de filtro DTP o una instrucción SQL no es sencillo.

Este ejemplo se basa en una base de datos de Oracle y mostrará cómo escapar del carácter de subrayado para que pueda usarse literalmente en la cláusula where de una consulta. La consulta que producirá una lista de tablas que coincida con los criterios anteriores:

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

Observe el uso de la barra invertida para escapar del carácter de subrayado siempre que deba interpretarse literalmente. Esta consulta se puede ejecutar desde un SQL Scrapbook archivo dentro de IRI Workbench. Los resultados se mostrarán en Resultados SQL ventana de vista Con el cursor en el editor de archivos SQL Scrapbook, haga clic con el botón derecho en el menú contextual y seleccione Ejecutar todo .

La consulta también deberá ejecutarse por separado para cualquier otro esquema (PROPIETARIO) que necesite una lista de tablas filtrada. Los resultados de las consultas para diferentes esquemas se mantendrán separados y se procesarán de manera similar.

Los resultados se podrán ver en el Resultado 1 pestaña en los Resultados SQL vista. En el menú contextual de esa vista, seleccione Exportar> Resultado actual . En el siguiente cuadro de diálogo, exporte el resultado a la carpeta del proyecto en el espacio de trabajo como un archivo con formato CSV.

Lista de tablas para importar archivo de perfil de conexión

Eclipse DTP proporciona un mecanismo para importar y exportar uno o más perfiles de conexión de base de datos desde o hacia un archivo XML especialmente definido. El procedimiento aquí será primero preparar el archivo CSV para insertarlo en el archivo de importación, luego exportar el perfil de conexión que se filtrará y finalmente modificar el archivo de exportación con la lista de nombres de tablas como condición de filtro.

Abra el archivo de datos CSV en el editor de texto IRI Workbench. El archivo CSV no se formateará exactamente como se necesita. Primero, elimine la primera fila que tiene el encabezado de la columna. A continuación, los nombres de las tablas deben estar enmarcados por comillas simples en lugar de comillas dobles, y una coma debe separar cada nombre.

Presione Ctrl+F para que aparezca Buscar/Reemplazar diálogo. Introduzca los siguientes patrones para F ind: ^”(.*)”$ y R e lugar con: '\1', y seleccione Regular e x presiones opción. Pulse el Reemplazar A ll y luego guarde el archivo. El archivo de lista de tablas ahora está listo para usarse en el archivo de importación.

El siguiente paso es preparar una exportación del perfil de conexión de la base de datos sin aplicar el filtro de nombre de tabla. El botón de exportación del perfil de conexión está en el Explorador de fuentes de datos ver barra de herramientas. Parece una canasta con una flecha apuntando hacia arriba y hacia la derecha. Coloque una marca de verificación junto al perfil de conexión que necesita el filtro y especifique un nombre de archivo con una extensión .xml en el espacio de trabajo del proyecto. También asegúrese de desmarcar Encriptar contenido del archivo antes de guardar el archivo.

Abra el archivo de exportación XML en IRI Workbench. Haga clic en la Fuente pestaña en la parte inferior de la ventana del editor XML. Presione Mayús+Ctrl+F para formatear el XML en varias líneas, para que sea más fácil de editar. Cerca de la parte superior, justo dentro del perfil etiqueta, es una línea con los atributos id y nombre .

Vaya a un sitio web como https://www.guidgen.com/ y genere un nuevo GUID para reemplazar el valor en el id atributo. Edite el nombre atributo para agregar la palabra "filtrado", o algún otro indicador que identificará el nuevo perfil de conexión.

A continuación se muestra una vista del antes y el después del perfil de conexión de ejemplo:

Antes:

Después:

A continuación, busque la línea que tiene:

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

Si ya hay elementos adicionales dentro de la etiqueta, eso significa que ya se han aplicado filtros a los esquemas en el perfil de conexión. Se pueden dejar en su lugar y se pueden insertar nuevos filtros de tabla para esquemas adicionales.

De lo contrario, las propiedades del perfil de conexión se pueden editar para eliminarlas antes de volver a exportar. La línea anterior debe ser reemplazada con lo siguiente:

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

Regrese al archivo de datos CSV editado con la lista de tablas. Seleccione todo el texto y cópielo en el portapapeles. Regrese al archivo XML y pegue el contenido del portapapeles directamente entre paréntesis en el texto inmediatamente superior. Tenga en cuenta que si el nombre del esquema (PROPIETARIO) está en la propiedad debe cambiarse para que coincida con el nombre del esquema que se está filtrando.

Si hay esquemas adicionales con listas de tablas, repita los pasos para agregar propiedades adicionales etiquetas Si se debe excluir una lista de tablas en lugar de incluirla, inserte la palabra clave NOT delante de la palabra IN . El XML resultante en este ejemplo simple se muestra a continuación. En una base de datos más complicada, puede haber miles de líneas de nombres de tablas. Cuando termine toda la edición, seleccione Archivo> Guardar como… y guarde el archivo con un nuevo nombre.

Importar el perfil de conexión filtrado

El archivo XML del perfil de conexión filtrado recién creado se puede importar, creando una nueva copia del perfil exportado, con el filtrado aplicado. El botón de importación del perfil de conexión está en el Explorador de fuentes de datos barra de herramientas de visualización, justo a la izquierda del botón de exportación. Parece una canasta con una flecha apuntando hacia abajo y hacia la derecha. Busque el archivo XML que se modificó con la lista de tablas. Si ya existe un perfil con el mismo nombre, marque la casilla para sobrescribirlo.

Finalmente, al abrir el perfil de conexión y navegar al esquema que se filtró, solo se muestran las tablas que están en la lista: