Transformação Pesquisa
A transformação Pesquisa executa pesquisas unindo dados em colunas de entrada com colunas em um conjunto de dados de referência. Você usa a pesquisa para acessar informações adicionais em uma tabela relacionada que tem como base valores de colunas comuns.
O conjunto de dados de referência pode ser um arquivo de cache, uma tabela ou uma exibição existente, uma nova tabela ou o resultado de uma consulta SQL. A transformação Pesquisa usa um gerenciador de conexões OLE DB ou um gerenciador de conexões de cache para se conectar ao conjunto de dados de referência. Para obter mais informações, consulte Gerenciador de conexões OLE DB e Gerenciador de conexões de cache.
Você pode configurar a transformação Pesquisa das seguintes formas:
Selecionando o gerenciador de conexões que deseja usar. Se você quiser se conectar a um banco de dados, selecione um gerenciador de conexões OLE DB. Se desejar se conectar a um arquivo de cache, selecione um gerenciador de conexões de cache.
Especificando a tabela ou exibição que contém o conjunto de dados de referência.
Gerando um conjunto de dados de referência com a especificação de uma instrução SQL.
Especificando junções entre a entrada e o conjunto de dados de referência.
Adicionando colunas do conjunto de dados de referência à saída da transformação Pesquisa.
Configurando as opções de cache.
A transformação Pesquisa dá suporte aos seguintes provedores de banco de dados para o gerenciador de conexões OLE DB:
SQL Server
Oracle
DB2
A transformação Pesquisa tenta executar uma junção por igualdade entre valores na entrada da transformação e valores no conjunto de dados de referência. (Em uma junção por igualdade, cada linha na entrada da transformação deve corresponder a pelo menos uma linha do conjunto de dados de referência.) Se uma junção por igualdade não for possível, a transformação Pesquisa realizará uma das seguintes ações:
Se não houver nenhuma entrada correspondente no conjunto de dados de referência, nenhuma junção ocorrerá. Por padrão, a transformação Pesquisa trata linhas sem entradas correspondentes como erros. No entanto, você pode configurar a transformação Pesquisa para redirecionar essas linhas para uma saída sem correspondência. Para obter mais informações, consulte Editor da Transformação Pesquisa (página Geral) e Editor da Transformação Pesquisa (página Saída de Erro).
Se houver várias correspondências na tabela de referência, a transformação Pesquisa retornará apenas a primeira delas, retornada pela consulta de pesquisa. Se várias correspondências forem encontradas, a transformação Pesquisa gerará um erro ou aviso somente quando a transformação tiver sido configurada para carregar todos os conjuntos de dados de referência no cache. Neste caso, a transformação Pesquisa gera um aviso quando a transformação detecta várias correspondências à medida que ela preenche o cache.
A junção pode ser composta, o que significa que você pode unir várias colunas na entrada da transformação com colunas no conjunto de dados de referência. A transformação dá suporte às colunas de junção com qualquer tipo de dados, com exceção de DT_R4, DT_R8, DT_TEXT, DT_NTEXT ou DT_IMAGE. Para obter mais informações, consulte Tipos de dados do Integration Services.
Normalmente, valores do conjunto de dados de referência são adicionados à saída da transformação. Por exemplo, a transformação Pesquisa pode extrair um nome de produto de uma tabela usando um valor de uma coluna de entrada e, em seguida, adicionar esse nome à saída da transformação. Os valores da tabela de referência podem ser substituídos por valores de coluna ou podem ser adicionados a novas colunas.
As pesquisas executadas pela transformação Pesquisa diferenciam maiúsculas e minúsculas. Para evitar falhas na pesquisa, causadas por diferenças entre maiúsculas e minúsculas nos dados, use primeiro a transformação Mapa de Caracteres para converter os dados em letras maiúsculas ou minúsculas. Depois, inclua as funções UPPER ou LOWER na instrução SQL que gera a tabela de referência. Para obter mais informações, consulte Transformação Mapas de Caracteres, UPPER (Transact-SQL) e LOWER (Transact-SQL).
A transformação Pesquisa tem as seguintes entradas e saídas:
Entrada.
Saída de correspondência. A saída de correspondência controla as linhas na saída de transformação que correspondem a pelo menos uma entrada no conjunto de dados de referência.
Saída sem correspondência. A saída sem correspondência controla as linhas na entrada que não correspondem a pelo menos uma entrada no conjunto de dados de referência. Se você configurar a transformação Pesquisa para tratar as linhas sem entradas correspondentes como erros, as linhas serão redirecionadas à saída de erro. Caso contrário, a transformação redirecionará essas linhas para a saída sem correspondência.
Observação No SQL Server 2005 Integration Services (SSIS), a transformação Pesquisa tinha apenas uma saída. Para obter mais informações sobre como executar uma transformação Pesquisa que foi criada no SQL Server 2005, consulte Atualizando transformações Pesquisa.
Saída de erro.
Armazenando o conjunto de dados de referência em cache
Um cache na memória armazena o conjunto de dados de referência e uma tabela de hash que indexa os dados. O cache permanece na memória até que a execução do pacote seja concluída. Você pode persistir o cache para um arquivo de cache (.caw).
Quando você persiste o cache para um arquivo, o sistema carrega esse cache mais rapidamente. Isso melhora o desempenho da transformação Pesquisa e do pacote. Lembre-se de que, quando você usa um arquivo de cache, está trabalhando com dados que não são tão atuais quanto os dados do banco de dados.
A seguir, veja alguns benefícios adicionais da persistência de cache para um arquivo:
Compartilhe o arquivo de cache entre vários pacotes. Para obter mais informações, consulte Como implementar uma transformação Pesquisa em modo cache cheio usando o gerenciador de conexões de cache.
Implante o arquivo de cache com um pacote. Você pode usar os dados em vários computadores. Para obter mais informações, consulte Como criar e implantar um cache para a Transformação Pesquisa.
Use a fonte de arquivos brutos para ler dados do arquivo de cache. Você pode usar outros componentes de fluxo de dados para transformar ou mover os dados. Para obter mais informações, consulte Origem do arquivo bruto.
Observação O gerenciador de conexões de cache não dá suporte para arquivos de cache criados ou modificados usando o destino dos arquivos brutos.
Execute operações e defina atributos no arquivo de cache usando a tarefa Sistema de Arquivos. Para obter mais informações, consulte Tarefa Sistema de Arquivos.
A seguir, veja as opções de cache:
O conjunto de dados de referência é gerado usando uma tabela, exibição ou consulta SQL e carregando no cache, antes da execução da transformação Pesquisa. Use o gerenciador de conexões OLE DB para acessar o conjunto de dados.
Esta opção de cache é compatível com a opção de cache completo que está disponível para a transformação Pesquisa no SQL Server 2005 Integration Services (SSIS).
O conjunto de dados de referência é gerado a partir de uma fonte de dados conectada ao fluxo de dados ou de um arquivo de cache e é carregado no cache antes da execução da transformação Pesquisa. Use o gerenciador de conexões de cache e, opcionalmente, a transformação Pesquisa para acessar o conjunto de dados. Para obter mais informações, consulte Gerenciador de conexões de cache e Transformação Cache.
O conjunto de dados de referência é gerado usando uma tabela, exibição ou consulta SQL durante a execução da transformação Pesquisa. As linhas com e sem entradas correspondentes no conjunto de dados de referência são armazenadas em cache.
Quando o tamanho da memória do cache é excedido, a transformação Pesquisa remove automaticamente as linhas usadas com menos freqüência do cache.
Esta opção de cache é compatível com a opção de cache parcial que está disponível para a transformação Pesquisa no SQL Server 2005 Integration Services (SSIS).
O conjunto de dados de referência é gerado usando uma tabela, exibição ou consulta SQL durante a execução da transformação Pesquisa. Nenhum dado é armazenado em cache.
Esta opção de cache é compatível com a opção sem cache que está disponível para a transformação Pesquisa no SQL Server 2005 Integration Services (SSIS).
O Integration Services e o SQL Server diferem quanto à forma que comparam cadeias de caracteres. Se a transformação Pesquisa é configurada para carregar o conjunto de dados de referência no cache antes da execução da transformação Pesquisa, o Integration Services faz a comparação de pesquisa no cache. Por outro lado, a operação de pesquisa usa uma instrução SQL parametrizada e o SQL Server faz a comparação de pesquisa. Isso significa que a transformação Pesquisa pode retornar um número diferente de correspondências a partir da mesma tabela de consulta, dependendo do tipo de cache.
Solucionando problemas na transformação Pesquisa
Uma transformação Pesquisa configurada para não carregar nenhum conjunto de dados de referência no cache falhará se uma operação de pesquisa corresponder a colunas que contêm valores nulos. Para evitar essa falha, atualize manualmente a instrução SQL para incluir uma condição OR ISNULL(ColumnName). Se uma transformação Pesquisa tiver sido configurada para carregar o conjunto de dados de referência no cache antes da execução da transformação Pesquisa, a operação de pesquisa será bem-sucedida.
Observação |
---|
Se possível, evite usar colunas que possam conter valores nulos em operações de pesquisa. Se uma coluna contiver valores nulos, configure a transformação Pesquisa para usar uma saída de erro que direcione as linhas que não têm linhas correspondentes na tabela de referência para uma saída de transformação separada. Alternativamente, considere a possibilidade de usar o cache completo, que suporta operações de pesquisa em valores nulos. |
Você pode registrar as chamadas que a transformação Pesquisa faz para provedores de dados externos. É possível usar esse recurso de registro para solucionar o problema de preenchimento do cache de fontes de dados externas que a transformação Pesquisa executa. Para registrar as chamadas feitas pela transformação Pesquisa aos provedores de dados externos, habilite o registro de pacotes e selecione o evento Diagnóstico no nível de pacote. Para obter mais informações, consulte Solucionando problemas de execução do pacote.
Configurando a transformação Pesquisa
Você pode definir propriedades por meio do Designer SSIS ou programaticamente.
Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor de Transformação Pesquisa, clique em um dos seguintes tópicos:
Para obter mais informações sobre propriedades adicionais que podem ser definidas, clique em um dos seguintes tópicos:
Para obter mais informações sobre como definir propriedades, clique em um dos seguintes tópicos:
Recursos externos
Vídeo, Como implementar a transformação Pesquisa no modo de Cache Cheio, em msdn.microsoft.com
Entrada de blog, Best Practices for Using the Lookup Transformation Cache Modes (em inglês), em blogs.msdn.com
Entrada de blog, Lookup Pattern: Case Insensitive (em inglês), em blogs.msdn.com
|