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 Correspondência
  30. Transformações de Correspondência na Análise de Campos
  31. Transformações de Correspondência na Análise de Identidade
  32. Transformação Normalizador
  33. Transformação de Mesclagem
  34. Transformação de Analisador
  35. Transformação Python
  36. Transformação de Classificação
  37. Transformação de Leitura
  38. Transformação de Relacional para Hierárquica
  39. Transformação de Consumidor de Serviço da Web REST
  40. Transformação de Roteador
  41. Transformação de Gerador de Sequência
  42. Transformação de Ordenador
  43. Transformação SQL
  44. Transformação de Padronizador
  45. Transformação de União
  46. Transformação de Estratégia de Atualização
  47. Transformação de Consumidor de Serviço da Web
  48. Analisando Mensagens SOAP de Serviços da Web
  49. Gerando Mensagens SOAP de Serviços da Web
  50. Transformação de Média Ponderada
  51. Transformação de Janela
  52. Transformação de Gravação
  53. 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

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.
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

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.

Validação de Mapeamento

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 do Hive ou da tabela de destino relacional no tempo de execução é selecionada.
  • Uma das seguintes estratégias de destino para o Hive ou a tabela de destino relacional no 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