Estratégia de atualização - Configurações de sessão na Informatica.
Atualize as operações de estratégia para cada tabela de destino:
A tabela abaixo ilustra como os dados na tabela de destino são inseridos ou atualizados ou excluídos para várias combinações de "Marcação de linha" e "Configurações da tabela de destino individual".
A atualização como Inserção é especificada.
A atualização como Inserção é especificada.
Atualização de mais A inscrição está especificada.
Atualização de mais A inscrição está especificada.
6 comentários:
Eu não acho que os dados serão excluídos no alvo. Não há banco de dados DB2 em nossa empresa. Eu não posso testar esse cenário.
Considere os últimos 2 casos -
Atualização - Inserção é especificada, Atualização mais A inserção é especificada - Se a linha existir no alvo, ela será atualizada. Caso contrário, ele será inserido.
Atualização - Inserção não especificada, Atualização de mais A inscrição é especificada - Se a linha existir no alvo, ela será atualizada. A linha não será inserida no caso se não existir no alvo.
Estamos assumindo & # 39; Update & # 39; opção marcada na tabela de destino aqui? Caso contrário, isso funcionará? Se a opção de atualização na tabela de destino não estiver marcada, as linhas serão atualizadas?
Eu não consegui onde verificar & # 39; Update & # 39; opção no alvo.
No entanto, existe uma propriedade na aba de propriedades da sessão - & # 39; Trate linhas de origem como & # 39;;.Podemos defini-la como & # 39; Atualização & # 39;
Essas opções estão disponíveis na guia mapeamentos para cada alvo.
BI Quest [Um blog na Informatica]
Compartilhe o que você aprende.
Compreendendo a propriedade Origens do Tratamento e o Destino & # 8220; Inserir, Atualizar & # 8230; & # 8221; propriedades.
A Informatica tem inúmeras opções para executar as operações do DIU (Inserir, Atualizar, Excluir) nas tabelas. Um dos métodos mais comuns é usar a estratégia Update, enquanto o underdog está usando Filter Source Rows configurado e não orientado a dados. Eu vou me concentrar neste último tópico.
Em termos simples, quando você define a propriedade Tratar fonte de linhas, indica que a linha deve ser marcada como Inserir ou Atualizar ou Excluir. Esta propriedade, juntamente com a propriedade de nível alvo de permitir Inserir, Atualizar, Excluir, faz maravilhas mesmo na ausência de Estratégia de Atualização. Isso também leva a um design de mapeamento claro. Não me oponho ao uso da Estratégia de Atualização, mas em algumas situações isso leva a uma leve abertura no mapeamento em que não tenho que examinar o motivo da ação que a Estratégia está realizando, p. IIF (ISNULL (PK) = 1, DD_INSERT, DD_UPDATE).
Vamos encaixar nossos cintos e dar uma volta para entender o uso dessas propriedades.
Assuma um cenário onde eu tenho a seguinte estrutura da tabela no estágio.
Manter as coisas simples, a tabela de destino seria algo assim.
Como você pode ver, o alvo tem o ID de usuário como uma chave de substituição que irei preencher por uma seqüência. Observe também que o nome de usuário é exclusivo.
Agora eu tenho um cenário onde eu tenho que atualizar os registros existentes e inserir os novos como fornecidos na tabela de teste.
Antes de começar com o código de escrita, primeiro entendemos TSA e propriedades de destino é mais detalhado. Treat Source Rows aceita 4 tipos de configurações:
Inserir: - Quando eu definir esta opção, a Informatica marcará todas as linhas lidas da fonte como Inserção. Significa que as linhas só serão inseridas. Atualização: - Quando eu definir esta opção, a Informatica marcará todas as linhas lidas da fonte como Atualização. Isso significa que as linhas ao atingir o alvo precisam ser atualizadas nele. Excluir: - As linhas serão marcadas como & # 8220; para serem excluídas & # 8221; do alvo uma vez que foi lido da Fonte. Data Driven: - Isso indica a Informatica que estamos usando uma estratégia de atualização para indicar o que tem que ser feito com as linhas. Portanto, nenhuma marcação será feita quando as linhas forem lidas da fonte. Infact o que deve ser feito com as linhas que chegam ao alvo será decidido imediatamente antes de qualquer operação do DIU no alvo.
No entanto, a configuração do TSA sozinho não permitirá que você modifique as linhas no alvo. Cada alvo em si deve ser capaz de aceitar ou devo dizer permitir operações de DIU. Então, quando você definiu a propriedade do TSA, você também deve definir a propriedade do nível de destino, que as linhas podem ser inseridas, atualizadas ou excluídas do alvo. Isso pode ser feito das seguintes formas: -
Inserir e excluir são auto-explicativos, no entanto a atualização foi categorizada em 3 seções. Por favor, note que a configuração de qualquer um deles permitirá a atualização em suas tabelas: -
Atualize como Atualização: - Esta é uma propriedade simples que diz que, se a linha chegar ao alvo, ela deve ser atualizada no alvo. Então, se você verificar os logs, a Informatica irá gerar um modelo de Atualização, algo como o & # 8220; UPDATE INFA_TARGET_RECORDS SET EMAIL =? ONDE USERNAME =? & # 8221; Atualize como Inserir: - Isso significa que quando a fila chega ao alvo e é uma linha que precisa ser atualizada, o comportamento da atualização deve ser inserir essa linha no alvo. Nesse caso, a Informatica não gerará nenhum modelo de atualização para o destino, em vez disso, a linha recebida será inserida usando o modelo & # 8220; INSERT INTO INFA_TARGET_RECORDS (USERID, USERNAME, EMAIL) VALUES (?,?,?) & # 8221; Atualizar mais Inserir: - Significa que a linha de entrada sinalizada como atualização deve ser atualizada ou inserida. Em poucas palavras, significa que se qualquer coluna de chave estiver presente na linha de entrada que também exista no alvo, a Informatica atualizará de forma inteligente essa linha no alvo. Caso a coluna da chave de entrada não esteja presente no alvo, a linha será inserida.
PS: - As duas últimas propriedades exigem que você defina a propriedade Inserir do alvo também, porque se isso não for verificado, atualize como Inserir & amp; Atualização de mais A inscrição não funcionará e a sessão falhará afirmando que o destino não permite Inserir. Por quê? Bem, é simples porque essas cláusulas de atualização possuem inserção escondida nelas.
Ok o suficiente de teorias? Fine & # 8230; Deixe a mão ficar suja. Voltando ao nosso cenário, temos as linhas lidas da fonte e queremos que elas sejam inseridas ou atualizadas no alvo dependendo do status das linhas, seja elas presentes no alvo ou não. Meu mapeamento parece algo assim:
Aqui usei uma tabela de pesquisa para buscar a ID do usuário para um nome de usuário que chega do estágio. No roteador seguinte foi configurado: -
A saída do roteador é enviada para as respectivas instâncias do alvo (INFA_TARGET_RECORDS) no caso de existir ou não o usuário. INFA_TARGET_RECORDS_NEW no caso de novos registros e INFA_TARGET_RECORDS_UPD em caso de registros existentes.
Uma vez que este está no lugar, eu tenho que configurar a propriedade Treat Source Rows como Atualização para esta sessão. Além disso, para permitir que a Informatica insira na tabela, eu precisarei: -
Defina a opção Inserir & amp; Atualize como Inserir propriedades da instância INFA_TARGET_RECORDS_NEW. Defina a Atualização como propriedade de atualização para a instância INFA_TARGET_RECORDS_UPD na sessão.
O que realmente aconteceu é que eu tratei todas as linhas da origem para ser sinalizada como atualização. Em segundo lugar, alterei o comportamento da Atualização e configurei como Atualização como Inserir. Devido a esta atualização de propriedade, eu realmente consegui inserir as linhas no alvo. Quando a sessão é executada, irá atualizar as linhas no alvo e inserir as novas linhas no alvo (na verdade, atualizar como inserção).
Experimente e me avise se isso funciona para você. Não estou anexando qualquer demo de corrida porque é melhor se você fizer isso e entender ainda mais claramente o que está acontecendo nos bastidores.
Compartilhar isso:
Pós-navegação.
Deixe uma resposta Cancelar resposta.
Utilizei a transformação da estratégia de atualização com DD_DELETE.
Na sessão, trate as linhas de origem conforme especificado como & # 8216; Data Driven & # 8217 ;.
Para Propriedade de Sessão de Nível de Destino, somente & # 8216; Excluir & # 8217; é verificado e todas as outras operações (Inserir, Atualizar etc.) estão desmarcadas.
Monitor está mostrando registros atingindo até o alvo, mas eles não estão sendo afetados (Eles não estão sendo excluídos). Não consigo descobrir por que é assim. Qualquer ideia?
Sinto muito pela resposta tardia, tenho estado bastante ocupado nos dias de hoje. Agora, de volta:) & # 8230; Ok. Você pode me dar mais detalhes? Pode ser que você não esteja definindo colunas de chave que estão deixando informática para emitir uma declaração de exclusão.
Muito bem Explicado & # 8230; & # 8230; & # 8230; Muito obrigado.
Muito obrigado por publicar isso! Muito apreciado, cheers!
Oi, obrigado pela explicação detalhada. Você também pode lançar alguma luz sobre os prós e contras (preocupações de desempenho) de usar & # 8220; Treat Source Rows As & # 8221; e Opções de carga de destino do DIU vs manter essas configurações como padrão e ter o mapeamento do trabalho de qualquer maneira porque você codificou o mapeamento para fazer inserções no designer?
A única vantagem que posso pensar em usar a propriedade Treat Source Rows é que ele mantém o mapeamento bastante simples. No entanto, usar a Estratégia de Atualização tem sua própria vantagem, como você pode definir um critério para linhas individuais. Além disso, você disse & # 8220; vs manter essa configuração como padrão e ter o mapeamento do trabalho & # 8220 ;, que não consigo entender o que você realmente significa.
Excelente explicação e # 8230; .. obteve uma imagem clara de duas propriedades.
Você poderia explicar o conceito abaixo?
Atualização da transformação da estratégia.
& # 8221; É desejado executar uma sessão em que cada linha processada pela sessão atualiza a tabela de destino com base no valor da chave primária. Suponha que a definição da tabela de destino tenha uma chave primária, e todas as outras propriedades de sessão e mapeamento sejam deixadas para seus padrões. Selecione a declaração abaixo que é verdadeira & # 8221 ;.
Não entendo especialmente esta linha & # 8221; Todas as outras propriedades de sessão e mapeamento são deixadas para seus padrões & # 8220;. Por favor, lança alguma luz sobre isso ..
A única ação que é necessária é definir a propriedade Treat Source Rows As como para Atualizar.
Pelo menos uma transformação da Estratégia de Atualização deve estar presente no mapeamento e a condição de expressão de atualização deve ser escrita para ser verdadeira para todas as linhas que são desejadas para atualizar a tabela de destino.
Pelo menos uma transformação da Estratégia de Atualização deve estar presente no mapeamento e a condição de expressão da atualização deve ser escrita para ser verdadeira para todas as linhas que são desejadas para atualizar a tabela de destino e a propriedade da Origem do Tratamento como Seção deve ser definida como Atualização.
Pelo menos uma transformação da Estratégia de Atualização deve estar presente no mapeamento e a condição de expressão de atualização deve ser escrita para ser verdadeira para todas as linhas que são desejadas para atualizar a tabela de destino e a Origem da Origem do Tratamento Como propriedade da sessão deve ser configurada como Controlada por Dados .
Você ainda precisa da minha resposta? Ou você conseguiu descobrir isso? (Espero que você tenha que ter)
Você viu o desempenho diminuir com o uso de & # 8220; tratar as linhas de origem como atualização & # 8221 ;? Eu tenho um fluxo de trabalho que é executado em segundos com o & # 8220; tratar as linhas de origem como inserir & # 8221 ;. Quando eu altero para & # 8220; tratar linhas de origem como atualização & # 8221; Demora 2 minutos para correr. A coisa realmente estranha é que parece estar ficando pendurado na construção do cache para uma pesquisa antes mesmo de iniciar a sessão de carregamento. Preciso atualizar para que eu possa deixá-lo como # 8220; inserir & # 8221 ;. Além do problema de desempenho, a atualização & # 8220; & # 8221; funciona como esperado.
Quando você configura as linhas de origem como inserção, você está apenas inserindo, eu acho?
As operações de inserção são sempre mais rápidas do que a atualização. A pesquisa é usada para atualizar os dados direta ou indiretamente?
Acho que me enganei com o cache de pesquisa causando o problema. Eu acho que foi o próximo passo depois disso. Provavelmente é apenas que as atualizações levam mais tempo do que as inserções.
Informatica Real Time Scenarios por RC Reddy Boggula.
Transformação ativa e conectada.
A transformação da estratégia de atualização é usada para inserir, atualizar e excluir registros na tabela de destino. Também pode rejeitar os registros sem chegar à tabela de destino. Quando você projeta uma tabela de destino, você precisa decidir quais dados devem ser armazenados no alvo.
A estratégia de atualização funciona somente quando temos uma chave primária na tabela de destino. Se não houver nenhuma chave primária disponível na tabela de destino, é necessário especificar uma chave primária na definição de destino no mapeamento para a transformação da estratégia de atualização para funcionar.
Use a transformação da Estratégia de Atualização o menor possível no mapeamento.
Não use a transformação da estratégia de atualização se quisermos apenas inserir na tabela de destino, em vez disso use mapeamento direto, filtragem direta, etc.
Para atualizar ou excluir linhas da tabela de destino, podemos usar a transformação da Estratégia de Atualização propriamente dita.
A expressão acima irá marcar as linhas de entrada de acordo com o valor de ACTIVITY_FLG.
Verifique "Forward Rejected Rows" se você deseja encaminhar as linhas rejeitadas para a próxima transformação. As linhas rejeitadas de execução para a próxima transformação permitirão que você capture os registros rejeitados nas tabelas / arquivos de Gerenciamento de Erros da Informatica. Dê uma olhada no snapshot abaixo. Conecte as portas de saída à instância de destino.
Especifica como cada linha atualiza tabelas de destino (inserir, atualizar, excluir ou rejeitar) com base em uma expressão.
A transformação da Estratégia de Atualização & # 8220; tags & # 8221; uma linha com o DML apropriado (linguagem de manipulação de dados) para que o gravador PowerCenter se aplique a um alvo relacional. Cada linha pode ser & # 8220; etiquetada & # 8221; com uma das seguintes bandeiras (o rótulo DD significa Data Driven). O SQL apropriado é submetido ao banco de dados de destino:
DD_INSERT: O valor numérico é 0. Usado para sinalizar a linha como Inserção. DD_UPDATE: O valor numérico é 1. Usado para sinalizar a linha como Atualização. DD_DELETE: O valor numérico é 2. Usado para sinalizar a linha como Excluir. DD_REJECT: O valor numérico é 3. Usado para sinalizar a linha como Rejeitar.
A escolha de uma estratégia de atualização requer a configuração das opções corretas dentro de uma sessão e, possivelmente, adicionar as transformações da Estratégia de Atualização a um mapeamento. Esta seção resume o que você precisa para implementar diferentes versões de uma estratégia de atualização.
Quando você configura a sessão, selecione Inserir para as linhas Origem do tratamento como propriedade da sessão. Além disso, certifique-se de selecionar a opção Inserir para todas as instâncias de destino na sessão.
Quando você configura a sessão, selecione Excluir para as linhas Origem do tratamento como propriedade da sessão. Além disso, certifique-se de selecionar a opção Excluir para todas as instâncias de destino na sessão.
Adicione uma transformação da Estratégia de atualização ao mapeamento. Quando você escreve a expressão da estratégia de atualização de transformação, use DECODE ou IIF para especificar os critérios para rejeitar a linha. Quando você configura uma sessão que usa esse mapeamento, selecione Dados Driven para as Linhas Origem Treat como propriedade de sessão.
Adicione uma transformação da Estratégia de atualização ao mapeamento. Quando você escreve a expressão de estratégia de atualização de transformação, use a função DECODE ou IIF para marcar linhas para diferentes operações (inserir, excluir, atualizar ou rejeitar). Quando você configura uma sessão que usa esse mapeamento, selecione Dados Driven para as Linhas Origem Treat como propriedade de sessão. Certifique-se de selecionar a opção Inserir, Excluir ou uma das opções de Atualização para cada instância da tabela de destino.
Atualização da Estratégia Expressão:
Você deve marcar as linhas atribuindo os valores numéricos constantes usando a expressão da estratégia de atualização. A propriedade de expressão da estratégia de atualização está disponível na guia de propriedades da transformação da estratégia de atualização.
Cada linha é testada em relação à condição especificada na expressão da estratégia de atualização e um valor constante é atribuído a ela. Uma expressão de exemplo é mostrada abaixo:
A declaração a seguir marca itens com um ID de 4569 para exclusão e todos os outros para inserção.
Principalmente as funções IIF e DECODE são usadas para testar uma condição na transformação da estratégia de atualização. IIF (row_exists_flag = 4569, DD_DELETE, DD_INSERT) Para as tags de linha DD_DELETE e DD_UPDATE, a definição da tabela em um mapeamento deve ter uma chave identificada, caso contrário a sessão criada a partir desse mapeamento falhará. As linhas etiquetadas com DD_REJECT serão transmitidas para a próxima transformação ou destino e posteriormente colocadas no arquivo incorreto & # 8220; # 8221; se o & # 8220; Forward Rejected Rows & # 8221; O atributo é & # 8220; verificado & # 8221; (padrão). Se o atributo for & # 8220; não verificado & # 8221; então as linhas de rejeição serão ignoradas. Em alguns casos, pode haver um benefício de desempenho para dividir um mapeamento com atualizações e inserções em dois mapeamentos e sessões: um com inserções e outro com atualizações.
O serviço de integração trata qualquer outro valor numérico como inserção.
Definir propriedades de destino de nível de sessão:
Você pode definir propriedades de destino no nível da sessão para especificar como o Serviço de integração insere, atualiza e exclui as linhas.
Observe como o atributo de transformação de linhas rejeitado para a frente é verificado. Esta é a configuração padrão para uma nova transformação da estratégia de atualização. Isso realmente não entrou em jogo no nosso exemplo, mas se nós devêssemos estabelecer alguma lógica condicional dentro da nossa estratégia de atualização, podemos rejeitar algumas linhas e decidir que não queremos que elas passem para nossa próxima transformação. Por exemplo, podemos colocar uma declaração como a abaixo em nossa transformação da estratégia de atualização UPD_UPDATE_MEDIUM:
IIF (TOTAL_SALES & lt; = 10000 AND TOTAL_SALES & gt; 6000, DD_UPDATE, DD_REJECT)
Esta declaração indicaria a transformação para marcar linhas para atualização se TOTAL_SALES fosse menor que o nosso igual a 10000 e superior a 6000. No entanto, se TOTAL_SALES fosse menor ou igual a 6000, então rejeitaríamos a atualização. Esta lógica real pode não ser real algo que faria na vida real, mas acho que você adquire o ponto.
De volta ao nosso atributo de linhas rejeitado para a frente, se deixarmos a caixa de seleção desmarcada, esses registros não passariam para nossa tabela de destino e seriam descartados pelo Serviço de Integração. Além disso, eles escreveriam o arquivo de log da sessão.
Se mantiver o atributo de linhas rejeitado para frente verificado, não mudaria muito. Os registros seriam passados para a tabela de destino, mas ainda assim seriam rejeitados e descartados. No entanto, os registros seriam escritos no arquivo de rejeição da sessão em vez do arquivo de log da sessão.
Estratégia de atualização e transformações de pesquisa:
A transformação da estratégia de atualização é usada principalmente com a transformação de pesquisa. A linha do qualificador de origem é comparada com uma fila da transformação de pesquisa para determinar se já existe ou um novo registro. Com base nessa comparação, a linha é sinalizada para inserir ou atualizar usando a transformação da estratégia de atualização.
Estratégia de atualização e transformações de agregadores:
Se você colocar uma estratégia de atualização antes de uma transformação de agregador, a forma como a transformação do agregador executa os cálculos agregados depende da sinalização da linha. Por exemplo, se você marcar uma linha para excluir e, em seguida, use a linha para calcular a soma, então o serviço de integração subtrai o valor que aparece nesta linha. Se for marcado para inserir, o agregador adiciona seu valor à soma.
Insira e rejeite registros usando a estratégia de atualização.
Cenário: há uma tabela emp e, a partir dessa tabela, insira os dados para direcionar onde sal.
A seguir estão as etapas para alcançá-lo.
conectar-se do SQF para a transformação da Estratégia de Atualização.
1) Você configurou a pasta de arquivo Rejeitar e o nome do arquivo na sessão da Informatica. Você pode ver os registros rejeitados no arquivo rejeitado?
Se a propriedade "Forward Rejected Rows" estiver ativada, os registros de rejeição marcados serão visíveis no arquivo de rejeição.
2) Você configurou a transformação da Estratégia de Atualização no mapeamento, mas não escolheu a opção de dados orientada no nível da Sessão. Você obterá os resultados desejados conforme configurado em Update Strategy Transformation?
Não, as propriedades de Sessão sempre substituem as propriedades de mapeamento. Sem "Data driven" configurado em sessão, você não pode obter os resultados desejados com Update Strategy Transformation.
3) Você pode usar uma transformação de agregador após a Atualização da Estratégia de Transformação?
Sim, mas é sugerido evitar, a menos que seja realmente necessário. Se não for manuseado com cuidado, os registros de exclusão e rejeição marcados são tratados de maneira diferente na Transformação de agregadores levando a resultados precisos.
Como integrar dados.
A Atualização da Estratégia de Transformação na Informatica é uma transformação ativa e conectada. Seu objetivo é controlar como os dados são inseridos, atualizados, excluídos e rejeitados de uma determinada tabela de destino. É vital que o mundo de integração / armazenagem de dados tenha esse controle, pois nos permite armazenar dados de acordo com a necessidade de nossa empresa.
Configurando a Estratégia de Atualização de Transformação.
A transformação da estratégia de atualização pode ser configurada dentro da sessão ou o próprio mapeamento. Vamos dar uma olhada nessas opções uma de cada vez.
Configurando a Sessão de Mapeamento.
Vamos dar uma olhada em um exemplo rápido. Para configurar a estratégia de atualização dentro da sessão, comece no gerenciador de fluxo de trabalho e clique duas vezes na sessão de mapeamento chamada s_UPD_DEMO abaixo.
Transformação de atualização no exemplo de fluxo de trabalho da Informatica.
Depois de clicar duas vezes na sessão, clique na guia Propriedades.
Transformação de atualização na guia de Propriedades da sessão de exemplo da Informatica.
Esta guia nos mostrará um & # 8220; tratar as linhas de origem como & # 8221; Deslize para baixo com quatro opções diferentes. Este atributo nos permite controlar, em um nível de sessão, se as linhas são inseridas, atualizadas ou excluídas das nossas tabelas de destino. Se selecionarmos inserir, nosso mapeamento tentará inserir cada registro direcionado para nossa tabela de destino. Precisamos garantir que nossos dados incluam uma chave primária mapeada na chave primária da nossa tabela de destino & # 8217 ;. Se, por algum motivo, tentamos inserir um registro com uma chave primária que já existe na nossa tabela de destino, esse registro será rejeitado. Estas mesmas regras aplicam-se para atualizar e excluir opções. A diferença é que nossos registros de mapeamento tentarão ser atualizados ou excluídos em nossa tabela de destino em vez de inseridos.
Além de selecionar as linhas de origem "tratar" correta como # 8221; opção de atributo, devemos definir atributos de nível de tabela de destino na guia de mapeamento de nossa sessão. Se, por exemplo, selecionamos a opção de inserção para nossas linhas de origem do tratamento como # 8221; opção, precisamos clicar na nossa tabela de destino e, em seguida, marque a caixa de seleção do atributo de inserção. Certifique-se de desmarcar todas as outras caixas de verificação da operação do banco de dados.
Transformação de atualização na guia de mapeamento de sessão de exemplo da Informatica.
Se quisermos atualizar os registros e selecionar a atualização conforme nossas & # 8220; tratar as linhas de origem como & # 8221; opção de atributo, então temos três opções no nível da tabela de destino para escolher: atualizar como Atualização, Atualizar como Inserção e Atualizar outra Inserção.
Da mesma forma que nossas & # 8220; tratar linhas de origem como & # 8221; Insira o exemplo, se quisermos excluir linhas, devemos selecionar excluir como nossas "linhas de origem" tratar como # 8221; opção de atributo e marque a caixa de seleção de atributo de exclusão para cada tabela de destino na guia de mapeamento.
Nossa última opção de atributo de tabela é a opção truncar tabela de destino. Isso trará todos os dados dentro da tabela de destino antes de executar qualquer registro através do nosso mapeamento.
Nossas linhas de origem final de # 8220; como # 8221; A opção de atributo é conduzida por dados. Esta é a opção padrão quando adicionamos uma transformação de estratégia de atualização em nosso mapeamento. Esta opção informa o nosso mapeamento para usar a lógica dentro da nossa transformação de estratégia de atualização ao determinar se deseja inserir, atualizar, excluir ou rejeitar registros. Este controle mais legal é muito bom ter ao construir um data warehouse e uma prática recomendada ao marcar registros para a mesma tabela de destino com diferentes operações de banco de dados.
Vamos dar uma olhada em como configurar a nossa transformação da estratégia de atualização em um mapeamento Informatica. Abaixo temos um exemplo de mapeamento de M_Sales.
Atualize a transformação no exemplo de mapeamento da Informatica.
Observe que temos uma única fonte de dados do agente de vendas provenientes de um arquivo plano. Nossos dados estão sendo encaminhados através de uma transformação de roteador e, então, para 3 diferentes transformações de estratégia de atualização (UPD_INSERT_HIGH, UPD_UPDATE_MEDIUM e UPD_DELETE_LOW), todos marcando nossos registros para diferentes operações de banco de dados. Finalmente, estamos enviando nossos registros de agente de vendas para a mesma tabela de destino, VENDAS.
Vamos dar uma rápida olhada em nossos critérios de roteador de grupo e # 8230;
Condições de filtro do grupo de transformação do roteador de vendas.
Observe como nossa condição de filtro separa os agentes com altos, médios e baixos valores totais de vendas. Nós somos agentes de roteamento com altas vendas para a transformação da estratégia de atualização UPD_INSERT_HIGH, vendas médias para a transformação da estratégia de atualização UPD_UPDATE_MEDIUM e baixas vendas para UPD_DELETE_LOW transformação da estratégia de atualização. Vamos dar uma olhada em cada uma dessas transformações com mais detalhes.
No mapeamento, clique duas vezes na transformação da estratégia de atualização UPD_INSERT_HIGH e clicando na guia de propriedades, obtemos a visualização abaixo.
Inserir o exemplo de transformação da estratégia de atualização.
Observe como eu programei DD_INSERT no atributo de transformação da expressão da estratégia de atualização. Isso diz a transformação para sinalizar todos os registros passados através dele, para inserir na tabela de destino. Nós também podemos usar valores numéricos aqui, mas eu recomendaria usar as constantes como uma prática recomendada, uma vez que a operação é muito mais intuitiva. Abaixo estão todas as nossas opções para este atributo, juntamente com suas operações correspondentes.
Vamos rapidamente rever a nossa transformação de estratégia de atualização adicional neste mapeamento.
UPD_UPDATE_MEDIUM está configurado para atualizar as linhas que corresponda com a chave primária na tabela de VENDA alvo.
Update Update Strategy Transformation Example.
UPD_DELETE_LOW está configurado para excluir as linhas que corresponda pela chave primária na nossa tabela de VENCIMENTOS alvo.
Excluir o exemplo de transformação da estratégia de atualização.
Observe como o atributo de transformação de linhas rejeitado para a frente é verificado. Esta é a configuração padrão para uma nova transformação da estratégia de atualização. Isso realmente não entrou em jogo no nosso exemplo, mas se nós devêssemos estabelecer alguma lógica condicional dentro da nossa expressão de estratégia de atualização, podemos rejeitar algumas linhas e decidir que não queremos que elas passem para nossa próxima transformação. Por exemplo, podemos colocar uma declaração como a abaixo em nossa transformação da estratégia de atualização UPD_UPDATE_MEDIUM:
IIF (TOTAL_SALES 6000, DD_UPDATE, DD_REJECT)
Esta declaração indicaria a transformação para marcar linhas para atualização se TOTAL_SALES fosse menor que o nosso igual a 10000 e superior a 6000. No entanto, se TOTAL_SALES fosse menor ou igual a 6000, então rejeitaríamos a atualização. Esta lógica real pode não ser real algo que faria na vida real, mas acho que você adquire o ponto.
De volta ao nosso atributo de linhas rejeitado para a frente, se deixarmos a caixa de seleção desmarcada, esses registros não passariam para nossa tabela de destino e seriam descartados pelo Serviço de Integração. Além disso, eles escreveriam o arquivo de log da sessão.
Se mantiver o atributo de linhas rejeitado para frente verificado, não mudaria muito. Os registros seriam passados para a tabela de destino, mas ainda assim seriam rejeitados e descartados. No entanto, os registros seriam escritos no arquivo de rejeição da sessão em vez do arquivo de log da sessão.
Velocity Naming Standard.
Velocity recomenda o formato abaixo ao nomear uma Atualização Estratégia de Transformação na Informatica:
A Estratégia de Atualização de Transformação na Informatica é uma ótima ferramenta para controlar como os dados passados através de um mapeamento são sinalizados para inserir, atualizar, excluir e rejeitar na tabela de banco de dados de destino. Podemos controlar isso em um nível de sessão de mapeamento ou em um nível de mapeamento através da própria transformação. Se você estiver no mundo da business intelligence e data warehouse, você definitivamente quer uma compreensão profunda de como a Atualização da Estratégia de Transformação na Informatica funciona. Feliz integração & # 8230;
Aaron Gendle.
Últimas mensagens de Aaron Gendle (ver todos)
5 razões para sair do seu trabalho hoje - 20 de junho de 2017 O 2017, Top 50.
Comentários 2.
Obrigado pela explicação detalhada sobre a estratégia de atualização. Continue postando.
Комментариев нет:
Отправить комментарий