Database
 sql >> Base de Dados >  >> RDS >> Database

Filtragem de Tabelas no IRI Workbench


O IRI Workbench fornece vários recursos para trabalhar em várias tabelas em um banco de dados. Inclui assistentes para: criar bancos de dados; classificar colunas; subconjunto, mascarar e migrar dados; gerar dados de teste; etc.

As ferramentas do IRI Workbench podem ajudar a selecionar quais tabelas estão disponíveis para esses assistentes, bem como em um diagrama de relacionamento específico ou na varredura de tabelas para padrões ou coleções de valores confidenciais. Com muitas tabelas em um banco de dados, pode ser difícil visualizar, selecionar e verificar todos os dados e metadados. Uma solução para esse problema de sobrecarga de dados é filtrar as tabelas visíveis em um determinado momento.

Filtros


É mais fácil trabalhar com conjuntos menores de tabelas de uma só vez. Normalmente, algumas centenas de tabelas relacionadas por vez são uma quantidade razoável. Felizmente, existe um mecanismo dentro do IRI Workbench para limitar a lista de tabelas mostradas, usando um filtro.

As tabelas filtradas são excluídas da lista no Data Source Explorer, a exibição principal da estrutura do banco de dados. Eles também não aparecem nas listas de seleção em assistentes e são ignorados durante varreduras de dados em todo o esquema, acelerando a classificação de dados difíceis de encontrar. Reduzir o número de tabelas para algum conjunto lógico, com uma quantidade de dados gerenciável, torna mais fácil para o usuário se concentrar na tarefa em questão. Vários perfis de conexão podem ser criados para mostrar apenas as tabelas relacionadas a uma tarefa específica.

A filtragem simples por nome de tabela é um recurso integrado do projeto Eclipse Data Tools Platform (DTP), que é usado para acesso ao banco de dados no IRI Workbench. No entanto, ele só pode ser usado para especificar nomes de tabela que começam ou não começam, contêm ou terminam com determinadas cadeias de caracteres. Há momentos em que uma abordagem mais sofisticada é necessária.

O DTP também permite que uma lista de nomes de tabelas seja selecionada para inclusão ou exclusão por esquema. Isso envolve carregar todos os nomes de tabela em uma página do assistente e, em seguida, aplicar a seleção de marca de seleção a todos os nomes de tabela a serem incluídos ou excluídos. Isso funciona bem para um pequeno número de tabelas, mas rapidamente se torna incontrolável quando a lista de tabelas cresce para milhares, ou mesmo dezenas de milhares.

Existe uma solução relativamente fácil que permite a seleção de tabelas por nome, com base em uma lista externa fornecida pelo usuário. Essa lista pode ser gerada por uma ferramenta externa ou como resultado de uma consulta SQL. A título de exemplo, este post mostrará, passo a passo, como isso pode ser feito.

Prepare uma lista de tabelas


Muitos métodos de consulta diferentes podem ser usados ​​para construir a lista de tabelas. Um método útil é filtrar todas as tabelas que têm zero linhas de dados. No entanto, neste exemplo específico, uma consulta SQL será usada para extrair uma lista de tabelas a serem incluídas no filtro com base na correspondência com os nomes das tabelas. A lista de tabelas selecionadas será curta, para facilitar o acompanhamento do exemplo. A mesma técnica funcionará para filtrar tabelas com base em uma lista muito maior.

As tabelas de interesse neste exemplo têm dois formatos, elas começam com a letra D, seguida de qualquer caractere e depois um sublinhado, ou começam com a string “IRI_”. Qualquer padrão pode ser seguido por qualquer número de caracteres adicionais.

O sublinhado foi escolhido propositalmente como um caractere de interesse, pois na linguagem de consulta estruturada (SQL) o sublinhado representa um único caractere curinga. Portanto, usar um sublinhado em uma expressão de filtro DTP ou uma instrução SQL não é simples.

Este exemplo é baseado em um banco de dados Oracle e mostrará como escapar o caractere sublinhado para que ele possa ser usado literalmente na cláusula where de uma consulta. A consulta que produzirá uma lista de tabelas que corresponde aos critérios acima:
SELECT TABLE_NAME
  FROM ALL_TABLES 
  WHERE ( 
    TABLE_NAME LIKE 'D_\_%' ESCAPE '\' OR 
    TABLE_NAME LIKE 'IRI\_%' ESCAPE '\' 
  ) 
  AND OWNER LIKE 'SCOTT'
;

Observe o uso da barra invertida para escapar do caractere de sublinhado onde quer que ele deva ser interpretado literalmente. Esta consulta pode ser executada a partir de um SQL Scrapbook arquivo dentro do IRI Workbench. Os resultados serão exibidos nos Resultados do SQL janela de visualização. Com o cursor no editor de arquivos do SQL Scrapbook, clique com o botão direito do mouse no menu de contexto e selecione Execute All .

A consulta também precisará ser executada separadamente para qualquer outro esquema (OWNER) que precise de uma lista de tabelas filtradas. Os resultados da consulta para esquemas diferentes serão mantidos separados e processados ​​de maneira semelhante.

Os resultados poderão ser visualizados no Resultado 1 guia nos Resultados do SQL visualizar. No menu de contexto dessa visualização, selecione Exportar> Resultado atual . Na próxima caixa de diálogo, exporte o resultado para a pasta do projeto na área de trabalho como um arquivo formatado em CSV.


Lista de tabela para arquivo de importação de perfil de conexão


O Eclipse DTP fornece um mecanismo para importar e exportar um ou mais perfis de conexão de banco de dados de ou para um arquivo XML especialmente definido. O procedimento aqui será primeiro preparar o arquivo CSV para inserção no arquivo de importação, depois exportar o perfil de conexão que será filtrado e, finalmente, modificar o arquivo de exportação com a lista de nomes de tabelas como condição de filtro.

Abra o arquivo de dados CSV no editor de texto IRI Workbench. O arquivo CSV não será formatado exatamente como é necessário. Primeiro, exclua a primeira linha que tem o título da coluna. Em seguida, os nomes das tabelas precisam ser enquadrados por aspas simples em vez de aspas duplas, e uma vírgula deve separar cada nome.

Pressione Ctrl+F para abrir o Localizar/Substituir diálogo. Insira os seguintes padrões para F ind: ^”(.*)”$ e R e local com: '\1', e selecione a opção Regular x pressões opção. Pressione o botão Substituir A ll botão e salve o arquivo. O arquivo de lista de tabelas agora está pronto para uso no arquivo de importação.



A próxima etapa é preparar uma exportação do perfil de conexão do banco de dados sem o filtro de nome de tabela aplicado. O botão de exportação do perfil de conexão está no Data Source Explorer barra de ferramentas de visualização. Parece uma cesta com uma seta apontando para cima e para a direita. Coloque uma marca de seleção ao lado do perfil de conexão que precisa do filtro e especifique um nome de arquivo com uma extensão .xml na área de trabalho do projeto. Certifique-se também de desmarcar Criptografar conteúdo do arquivo caixa antes de salvar o arquivo.



Abra o arquivo de exportação XML no IRI Workbench. Clique na Fonte guia na parte inferior da janela do editor XML. Pressione Shift+Ctrl+F para formatar o XML em várias linhas, para facilitar a edição. Perto do topo, dentro do perfil tag, é uma linha com os atributos id e nome .

Vá para um site como https://www.guidgen.com/ e gere um novo GUID para substituir o valor no id atributo. Edite o nome atributo para adicionar a palavra “filtrado”, ou algum outro indicador que identificará o novo perfil de conexão.

Abaixo está uma visualização antes e depois do perfil de conexão de exemplo:

Antes:


Depois:


Em seguida, encontre a linha que tem:
<org.eclipse.datatools.connectivity.sqm.filterSettings />

Se já houver elementos adicionais dentro da tag, significa que já existem filtros aplicados aos esquemas no perfil de conexão. Eles podem ser deixados no lugar e novos filtros de tabela inseridos para esquemas adicionais.

Caso contrário, as propriedades do perfil de conexão podem ser editadas para removê-las antes de exportar novamente. A linha acima deve ser substituída pela seguinte:
<org.eclipse.datatools.connectivity.sqm.filterSettings>
  <property name="::SCOTT::DatatoolsTableFilterPredicate" 
  value="IN()" />
</org.eclipse.datatools.connectivity.sqm.filterSettings>

Volte para o arquivo de dados CSV editado com a lista de tabelas. Selecione todo o texto e copie-o para a área de transferência. Retorne ao arquivo XML e cole o conteúdo da área de transferência diretamente entre os parênteses no texto imediatamente acima. Observe que, se o nome do esquema (OWNER) estiver na propriedade tag, ele deve ser alterado para corresponder ao nome do esquema que está sendo filtrado.

Se houver esquemas adicionais com listas de tabelas, repita as etapas para adicionar mais propriedade Tag. Se uma lista de tabelas deve ser excluída em vez de incluída, insira a palavra-chave NÃO na frente da palavra IN . O XML resultante neste exemplo simples é mostrado abaixo. Em um banco de dados mais complicado, pode haver milhares de linhas de nomes de tabelas. Quando todas as edições estiverem concluídas, selecione Arquivo> Salvar como… e salve o arquivo com um novo nome.


Importar o perfil de conexão filtrado


O arquivo XML do perfil de conexão filtrado recém-criado pode ser importado, criando uma nova cópia do perfil exportado, com filtragem aplicada. O botão de importação do perfil de conexão está no Data Source Explorer barra de ferramentas de visualização, à esquerda do botão de exportação. Parece uma cesta com uma seta apontando para baixo e para a direita. Navegue até o arquivo XML que foi modificado com a lista de tabelas. Se já existir um perfil com o mesmo nome, marque a caixa para substituí-lo.



Por fim, abrir o perfil de conexão e navegar até o esquema que foi filtrado resulta em apenas as tabelas que estão na lista sendo mostradas: