Transformação de Pesquisa

Aplica-se a:SQL Server SSIS Integration Runtime no Azure Data Factory

A transformação de pesquisa realiza pesquisas ao associar os dados das colunas de entrada às colunas de 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 Lookup usa um gerenciador de conexão OLE DB ou um gerenciador de conexão de Cache para se conectar ao conjunto de dados de referência. Para obter mais informações, consulte Gerenciador de Conexões do OLE DB e Gerenciador de Conexões de Cache

Você pode configurar a transformação de pesquisa das seguintes formas:

  • Selecione 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.

  • Gerar 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.

  • Adicione colunas do conjunto de dados de referência à saída da transformação Lookup.

  • Configurando as opções de cache.

A transformação Lookup dá suporte aos seguintes provedores de banco de dados para o gerenciador de conexões OLE DB:

  • SQL Server

  • Oracle

  • DB2

A transformação Lookup tenta executar uma equi-junção entre os valores de entrada da transformação e os valores no conjunto de dados de referência. (Uma equijunção significa que cada linha de entrada da transformação deve corresponder a pelo menos uma linha do conjunto de dados de referência.) Se uma equijunção não for possível, a transformação Lookup executará 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 Lookup para redirecionar essas linhas para uma saída de não correspondência.

  • 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 oferece suporte a colunas de junção com qualquer tipo de dado, exceto DT_R4, DT_R8, DT_TEXT, DT_NTEXT ou DT_IMAGE. Para obter mais informações, consulte Integration Services Data Types.

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 consultas realizadas pela transformação Lookup diferenciam letras maiúsculas de 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, confira Transformação de Mapa de Caracteres, UPPER (Transact-SQL) e LOWER (Transact-SQL).

A transformação de Pesquisa tem as seguintes entradas e saídas:

  • Entrada.

  • Saída de correspondência. A saída de correspondência processa as linhas na entrada da transformação que correspondem a pelo menos uma entrada no conjunto de dados de referência.

  • Saída sem correspondência. A saída de não correspondência processa as linhas nos dados de entrada que não correspondem a nenhuma entrada no conjunto de dados de referência. Se você configurar a transformação Lookup para tratar as linhas sem correspondências como erros, as linhas serão redirecionadas para a saída de erro. Caso contrário, a transformação redirecionará essas linhas para a saída de não correspondência.

  • 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 Lookup 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:

A seguir, veja as opções de cache:

  • O conjunto de dados de referência é gerado usando uma tabela, visão ou consulta SQL e carregado no cache antes de a transformação Pesquisa ser executada. 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 disponível para a transformação Lookup 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. Você usa o gerenciador de conexões de Cache e, opcionalmente, a transformação Cache para acessar o conjunto de dados. Para obter mais informações, consulte Gerenciador de Conexões de Cache e Transformação de Cache.

  • O conjunto de dados de referência é gerado por meio de uma tabela, visão ou consulta SQL durante a execução da transformação Lookup. 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 frequência do cache.

    Esta opção de cache é compatível com a opção de cache parcial disponível na transformação Lookup do SQL Server 2005 Integration Services (SSIS).

  • O conjunto de dados de referência é gerado por meio de uma tabela, exibição ou consulta SQL durante a execução da transformação Lookup. Nenhum dado é armazenado em cache.

    Esta opção de cache é compatível com a opção de não usar cache disponível na transformação Lookup do SQL Server 2005 Integration Services (SSIS).

Integration Services e SQL Server diferem quanto à forma que comparam cadeias de caracteres. Se a transformação Lookup estiver configurada para carregar o conjunto de dados de referência no cache antes de a transformação Lookup ser executada, o Integration Services realiza a comparação de Lookup 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.

Você pode definir propriedades pelo Designer do SSIS ou programaticamente. Para obter mais detalhes, consulte os tópicos a seguir.

Editor de transformação Pesquisa (Página Geral)

Use a página Geral da caixa de diálogo Editor de Transformação de Pesquisa para selecionar o modo de cache, o tipo de conexão e especificar como lidar com linhas sem entradas correspondentes.

Opções

Observação

A saída da correspondência pode diferir dependendo se o modo de cache completo, o modo sem cache ou o modo de cache parcial for usado:

  • No modo de cache completo, o banco de dados é consultado uma vez durante a fase de pré-execução do fluxo de dados e todo o conjunto de referência é transferido para a memória. Isso significa que nos basearemos na regra de correspondência do mecanismo do SSIS, que diferencia maiúsculas de minúsculas e é sensível a espaços à direita e à precisão e à escala numéricas.
  • No entanto, quando os modos Sem cache ou Cache parcial são usados, não é realizado nenhum armazenamento em cache durante a fase de pré-execução. Isso significa que usaremos a regra de correspondência do banco de dados de origem. Por exemplo, se a origem for um banco de dados do SQL Server e a ordenação da coluna não diferenciar maiúsculas de minúsculas, a regra de correspondência também não deverá diferenciar maiúsculas de minúsculas.

Cache cheio
Gere e carregue o conjunto de dados de referência na memória cache antes que a transformação Lookup seja executada.

Cache parcial
Gere o conjunto de dados de referência durante a execução da transformação Lookup. Carregue as linhas com entradas com correspondência no conjunto de dados de referência e as linhas com entradas sem-correspondência no conjunto de dados no cache.

Sem cache
Gere o conjunto de dados de referência durante a execução da transformação Lookup. Nenhum dado é carregado no cache.

Gerenciador de conexões de cache
Configure a transformação Lookup para usar um gerenciador de conexões de Cache. Esta opção estará disponível somente se a opção Cache cheio for selecionada.

Gerenciador de conexões OLE DB
Configure a transformação Pesquisa para usar um Gerenciador de conexões OLE DB.

Especificar como lidar com linhas sem entradas correspondentes
Selecione uma opção para lidar com as linhas que não correspondem a pelo menos uma entrada no conjunto de dados de referência.

Ao selecionar Redirecionar linhas para uma saída de sem correspondência, as linhas serão redirecionadas para a saída de sem correspondência e não serão tratadas como erros. A opção Erro na página Saída de Erro da caixa de diálogo Editor da Transformação de Pesquisa não está disponível.

Ao selecionar qualquer outra opção na caixa de listagem Especificar como lidar com linhas sem entradas correspondentes, as linhas são tratadas como erros. A opção Erro na página Saída de Erro está disponível.

Recursos externos

Post de blog, Modos de cache de pesquisa em blogs.msdn.com

Editor da Transformação de Consulta (Página de Conexão)

Use a página Conexão da caixa de diálogo Editor de Transformação Pesquisa para selecionar um gerenciador de conexões. Se você selecionar um gerenciador de conexões OLE DB, também poderá selecionar uma consulta, tabela ou exibição para gerar o conjunto de dados de referência.

Opções

As opções a seguir estão disponíveis quando você seleciona Cache completo e Gerenciador de Conexões de Cache na página Geral da caixa de diálogo Editor de Transformação de Pesquisa.

Gerenciador de conexões de cache
Selecione um gerenciador de conexões de cache existente na lista ou crie uma nova conexão clicando em Nova.

Novo
Crie uma nova conexão usando a caixa de diálogo Editor de Gerenciador de Conexões de Cache .

As opções a seguir estarão disponíveis quando você selecionar Cache completo, Cache parcial ou Sem cache e Gerenciador de conexões OLE DB na página Geral da caixa de diálogo Editor de Transformação Pesquisa.

Gerenciador de conexões OLE DB
Selecione um gerenciador de conexões OLE DB existente na lista ou crie uma nova conexão clicando em Nova.

Novo
Crie uma nova conexão usando a caixa de diálogo Configurar Gerenciador de Conexões OLE DB .

Use uma tabela ou visualização
Selecione uma tabela ou exibição existente na lista ou crie uma nova tabela clicando em Nova.

Observação

Se você especificar uma instrução SQL na página Avançado do Editor da Transformação de Pesquisa, essa instrução SQL substitui o nome da tabela selecionado aqui.

Novo
Crie uma nova tabela usando a caixa de diálogo Criar Tabela .

Usar resultados de uma consulta SQL
Escolha esta opção para navegar até uma consulta preexistente, criar uma nova consulta, verificar a sintaxe da consulta e visualizar os resultados da consulta.

Construir consulta
Crie a instrução Transact-SQL a ser executada usando o Construtor de Consultas, uma ferramenta gráfica que é usada para criar consultas navegando pelos dados.

Navegar
Use esta opção para navegar até uma consulta preexistente salva como um arquivo.

Analisar consulta
Verifique a sintaxe da consulta.

Visualização
Visualize os resultados usando a caixa de diálogo Visualizar Resultados da Consulta . Esta opção exibe até 200 linhas.

Recursos externos

Post de blog, Modos de cache de pesquisa em blogs.msdn.com

Editor da Transformação de Pesquisa (Página Colunas)

Use a página Colunas da caixa de diálogo Editor de Transformação de Pesquisa para especificar a junção entre a tabela de origem e a tabela de referência e selecionar colunas de pesquisa na tabela de referência.

Opções

Colunas de Entrada Disponíveis
Exiba a lista das colunas de entrada disponíveis. As colunas de entrada são as colunas do fluxo de dados de uma fonte conectada. As colunas de entrada e de pesquisa devem ter tipos de dados correspondentes.

Use uma operação de arrastar e soltar para mapear as colunas de entrada disponíveis para as colunas de consulta.

Você também pode mapear as colunas de entrada para as colunas de pesquisa usando o teclado, destacando a coluna na tabela Colunas de Entrada Disponíveis , pressionando a tecla Aplicativo e clicando em Editar Mapeamentos.

Colunas de Pesquisa Disponíveis
Exiba a lista de colunas de pesquisa. As colunas de pesquisa são as colunas na tabela de referência que permitem pesquisar os valores que correspondem às colunas de entrada.

Use uma operação de arrastar e soltar para mapear as colunas de consulta disponíveis às colunas de entrada.

Use as caixas de seleção para selecionar as colunas de pesquisa na tabela de referência nas quais serão executadas as operações de pesquisa.

Você também pode mapear as colunas de pesquisa para as colunas de entrada usando o teclado, destacando a coluna na tabela Colunas de Pesquisa Disponíveis , pressionando a tecla Aplicativo e clicando em Editar Mapeamentos.

Coluna de consulta
Exiba as colunas de pesquisa selecionadas. As escolhas são refletidas nas caixas de seleção da tabela Colunas de Pesquisa Disponíveis .

Operação de Pesquisa
Selecione uma operação de pesquisa da lista a ser executada na coluna de pesquisa.

Apelido de saída
Digite um alias para a saída de cada coluna de consulta. O padrão é o nome da coluna de pesquisa; entretanto, é possível selecionar qualquer nome descritivo exclusivo.

Editor da Transformação de Pesquisa (Página Avançada)

Use a página Avançado da caixa de diálogo Editor de Transformação de Pesquisa para configurar o cache parcial e modificar a instrução SQL da transformação de Pesquisa.

Opções

Tamanho de cache (32 bits)
Ajuste o tamanho de cache (em megabytes) para computadores de 32 bits. O valor padrão é 5 megabytes.

Tamanho de cache (64 bits)
Ajuste o tamanho de cache (em megabytes) para computadores de 64 bits. O valor padrão é 5 megabytes.

Ativar cache para linhas sem entradas correspondentes
Armazene em cache as linhas sem entradas correspondentes no conjunto de dados de referência.

Alocação a partir do cache
Especifique o percentual de cache a ser alocado para as linhas com entradas sem-correspondência no conjunto de dados de referência.

Modificar instrução SQL
Modifique a instrução SQL usada para gerar o conjunto de dados de referência.

Observação

A instrução SQL opcional que você especifica nesta página substitui o nome da tabela que você especificou na página Conexão do Editor da Transformação Lookup. .

Definir Parâmetros
Mapeie colunas de entrada para parâmetros usando a caixa de diálogo Definir Parâmetros da Consulta .

Recursos externos

Post de blog, Modos de cache de pesquisa em blogs.msdn.com