Há uma opção para a query fornecida pelas transformações e inserir a SQL Query personalizada usando a SQL Override. As transformações mais comuns que oferecem suporte às overrides são Source Qualifier e Lookup transformations .
Se um nome de tabela ou nome de coluna na query lookup contiver uma palavra reservada, coloque a palavra reservada entre aspas.
Quando você substitui a SQL Query default para uma sessão configurada para pushdown optimization, o Serviço de Integração cria uma exibição para representar a SQL Override. Em seguida, ele executa uma SQL Query e envia a lógica de transformação ao banco de dados.
Source Qualifier - SQL Override
A transformação Source Qualifier fornece a opção SQL Query para override a query default.
Podemos usar um parâmetro ou variável como a SQL Query ou incluir parâmetros e variáveis dentro da query.
A instrução SELECT deve listar os nomes das portas na ordem em que aparecem na transformação.
O número de colunas na instrução SELECT na query deve corresponder ao número de portas na transformação Source Qualifier.
Lookup SQL override
O padrão lookup query contém a instrução SELECT, incluindo todas as portas de lookup no mapa e a cláusula ORDER BY que ordena as colunas na mesma ordem em que aparecem na transformação de lookup.
Você pode substituir a lookup SQL query por relational lookups .
A cláusula padrão ORDER BY contém todas as portas de lookup. Para aumentar o desempenho, você pode suprimir a cláusula ORDER BY padrão e inserir um ORDER BY com menos colunas.
O Serviço de Integração sempre gera uma cláusula ORDER BY, mesmo que você insira um override. Não podemos ver isso quando você gera o SQL default, mas pode ver no log da sessão.
Gere a default query e configure a override. Isso garante que todas as portas de lookup /output sejam incluídas na query. Se você adicionar ou subtrair portas da instrução SELECT, a sessão falhará.
Adicione um source lookup para filtrar as linhas adicionadas ao lookup cache. Isso garante que o Serviço de Integração insira linhas no cache dinâmico e na tabela de destino que correspondam à cláusula WHERE.
Se várias transformações de lookup compartilharem o lookup cache, use a mesma SQL override para cada transformação de Lookup.
A cláusula ORDER BY deve conter as portas de condição na mesma ordem em que aparecem na condição de Lookup.
Se você substituir a cláusula ORDER BY, use a notação de comentário para suprimir a cláusula ORDER BY gerada pela transformação de Lookup.
Se você usar a otimização de empilhamento, não poderá sobrescrever a cláusula ORDER BY nem suprimir a cláusula ORDER BY gerada com a notação de comentário.
Para substituir a Lookup Query para uma Query sem cache, escolha retornar qualquer valor quando o Serviço de Integração encontrar várias correspondências.
Você não pode adicionar ou excluir nenhuma coluna da instrução SQL padrão.
O SQL Override não pode conter parâmetros ou variáveis.
Prós
Podemos executar condições de join complexas e filtrar condições facilmente e o mesmo é enviado diretamente a nível de banco de dados sem que a Informatica tenha que escrever as Querys.Podemos sobrescrever consultas para fazê-las usar índices e obter um melhor plano de execução. Também podemos usar dicas em SQLExistem algumas coisas que podem ser facilmente obtidas em consulta sql usando o recurso sql avançado como Top / Pivot / CTE, etc.Para obter o mesmo em informatica você tem que escrever sql logicEm alguns casos, quando estamos migrando de algum sistema legado para a Informatica, podemos usar diretamente consultas SQL antigas na substituição de SQL, o que economizará muitos esforços
Contras
O número de colunas conectadas na transformação downstream deve corresponder ao tipo de dados e ao comprimento com o nome da coluna substituída, mesmo que não precise necessariamente dos mesmos nomes de colunasPerdemos a capacidade de realizar a otimização push down no lado da origem no momento em que realizamos uma substituiçãoAo escrever consultas complexas na substituição, complicamos o código, o que é contra as regras fundamentais do uso de pacotes ETL.
Se você gostou, inscreva se, mande sua opinião!
Meu e-mail: diogo.vidal@outlook.com | Diogo Vidal
Comments