Descubra automaticamente relacionamento de dados ocultos com InfoSphere Discovery

O artigo mostrará como é possível descobrir relacionamentos através da análise do conteúdo das tabelas de banco de dados em sistemas heterogêneos.

Tiago Gomes Pessoa de Moraes, Client Technical Specialist, IBM

Sou formado em Ciência da Computação e estou no mercado há 10 anos, sendo 6 anos com soluções de Business Intelligence e Data Warehouse. Desde 2009 me direcionei para atuar com Integração de Dados e na IBM, trabalho com o portfólio de Information Server e Big Data.
Perfil DeveloperWorks:
https://www.ibm.com/developerworks/mydeveloperworks/profiles/html/profileView.do?key=082978a9-26ba-4800-8ace-ae43a8a0e02e&lang=pt_br



11/Out/2013

Pré-Requisitos:

IBM InfoSphere Discovery 4.6.0
IBM DB2 v9r7

Introdução

IBM InfoSphere Discovery é uma solução abrangente que automatiza a descoberta de todo o tipo de relacionamento de dados, do simples ao complexo, e em sistemas heterogêneos. Descobrindo relações entre os elementos de dados é construído uma visão completa de objetos de negócios ou grupos lógicos de objetos, como clientes ou faturas, ou seja, a visão de todas as tabelas que tenham relacionamento com clientes e faturas Ele garante precisão e velocidade de implementação de projetos centrados em informação como, banco de dados , MDM (Master data Management - Gerenciamento de dados mestres), consolidação, arquivamento de dados e privacidade de dados. Ele analisa valores de dados e padrões de múltiplas fontes de dados, tais como bancos de dados relacionais e de qualquer fonte de dados estruturados. Ao fazer isso automaticamente descobre chaves primárias e estrangeiras, integridade referencial e lógica de transformação de fonte cruzada. Também permite que a identificação de todos os casos de informações confidenciais em toda a empresa seja facilmente identificado ou escondida da vista.

InfoSphere Discovery permite exportar as classificações das colunas como termos para ser usado com o InfoSphere Business Glossary , o mesmo é responsável porestabelecer um vocabulário comum de termos de negócio e promover a colaboração em toda a empresa e as equipes de TI

Capacidades de integração para ajudar a entender e administrar os dados, criar e manter a qualidade e transformar e entregar os dados.
As relações de dados descobertos e objetos de negócios podem ser usadas para fins de arquivamento de dados.


Descobrindo relacionamentos ocultos

Passaremos por todo o processo para descobrir relacionamentos entre um banco de dados relacional e um arquivo texto.

  1. Criar conexões ODBC e JDBC para a base de dados ISD_SRC, que é criado durante a instalação do InfoSphere Discovery. Pode fazer uso do Configuration Assistant (Assistente de configuração) que é provido pelo DB2.
  2. Abrir o Discovery Studio e conectar ao servidor, veja figura 1
     

    Clique para ver a imagem maior

    Figura 1 – Tela de conexão

    Cada projeto utiliza uma fonte de dados como área de staging. Este é um banco de dados que é usado pelo InfoSphere Discovery como uma área de trabalho, onde as cópias de tabelas e arquivos texto em um projeto são armazenados e manipulados.

    Para poupar tempo quando vários projetos vão usar a mesma fonte de dados como staging, use Tools > Options > Default Staging Data Source para criar uma fonte de dados como staging padrão. Você também pode alterar a fonte de dados como staging de um projeto, se necessário.

    Ao instalar InfoSphere Discovery é possível instalar também o banco de dados IBM DB2. Neste processo é criado o repositório usado como staging.

  3. Validar as configurações do repositório de staging: Tools > Options > Default Staing Data Source, veja figura 2
     

    Figura 2 – Tela de Tools (Ferramentas)

  4. Clique em Test Connection (Teste de conexão) para concluir a validação das conexões, veja figura 3
     

    Figura 3 – Tela de Options (Opções)

    Você pode criar dois tipos de projetos com IBM InfoSphere Discovery:

    Projeto Source data discovery (Descoberta de fonte de dados)

    Ao usar este projeto, você pode descobrir e analisar as sobreposições de dados entre as tabelas de valor dentro e através de conjuntos de dados. Além disso, você pode criar um esquema unificado e descobrir chaves primárias estrangeiras do esquema unificado.

    Projeto Transformation discovery (Descoberta de transformações)

    Ao usar esse projeto, você pode descobrir as transformações entre um conjunto de dados de origem e um conjunto de dados de destino. Os tipos de relacionamentos que são descobertos incluem joins, transformações, condições de ligação, e regras de dados.

    Este artigo cobrirá o projeto do tipo Source data discovery

  5. Para criar um novo projeto veja figura 4 e 5:
    1. Clicar no icone New Project... (Novo projeto)
    2. Definir o Type como Source Data Discovery
    3. Definir o Nome do Projeto: ArtigoDW
    4. Para Staging Data Source vamos usar o Default (Padrão), deixaremos o selecionado a opção Use Default Staging (Usar staging padrão)
    5. É possível definir segurança para o projeto, mas para o nosso exemplo vamos desmarcar a opção Use Password (Usar senha)
    6. Clicar em Ok
     

    Figura 4 – Tela Home


     

    Figura 5 – Tela Create a New Project (Criar um novo projeto)

    Após a criação do projeto, o mesmo abrirá na interface Data Sets (Conjunto de dados)

    - Pode-se definir até 20 data sets
    - Cada data set pode conter várias conexões com:
    - Bancos de dados
    - Arquivo delimitado
    - Arquivo com tamanho fixo

     

    Clique para ver a imagem maior

    Figura 6 – Tela Data Sets

  6. Vamos definir o primeiro Data Set - "Analise de RH", veja figura
    1. Clicar em Rename (Renomear) – figura 7
    2. Colocar o nome para o Data Set - " Analise de RH" – figura 8
     

    Figura 7 – Tela Data Sets

     

    Figura 8 – Tela Rename Data Set (Renomeie o conjunto de dados)

    Por padrão, a classificação do Banco de Dados está como operacional, mas caso seja um Data Warehouse, basta mudar. Veja figura 9

     

    Figura 9 – Tela Data Sets

  7. Importando objetos a serem analisados
    1. Selecionar Connections & Tables e clicar no icone com o sinal de mais (Import File Formats), veja figura 10
       

      Figura 10 – Tela Data Sets

    2. Preencher os campos do Edit Database Connection (Editar conexão do banco de dados), veja figura 11
      1. Connection Name (Nome da conexão): RH
      2. Database Type (Tipo de banco de dados): IBM DB2
      3. Database Server Name (Nome do servidor de banco de dados): localhost
      4. Database Name (Nome do banco de dados): ISD_SRC
      5. User Name (Nome do usuário): ISD_SOURCE
      6. Password (Senha):
    3. Clicar em Test Connection para validar a conexão
    4. Clicar em Ok para finalizar
       

      Figura 11 – Tela Edit Database Connection

  8. Selecionar a conexão criada e clicar com botão direito e selecionar Import Tables/File Formats, veja figura 12
     

    Figura 12 – Tela Import Objects

  9. Fazer busca pelo nome do esquema "HR_HIST.", veja figura 13
    1. Selecione Search Tables (Busca tabelas)
    2. Digite HR_HIST. no campo Table Name (Nome da tabela)
    3. Clique em Next
       

      Figura 13 – Tela Import Table Wizard

    4. Selecione as tabelas abaixo (Pressione CTRL para selecionar mais de uma tabela):
      1. HQ_ADDRESSES, HQ_DEPARTMENTS, HQ_EMP, HQ_EMP_HIST, HQ_EXPENSE_HIST, HQ_SALARIES, HQ_STORES
      2. Clique em Finish, veja figura 14
         

        Figura 14 – Tela Import Table Wizard

Para melhorar o desempenho, InfoSphere Discovery permite escolher apenas uma amostra dos dados. O padrão do Discovery quando uma definição de tabela é importada, é de processar toda a tabela, indicado pela descrição da tabela virtual <**Full Set**>

  1. Selecionar uma amostra pode ser feito para tabela ou arquivo texto. Vamos realizar o procedimento para a tabela HQ_ADDRESSES
    1. Selecionar a tabela virtual HQ_ADDRESSES
    2. Clicar com o botão direito do mouse
    3. Selecionar a opção Add a new Sample Set (Adicionar um novo conjunto de amostra), veja figura 15
       

      Figura 15 – Tela Add a new Sample Set

    4. Definir o novo nome para este Sample SetCidade_Tacoma
    5. Antes de criar a amostra, caso você queira saber quantas linhas existem na tabela basta clicar em Update Count (Atualiza contador), ou se quiser verificar o conteúdo da tabela clique em Preview Data (Dados de visualização). Veja figura 16
       

      Figura 16 – Tela Sample Set Definition (Definição do conjunto de amostra)

    6. Para limitar a quantidade de registros, vamos selecionar a coluna CITY e arrastar para o campo Where e concluir a restrição ao digitar ='TOCAMA', veja figura 17
       

      Figura 17 – Tela Sample Set Definition

    7. Ao clicar em Update Count podemos observar que de 32, passou para 9 linhas. Agora clique em Preview Data para verificar que apenas os dados desejados foram selecionados.
    8. Clique em Ok
    9. Podemos ver a amostra criada, para utilizá-la durante processo, basta selecioná-la, veja figura 18
       

      Figura 18 – Tela Import Objects

NOTA: Importante salientar que é boa prática restringir o volume de uma tabela contendo um maior número de registros da coluna selecionada para que as análises realizadas pelo InfoSphere Discovery sejam mais precisas.

  1. Depois de completar a importação das definições das tabelas, queremos rodar os próximos passos para começar a analisar os dados.

    1. Para iniciar, clique em Run Next Steps (Executar os próximos passos), veja figura 19

       

      Clique para ver a imagem maior

      Figura 19 – Tela Data Sets

    2. Agora aparece a janela Processing Options(Opções de processamento)

    3. Na parte Steps, o próximo passo estará selecionado por padrão

    4. Na parte Options, você pode verificar todas as opções para todos os passos

    5. Clique em Run para executar o próximo passo, que é Column Analysis (Análise de colunas), veja figura 20

       

      Figura 20 – Tela Processing Options

    6. Neste momento, a tela Column Analysis aparecerá conforme a figura 21
       

      Clique para ver a imagem maior

      Figura 21 – Tela Column Analysis

    7. Neste momento o projeto está bloqueado para qualquer mudança, mas é possível verficar as tarefas em execução ao clicar em Currently 1 Active tasks, conforme apontado na figura 21

    8. Na figura 22, mostra a tela com informações do processamento. Também é possível ver logs, erros e dados para depuração

       

      Clique para ver a imagem maior

      Figura 22 – Tela Activity Viewer (Visualizador de atividades)

  2. Vamos analisar o passo Column Analysis, ele possui duas partes:

    1. Descoberta do tipo de dados: Colunas relacionadas a Metadata
    2. Data Profiling: Colunas relacionadas a Statistics
  3. As análises são realizadas em cada tabela, na figura 23 podemos observar todas as tabelas virtuais

     

    Clique para ver a imagem maior

    Figura 23 – Tela Column Analysis - tables

  4. Em relação as informações que fazem parte de Metadata, InfoSphere Discovery importará as definições através da conexão ODBC e de arquivo texto será atribuido pelo mesmo, sendo que o Native Type virá como Varchar

  5. Vamos analisar a tabela Employee

    1. As colunas EMPLOYEE_ID, POSTAL_CODE e AREA_CODE são do tipo NUMÉRICO, neste caso o InfoSphere Discovery ao analisar o dado contido na coluna, ele apontará como NumberString, veja figura 24
    2. Caso queira alterar, basta clicar no tipo de dado da coluna desejada e selecionar o tipo de dado correto

       

      Clique para ver a imagem maior

      Figura 24 – Tela Native e Data type

  6. Para melhorar a visualização, nós podemos escolher quais colunas vamos analisar

    1. Clique em Column Chooser (Seletor de coluna), veja figura 25

       

      Figura 25 – Tela Column Chooser

    2. Na aba Bond (Vínculo)
    3. Desmarcar a parte de Metadata.
    4. Clique na aba Columns e selecione as colunas: # e Column Name, para facilitar as análises, veja figura 26

       

      Figura 26 – Tela Column Chooser

    5. Para entender cada uma das terminologia, veja o User Guide
  7. Vamos entender como estatísticas podem ajudar nas descobertas:
    1. Cardinalidade é a quantidade de registros distintos
    2. Seletividade é o percentual da Cardinalidade dividido pelo total de registros
    3. Clique duas vezes na coluna Selectivity (Seletividade) para ordernar as colunas que possuem um maior número de linhas distintas, veja figura 27

       

      Clique para ver a imagem maior

      Figura 27 – Tela Selectivity

  8. A coluna STREET_ADDRESS e EMPLOYEE_ID é a que possui a maior seletividade, mas note que a coluna PHONE_NUMBER não tem 100% dos casos distintos. Vamos entender melhor

    1. Vamos clicar em Value Frequency com a linha da coluna PHONE_NUMBER selecionada para entender o que está acontecendo, veja figura 28

       

      Clique para ver a imagem maior

      Figura 28 – Tela Value Frequency

    2. Neste exemplo, o telefone 246-2319 apareceu duas vezes, veja figura 29

       

      Figura 29 – Tela Value Frequencies

    3. Cliquemos na frequência do valor 246-2319 para entender o que está acontecendo
    4. Nota-se que são dois registros diferentes, portanto um ponto de atenção, veja figura 30

       

      Figura 30 – Tela Value Frequencies

    5. A partir desta análise, podemos exportar o resultado através da opção Export Grid Content (Exportar o conteúdo da grade) e assim passar para o departamento responsável, veja figura 31

       

      Figura 31 – Tela Export

    6. Clique em Close para fechar
  9. Nas colunas Min e Max nos ajuda a localizar registros com valores errados, por exemplo: $, &, #, entre outros
  10. A coluna Mode nos mostra o valor que mais vezes aparece, por exemplo: A coluna POSTAL_CODE, o valor 98401 é o que mais aparece.
  11. A coluna Mode% diz o percentual de vezes que o valor aparece, neste caso é 44,44%, veja figura 32

     

    Clique para ver a imagem maior

    Figura 32 – Tela Mode%

  12. Ao clicar em Value Frequency, vemos que 98401 aparece 4 vezes, veja a figura 33
     

    Figura 33 – Tela Value Frequencies - job

    NOTE: Com esta técnica, podemos utilizar o valor 98401 como chave para montar um Sample Set

  13. A coluna Null Count (Contador de nulos) pode ser muito útil se a tabela possui campos que não eram para ter Nulos
  14. Na parte de Notes podemos colocar informações que outros grupos podem utilizar, veja figura 34
     

    Clique para ver a imagem maior

    Figura 34 – Tela Notes

  15. Uma das etapas do Column Analysis é o Column Classification, se trata de uma descrição associada com a coluna, que pode ser classificada por meio de algoritmo ou por valor. A execução inicial classificou a coluna POSTAL_CODE como USZC através do algoritmo, veja a figura 35

     

    Clique para ver a imagem maior

    Figura 35 – Tela Classification

    1. Para visualizar todas as classificações, clique no menu View e depois Column Classification View, veja a figura 36

       

      Figura 36 – Tela de seleção Column Classification View

    2. Podemos notar que além de colunas com códigos postais, o algoritmo classificou a coluna SALARY da tabela HQ_SALARIES como USZC, isso ocorreu porque os dados da coluna bateram em 96,43% com as definições para classificar como USZC, veja a figura 37

       

      Clique para ver a imagem maior

      Figura 37 – Tela Column Classification

  16. Vamos para o próximo passo, que seria PF Keys
    1. Clicar em Run Next Steps, veja figura 38

       

      Clique para ver a imagem maior

      Figura 39 – Tela Run Next Steps

    2. Clicar em Run, veja figura 39

       

      Figura 39 – Tela Processing Options

  17. Na esquerda se encontram as tabelas conectadas e as que não estão. Na direita se encontra o diagrama dos relacionamentos e ao clicar em uma tabela ou relacionamento no quadro a esquerda, é destacado no diagrama. O quadro abaixo do diagrama mostra as estatísticas dos relacionamentos, veja figura 40

     

    Clique para ver a imagem maior

    Figura 40 – Tela PF Keys

  18. No diagrama, é possível identificar linhas sólidas e tracejadas, que significam chaves PF e associação entre as colunas (Column Matches) respectivamente. O InfoSphere Discovery define o tipo de relacionamento baseado nas opções definidas no momento em que executar o passo.
  19. Clique em um linha sólida e perceberá que na parte onde mostra os relacionamento estará na aba Foreign Keys, e ao clicar em uma linha tracejada a aba a ser mostrada será a Column Matches
  20. Column Matches são candidatas a chave PF
  21. Caso queira ver apenas as chaves PF, basta selecionar a opção, veja a figura 41
     

    Clique para ver a imagem maior

    Figura 41 – Tela Display mode

  22. No Display mode volte com a opção View All e selecione o relacionamento HQ_EXPENSE_HIST e HQ_SALARIES, vamos ilustrar como promovemos o relacionamento em PF Keys ao clicar em Promote Column Matches, veja a figura 42

     

    Clique para ver a imagem maior

    Figura 42 – Tela de seleção de PF Keys

  23. Neste exemplo a tabela primária é a EMPLOYEE e o relacionamento é entre as colunas EMPNO. Clique em Ok,veja figura 43

     

    Clique para ver a imagem maior

    Figura 43 – Tela Promote Column Matches

  24. Note que agora a linha está sólida.
  25. Clique em Refresh Statistics conforme a figura 44
     

    Clique para ver a imagem maior

    Figura 44 – Tela Refresh Statistics

  26. Relacionamentos de chaves estrangeiras permite visualizar os valores que batem, os que são orfãos e os duplicados, conforme é mostrado na figura 45. Selecione a opção Show Duplicates

     

    Clique para ver a imagem maior

    Figura 45 – Tela Show Duplicates

  27. Clique em Ok na próxima tela

  28. Nesta figura 46, vemos que alguns Ids estão duplicados.

     

    Clique para ver a imagem maior

    Figura 46 – Tela PF Keys Preview

  29. Clique em Close para fechar a tela
  30. Uma forma mais simples de visualizar os Column Matches é pelo gerenciador. Para habilitá-lo, clique na seta ao lado do Show All PF Keys e selecione a opção Manage Column Matches, veja figura 47

     

    Clique para ver a imagem maior

    Figura 47 – Tela de seleção Manage Column Matches

  31. Quando existir muitas tabelas e colunas, uma maneira fácil de analisar seria por meio de tabelas Pivot. Clique com o botão direito na coluna Table e selecione Group by Box, clique e arraste a coluna para o campo indicado, e assim você verá as tabelas ordenadas. Veja figura 48

     

    Clique para ver a imagem maior

    Figura 48 – Tela Manage Column Matches

  32. Vamos para o último passo a ser coberto neste artigo, Data Objects. Se trata de grupos de tabelas no Data Set que são relacionados por PF Keys. Em muitos casos os objetos de dados descre entidades de negócios (por exemplo, Produto, Cliente, Pedidos e Contas).

    1. Clique em Run Next Steps e depois em Run
    2. Após a execução é possível ver os seguintes objetos de dados a esquerda da tela, veja figura 49

       

      Figura 49 – Tela Data Objects

    3. Uma tabela raiz
    4. Relacionamentos entre as tabelas pode ser RI (Referential Integrity) ou não
    5. Tabelas podem aparecer múltiplas vezes no Data Object com diferentes relacionamentos
    6. Uma tabela pode aparecer em múltiplos Data Objects
    7. Data Objects são construídos baseados nas classificações atribuídas na etapa de PF Keys, veja figura 50

       

      Clique para ver a imagem maior

      Figura 50 – Tela Table Classification

    8. Classificação de relacionamento são indicados pelo número de setas
      1. Uma seta – relacionamento Parent-child
      2. Duas setas – relacionamento de referência
      3. Veja figura 51

         

        Figura 51 – Tela classificação de relacionamento


Conclusão

InfoSphere Discovery oferece inovadoras técnicas de exploração de dados e análise para descobrir automaticamente relacionamentos e mapeamentos entre os dados estruturados na empresa, com base não em metadados, mas em valores reais nos dados em si.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=948039
ArticleTitle=Descubra automaticamente relacionamento de dados ocultos com InfoSphere Discovery
publish-date=10112013