Sumário

Search

  1. Prefácio
  2. Introdução às Transformações
  3. Portas de Transformação
  4. Caches de Transformação
  5. Transformação de Validador de Endereço
  6. Transformação de Agregador
  7. Transformação de Associação
  8. Transformação de Exceção de Registro Inválido
  9. Transformação de Conversor de Maiúsculas/Minúsculas
  10. Transformação de Classificador
  11. Transformação de Comparação
  12. Transformação de Consolidação
  13. Transformação de Mascaramento de Dados
  14. Transformação do Processador de Dados
  15. Transformação de Decisão
  16. Transformação de Exceção de Registro Duplicado
  17. Transformação de Expressão
  18. Transformação de Filtro
  19. Transformação Hierárquica para Relacional
  20. Transformação Java
  21. Referência da API da transformação Java
  22. Expressões Java
  23. Transformação de Associador
  24. Transformação de Gerador de Chaves
  25. Transformação de Rotulador
  26. Transformação de Pesquisa
  27. Caches de Pesquisa
  28. Cache de Pesquisa Dinâmica
  29. Transformação de Macro
  30. Transformação de Correspondência
  31. Transformações de Correspondência na Análise de Campos
  32. Transformações de Correspondência na Análise de Identidade
  33. Transformação Normalizador
  34. Transformação de Mesclagem
  35. Transformação de Analisador
  36. Transformação Python
  37. Transformação de Classificação
  38. Transformação de Leitura
  39. Transformação de Relacional para Hierárquica
  40. Transformação de Consumidor de Serviço da Web REST
  41. Transformação de Roteador
  42. Transformação de Gerador de Sequência
  43. Transformação de Ordenador
  44. Transformação SQL
  45. Transformação de Padronizador
  46. Transformação de União
  47. Transformação de Estratégia de Atualização
  48. Transformação de Consumidor de Serviço da Web
  49. Analisando Mensagens SOAP de Serviços da Web
  50. Gerando Mensagens SOAP de Serviços da Web
  51. Transformação de Média Ponderada
  52. Transformação de Janela
  53. Transformação de Gravação
  54. Apêndice A: Delimitadores de Transformação

Guia de Transformação do Developer

Guia de Transformação do Developer

Transformação de Estratégia de Atualização no mecanismo Spark

Transformação de Estratégia de Atualização no mecanismo Spark

Algumas regras de processamento para o mecanismo Spark são diferentes das regras de processamento do Serviço de Integração de Dados.

Restrições gerais para destinos Hive

Você pode usar a transformação de Estratégia de Atualização nas distribuições do Hadoop que suportam o Hive ACID.
Você também pode usar a transformação de Estratégia de Atualização para gravar os resultados do mapeamento em destinos relacionais compatíveis com JDBC.
A transformação de Estratégia de Atualização não encaminha linhas rejeitadas para a próxima transformação quando o destino é uma tabela Hive ou uma tabela compatível com JDBC.
Se a transformação de Estratégia de Atualização receber várias linhas de atualização para o mesmo valor de chave primária, a transformação selecionará uma linha aleatória para atualizar o destino.
Se várias transformações da Estratégia de Atualização forem gravadas em instâncias diferentes do mesmo destino, os dados de destino poderão ser imprevisíveis.
Se o mapeamento for executado no mecanismo Spark, você poderá escolher a opção Usar Mesclagem do Hive. A opção tem as seguintes restrições:
  • Uma única linha para exclusão ou atualização não pode corresponder a várias linhas no destino. Quando o mapeamento viola essa restrição, ele falha com um erro de tempo de execução.
  • Se você configurar a expressão Estratégia de Atualização para atualizar colunas de particionamento ou de intervalo, o mapeamento ignorará a opção MERGE do Hive e não atualizará as colunas.
A Developer tool e o Serviço de Integração de Dados não fazem a validação em relação a essas restrições. Se a expressão ou o mapeamento violar essas restrições, o mapeamento poderá ser executado, mas os resultados não serão os esperados.
Os destinos do Hive sempre executam as operações Atualizar como Atualização. Os destinos do Hive não suportam Atualizar e Inserir ou Atualizar como Inserção.

Usando dados hierárquicos em expressões de estratégia de atualização

Você pode configurar a expressão para usar os tipos primitivos em um campo de dados complexo.
Por exemplo, você tem uma matriz aninhada de tipos de dados de struct definidos pela seguinte instrução:
addresses array<struct<city:varchar(15), apartment:smallint, pincode:int>>
Você pode usar a coluna "city" na expressão da estratégia de atualização, pois é um tipo primitivo usando a seguinte expressão:
IIF( (addresses[0].city = ’NEW YORK’), DD_INSERT, DD_UPDATE)

Validação de Mapeamento

Os campos de saída da transformação de Estratégia de Atualização devem corresponder exatamente aos campos de entrada de destino.
A validação do mapeamento falha nas seguintes situações.
  • A transformação de Estratégia de Atualização está conectada a mais de um destino.
  • A transformação de Estratégia de Atualização não está localizada imediatamente antes do destino.
  • O destino da transformação de Estratégia de Atualização é uma tabela ACID externa.
  • O destino não contém uma chave primária conectada.
  • A propriedade para ativar o truncamento da tabela de destino em tempo de execução é selecionada.
  • Uma das seguintes estratégias de destino para a tabela de destino em tempo de execução é selecionada:
    • Criar ou substituir a tabela de destino
    • ApplyNewColumns
    • ApplyNewSchema
    • Reprovação
O mapeamento falha nas seguintes situações quando o destino é um destino Hive:
  • A tabela de destino não está ativada para transações.
  • O destino não é ORC com intervalos.

Usando tabelas de destino do Hive

Para usar uma tabela de destino do Hive com uma transformação de Estratégia de Atualização, você deve criar a tabela de destino do Hive com a seguinte cláusula na Linguagem de Definição de Dados do Hive:
TBLPROPERTIES ("transactional"="true")
.
Para usar uma transformação de Estratégia de Atualização com um destino do Hive, verifique se as seguintes propriedades estão configuradas no conjunto de configurações hive-site.xml associado à conexão do Hadoop:
hive.support.concurrency true hive.enforce.bucketing true hive.exec.dynamic.partition.mode nonstrict hive.txn.manager org.apache.hadoop.hive.ql.lockmgr.DbTxnManager hive.compactor.initiator.on true hive.compactor.worker.threads 1