top of page
  • Foto do escritorETL PowerCenter

SQL Override no PowerCenter


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 SQL

Existem 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 logic

Em 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 colunas

Perdemos a capacidade de realizar a otimização push down no lado da origem no momento em que realizamos uma substituição

Ao 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!

ETL PowerCenter - by Diogo Vidal

bottom of page