top of page
  • Foto do escritorETL PowerCenter

Stored Procedure no PowerCenter​

  • Um stored procedure é uma coleção pré-compilada de Transact-SQL, PL-SQL ou outras instruções procedurais do banco de dados e instruções opcionais de controle de fluxo, semelhantes a um script executável.

  • Procedimentos armazenados são usados para automatizar tarefas que são muito complicadas para instruções SQL padrão.

  • Os procedimentos armazenados são armazenados e executados no banco de dados.

  • O stored procedure deve existir no banco de dados antes de criar uma transformação stored procedure.


Quando usar a transformação de stored procedure

A transformação stored procedure introduzida pela Informatica tem usabilidade multifacetada. Algumas das principais razões estão listadas abaixo:


  1. Cálculos complexos em que os Procedimentos do Banco de Dados têm melhor desempenho do que o uso de várias transformações no Informatica.

  2. Reutilização dos procedimentos Complexos em diferentes ETLs na forma de transformação Stored Procedure.

  3. Divisão de cálculos complexos em vários Procedimentos Armazenados e uso deles como transformação de stored procedure no mesmo ETL. A saída de uma transformação de SP pode atuar como entrada para a outra.

Transformação de stored procedure no PowerCenter
  • A transformação do stored procedure é uma transformação passiva.

  • A transformação do stored procedure pode ser conectada ou desconectada.

  • Procedimentos armazenados tem a capacidade de enviar dados para o stored procedure e receber dados do stored procedure.

Quais são os três tipos de dados que passam entre o Serviço de Integração e o stored procedure?

  1. ​Input/output parameters

  2. ​Return Values

  3. Status codes

Quais são as diferentes opções para executar uma transformação de Stored Procedure?

  1. Normal​ ​(By Default)

  2. Pre-load of the Source

  3. Post-load of the Source

  4. Pre-load of the Target

  5. Post-load of the Target

Diferença entre a Transformação de Stored Procedure Conectada e Desconectada e seu modo de execução

A transformação de stored procedure é uma transformação passiva e, como nossa transformação de Pesquisa, pode ser do tipo conectado ou não conectado.


Transformação Stored Procedure conectada

Quando a transformação de SP existe ao longo da linha de fluxo de dados, ela é chamada de transformação de SP conectada. Dada a seguir é um exemplo típico de uma transformação de SP conectada. O tipo de stored procedure para uma Transformação SP Conectada é sempre definido como "Normal". Isso significa que o procedimento seria chamado para cada linha processada.


Transformação Stored Procedure desconectada:

Esse tipo de transformação de SP não existe ao longo do pipeline do mapeamento e pode ser chamado como e quando necessário. Existem diferentes cenários de uso de uma transformação de SP não conectada. Alguns deles são dados abaixo:


Execução condicional de um stored procedure. Nesse caso, o design ETL seria algo como:

A transformação SP não conectada é chamada na expressão usando a seguinte sintaxe:

:SP.sp_INCREASE_AMT_BY_ID(ID, var_Output,var_Amt)

No exemplo acima, o tipo de stored procedure seria "Normal".


Tipo de stored procedure: Chamada de stored procedure durante diferentes períodos de execução da sessão

A Transformação de stored procedure Desconectada também permite a execução do stored subjacente antes do início da leitura da source ou após a conclusão da leitura do source ou antes do carregamento do target ou após o carregamento do target usando os tipos abaixo fornecidos no Tipo de stored procedure:

  • Source Pre Load

  • Source Post Load

  • Target Pre Load

  • Target Post Load

Nesse caso, não precisamos chamar explicitamente a stored em nenhuma expressão ou outra transformação. O procedimento seria executado de acordo com o tipo especificado.


Como chamar um stored procedure que reside em um esquema diferente?

Nesse caso, podemos usar nossa transformação SP para executar o stored, fazendo uma alteração muito simples. Temos que prefixar a chamada de procedimento com o nome do esquema no atributo call text, desde que o usuário tenha privilégio de execução no objeto.


Como executar vários stored procedure um após o outro em um único ETL?

Se o tipo de stored procedure for qualquer um dos quatro tipos disponíveis diferentes de "Normal", temos que usar a Propriedade de Mapeamento - Plano de stored procedure.















Se o tipo de stored procedure for "Normal", devemos chamar os stored por meio de uma expressão, um por um.



 

Se você gostou, inscreva se, mande sua opinião!

ETL PowerCenter - by Diogo Vidal

bottom of page