Geralmente, os negócios usam várias ferramentas para gerenciar informações sobre o projeto. O controle de dados é o mapeamento destes vários projetos distintos para uma única entidade comum. O catálogo de amostra define uma estrutura para simplificar a implementação de ETL para controle de dados.
Implementação de controle de dados por meio dos arquivos de configuração de dados XML
Ao definir os mapeamentos em arquivos de configuração de dados XML, você consulta informações do driver ODBC XML. A tabela de sistema System.DIMENSIONMAPPINGS pode ser usada para consultar informações sobre tabelas de mapeamento de dimensões disponíveis. Todas as tabelas de mapeamento de dimensões estão sob o esquema DimensionMappings. Todas as tabelas possuem a mesma estrutura, ou seja, um source_value e um target_value. Elas podem ser usadas para consultar os mapeamentos de valores.
Implementação de controle de dados no processo ETL
Nos artefatos do armazém de dados para a dimensão comum, apenas os artefatos que se comportam como o principal (destino do mapeamento) ou os artefatos que não são mapeados para nenhum dos outros artefatos aparecem no armazém de dados operacional. Outros artefatos que estão associados à dimensão comum estão vinculados diretamente ao artefato de destino do artefato original. Por exemplo, se um RI do Projeto UCM for mapeado para um Insight do projeto ClearQuest, apenas o Insight do projeto ClearQuest aparecerá na tabela PROJECT, e as atividades de UCM pertencentes ao RI do projeto UCM serão diretamente vinculadas ao Insight do projeto ClearQuest no armazém de dados. Para cada uma das dimensões comuns, incluindo PROJECT, RELEASE, ITERATION, PRODUCT, COMPONENT e RESOURCE, as tabelas de mapeamento temporárias com M_ prefixado aos seus nomes serão criadas como tabelas usadas em ETL para armazenar o relacionamento de mapeamento.
Como a lógica é genérica, as construções e tarefas ETL reutilizáveis são criadas na pasta Others/DimensionMapping. É necessário alterar a origem de dados na construção para a origem de dados na qual os mapeamentos foram definidos, alterar o nome da conexão na variável Connection definida na tarefa para o nome da conexão da origem de dados na qual os mapeamentos foram definidos e incluir a tarefa em sua tarefa.
Ao carregar os artefatos de origem, a construção precisa consultar a tabela de mapeamento temporária para esta dimensão comum para verificar se o artefato específico aparece na tabela de mapeamento temporária como a origem de mapeamento. Se a consulta retornar resultados correspondentes, o registro na tabela de mapeamento temporária será atualizado. Se a consulta não retornar resultados correspondentes, o artefato será entregue normalmente no armazém de dados operacional. Para cada dimensão comum, foi criada uma consulta com _Source no nome para procurar dados de origem na tabela de mapeamento temporária.
A dimensão de consulta usada no modelo de transformação para procurar a dimensão comum procura na tabela do armazém de dados operacional e na tabela de mapeamento temporária. Para dados da tabela do armazém de dados operacional, a consulta retorna a surrogate key do registro. Para dados da tabela de mapeamento temporária, a consulta retorna a surrogate key dos artefatos de destino. Para as dimensões comuns, são usadas as consultas geralmente usadas para procurar dados com EXTERNAL_KEY1 e EXTERNAL_KEY2.
O controle de dados envolve várias origens de dados. Portanto, a tarefa ETL deve refletir o fluxo de dados geral. A implementação acima para controle de dados é específica do processo ETL e não tem nenhum impacto em outros componentes. No catálogo de amostra, um projeto TestManager é mapeado para um projeto ClearQuest ALM, e os usuários do TestManager para usuários do ClearQuest ALM com o mesmo nome. Se aparecerem erros ao abrir o arquivo de configuração de dados XML para o TestManager ETL, atualize as tabelas de mapeamento de dimensões para apontar para o arquivo de configuração de dados XML usado para ClearQuest ETL em seu sistema.