Exportações sqoop usando a abordagem de inserção de atualização e atualização

Com o modo de inserção, registos exportados por Sqoop são anexados ao final da tabela do alvo. Sqoop também fornece um modo de atualização que você pode usar, fornecendo a -update-chave argumento de linha de comando. Esta ação faz com que Sqoop para gerar um SQL ATUALIZAR declaração para ser executado no RDBMS ou data warehouse.

Suponha que você deseja atualizar uma tabela de três colunas com os dados armazenados no arquivo HDFS / / My-hdfs-arquivo de usuário. O arquivo contém esses dados:

100, 1000, 2000

O comando a seguir abreviado Sqoop exportação gera o SQL correspondente ATUALIZAR declaração sobre o seu sistema de banco de dados:

$ Sqoop exportação (Argumentos Genéricos) - tabela de destino relacional-table - update-chave column1 - /user/my-hdfs-file...Generates exportação-dir = gt; meta-relacional-UPDATE tabela SETcolumn2 = 1000, coluna 3 = 2000WHERE column1 = 100-

Com o comando de exportação anterior, se o meta-relacional de mesa em seu RDBMS ou armazém de dados do sistema não tem registro com o valor correspondente no column1, nada é alterado no meta-relacional de mesa.

No entanto, você pode também incluir um outro argumento que insere ou adiciona seus dados para -alvo mesa Se nenhum registro correspondente for encontrado. Pense nisso desta maneira: Se existe ATUALIZAÇÃO outra INSERIR.

Esta técnica é muitas vezes referida como upsert na base de dados ou como vernáculo MERGE em outras implementações. O argumento para o modo upsert é -Modo ûupdate , Onde updateonly é o padrão e allowinsert ativa upsert modo. Verifique a documentação do banco de dados ou consultar com seu vender para determinar se o modo upsert é suportado com Apache Sqoop.


Publicações relacionadas