Transformações de pesquisa difusa no SSIS

Transformações de pesquisa difusa no SSIS

Combination of Lookup, Fuzzy Lookup and Conditional Split in SSIS.
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Este artigo ajuda você a entender o uso da Transformação de Pesquisa Difusa no SQL Server Integration Services (SSIS).

Diz-se que o SSIS (SQL Server Integration Services) é uma ferramenta de código zero que pode ser usada para integrar dados de várias fontes. Se você estiver trabalhando com várias fontes de dados, pode haver casos em que há problemas com a integração de dados.

Vejamos isso por meio de um exemplo. Havia um requisito para integrar dois sistemas para gerar relatórios. Esses dois sistemas são Produção e Gerenciamento de Recursos Humanos. Devido ao fato de que isso foi construído por dois fornecedores diferentes, esses dois não podem ser integrados tecnicamente. O sistema de produção possui detalhes dos 150 trabalhadores e o sistema de gerenciamento de recursos humanos possui todos os detalhes de todos os funcionários. Como a ID do funcionário não pode ser usada para corresponder ao funcionário, o nome do funcionário foi selecionado para corresponder a esses funcionários. No entanto, devido ao fato de serem sistemas gerenciados de maneira diferente, dos 150 trabalhadores, apenas 125 foram capazes de corresponder. Os nomes desses funcionários foram combinados com o nome exato. O restante dos 25 funcionários não pode ser correspondido porque existem pequenos problemas de ortografia e espaço. No entanto, para uma análise bem-sucedida, é importante combinar esses funcionários.

No SSIS, normalmente, usamos a transformação de Pesquisa para a correspondência exata. No entanto, precisamos mais do que uma transformação de pesquisa padrão para corresponder a essas colunas parciais. Para corresponder a esses tipos de cenários de correspondência parcial, há dois controles no conjunto de ferramentas do SSIS. Existem transformações Pesquisa difusa e Agrupamento difuso no SSIS para oferecer suporte a esses tipos de cenários. Neste artigo, vamos ver como podemos usar a Pesquisa difusa no SSIS para resolver o problema acima.

Suponho que você esteja familiarizado com os conceitos básicos do SSIS e também saiba como criar um pacote SSIS. Caso contrário, você pode verificar estes tutoriais aqui na documentação da Microsoft antes de continuar com este artigo.

Olho para cima

Primeiro, vamos ver como podemos usar a transformação de pesquisa padrão. Vamos ver o seguinte como o conjunto de dados de referência de amostra.

Leia Também  Explicando as estatísticas do SQL Server com cartas de jogar

Dados de amostra para a tabela Referene.

Vamos ver o seguinte como dados de entrada.

Amostra de dados de entrada.

Esses dados devem ser combinados com os dados de referência. Vamos criar um projeto SSIS a partir do SQL Server Data Tools (SSDT). A transformação de pesquisa foi configurada como a seguinte captura de tela.

Uso da transformação de pesquisa padrão.

No pacote SSIS acima, o controle de fluxo de dados foi configurado no fluxo de controle do SSIS conforme acima. O arquivo simples foi configurado para uma origem de arquivo simples. Como a Pesquisa precisa do mesmo tipo de dados, os dados do arquivo Simples são convertidos em tipo de dados nvarchar na tarefa Conversão de Dados.

No controle de pesquisa, a configuração é feita para que nenhum registro de correspondência seja definido para um caminho diferente. Os seguintes registros não serão correspondidos.

Registros não correspondentes da transformação de pesquisa padrão.

No entanto, se você analisar atentamente os registros de incompatibilidade com o conjunto de dados de referência, verá que eles não estão correspondendo, apenas porque há poucos erros de digitação e não completamente. Portanto, é melhor podermos combiná-los usando outras técnicas, como a Pesquisa Difusa no SSIS.

Pesquisa difusa no SSIS

Vamos ver como a pesquisa difusa pode ser configurada.

Configuração geral da pesquisa difusa no SSIS

Primeiro, tem que ser uma tabela de referência. Embora você possa usar uma consulta em uma pesquisa, em uma pesquisa difusa no SSIS, ela deve ser uma tabela ou uma exibição.

Um índice é usado para armazenar os valores de tokenização. Discutiremos o conceito de tokenização posteriormente. Se for uma tabela grande, é melhor armazenar um índice em uma tabela. Se a tabela de referência for uma tabela estática, que não está sendo alterada, você pode usar um índice existente. No entanto, como você não tem certeza sobre alterações nos dados, é melhor configurá-lo, conforme mostrado na captura de tela acima.

Se você selecionou Armazenar novo índice opção acima, você precisaria especificar se também deseja que o SQL Server manter índice armazenado. Para fazer isso, ative o CLR usando o código a seguir.

O próximo passo é definir as colunas correspondentes na tela abaixo.

Colunas correspondentes na Pesquisa difusa.

Como essa correspondência é difusa, essas colunas devem ser do tipo varchar ou nvarchar. No entanto, ambas as colunas devem ser do mesmo tipo de dados. Neste exemplo, como FullName é nvarchar, o tipo de dados da coluna de entrada deve ser convertido em nvarchar.

Leia Também  Importar dados de vários arquivos do Excel para tabelas do SQL Server usando um pacote SSIS

A guia avançada oferece outras configurações para a Pesquisa difusa.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Configuração avançada para pesquisa difusa no SSIS.

Como esses atributos não são de correspondência completa, pode haver várias colunas correspondentes à tabela de referência. Você pode definir o número máximo de correspondências a serem exibidas por pesquisa configuração. Por padrão, esse é 1.

O limite de similaridade definiu o quão bem ele está correspondendo. Normalmente, esse limite é definido como um valor entre 0,75 a 0,80. Se esse valor for próximo de 1, o atributo corresponderá de perto. Delimitadores de token definirão o processo de tokenização. A tokenização é uma etapa que divide o texto em palavras ou tokens menores. Seqüências maiores podem ser tokenizadas em palavras, para que a pesquisa difusa seja feita nas palavras de texto tokenizadas.

Agora, vamos executar este pacote SSIS e verificar os resultados, conforme mostrado na captura de tela abaixo.

Execução de pacote com pesquisa difusa.

Se ativarmos o visualizador de dados após a pesquisa difusa, você verá o seguinte visualizador de dados.

Data View após a transformação de pesquisa difusa.

Nesse visualizador de dados, você verá que a coluna Nome da entrada e tabela de referência, nesse caso, é Nome Completo.

Quando a _Similarity é 1, é exatamente uma correspondência. Confiança define a qualidade da partida.

O próximo passo é trabalhar com esses níveis de confiança. Podemos usar uma transformação de divisão condicional para definir algumas regras, conforme mostrado na captura de tela abaixo.

Configuração da transformação de divisão condicional.

Aqui, definimos que é correspondida difusa quando a confiança é maior que 0,5 e se a confiança está entre 0,25 e 0,5, não é certo, mas é provável que seja uma correspondência. Da mesma forma, definimos que, se a Confiança for menor que 0,25, não será uma correspondência. Esses valores podem mudar dependendo do conjunto de dados que você usará. É melhor definir esses valores como configurações de pacotes, para que possam ser alterados quando necessário.

A seguir, está a implementação total da transformação Pesquisa difusa e Divisão condicional no SSIS, conforme mostrado na captura de tela abaixo.

Combinação de transformação de Pesquisa Difusa e Divisão Condicional no SSIS.

Dependendo da condição, você pode escolher operações diferentes. Por exemplo, se for uma correspondência difusa, considere-a como uma correspondência correta. Se não corresponder, será um erro. Provavelmente, Match significa que é necessária intervenção manual.

Leia Também  Votação aberta para as sessões #SQLBits e aqui está minha idéia de Oddball

Como a pesquisa difusa é uma tarefa de incentivo ao desempenho, é melhor usar a transformação apenas para os dados necessários. Portanto, é melhor usarmos essa transformação de pesquisa difusa apenas para os dados, o que não é possível com a transformação de pesquisa padrão, conforme mostrado na captura de tela a seguir.

Combinação de pesquisa, pesquisa difusa e divisão condicional no SSIS.

Como você pode ver na captura de tela acima, uma pesquisa padrão é feita inicialmente no conjunto de dados. Somente os dados não correspondentes são processados ​​através da Pesquisa Difusa é SSIS. Em seguida, os dois fluxos de dados foram combinados usando a tarefa Union ALL.

Transformação de agrupamento difuso

A transformação de Agrupamento difuso é usada para agrupar os dados no mesmo conjunto de dados, e não como uma técnica de correspondência. Por exemplo, se você obtiver uma lista de funcionários em arquivos de texto, dentro dos arquivos de texto, pode haver o mesmo nome duplicado, mas com grafias diferentes. A técnica de agrupamento difuso pode ser usada para encontrar o mesmo nome na mesma lista.

Melhores Práticas

  • Nós usamos o único atributo para comparação. Como essa correspondência é parcial, é melhor usar o máximo possível de atributos. Você obterá as semelhanças para cada coluna

  • Ao decidir com quais colunas corresponder, escolha colunas com vários valores distintos, em vez de valores mais comuns

  • Embora em consultas padrão, NULL não seja igual a outro NULL, no caso de correspondência difusa, é igual. Portanto, é importante evitar valores NULL na entrada e na saída.

Conclusão

A limpeza de dados é uma técnica importante na análise de dados, pois dados não limpos podem resultar em decisões erradas. A Pesquisa difusa no SSIS é um método sofisticado que pode ser usado para limpar dados. No entanto, há problemas de desempenho com a Pesquisa difusa que devem ser usados ​​de acordo.

Dinesh Asanka
Últimas mensagens de Dinesh Asanka (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br