Vídeo: Import CSV file to SQL Server Database 2024
Com o modo de inserção, os registros exportados pelo Sqoop são anexados ao final da tabela de destino. O Sqoop também fornece um modo de atualização que você pode usar, fornecendo o argumento de linha de comando -update-key. Essa ação faz Sqoop gerar uma instrução SQL UPDATE para ser executada no RDBMS ou data warehouse.
Suponha que você deseja atualizar uma tabela de três colunas com dados armazenados no arquivo HDFS / user / my-hdfs-file. O arquivo contém esses dados:
100, 1000, 2000
O comando de exportação Sqoop abreviado a seguir gera a instrução SQL UPDATE correspondente no seu sistema de banco de dados:
$ exportar sqoop (Argumentos genéricos) --table segmentação-alvo -table --update-key column1 --export-dir / user / my-hdfs-file … Gera => UPDATE tabela-alvo-relacionais SET column2 = 1000, column3 = 2000 WHERE column1 = 100;
Com o comando de exportação anterior, se a tabela de relações de destino em seu sistema RDBMS ou data warehouse não tiver registro com o valor correspondente na coluna1, nada será alterado na tabela de relacionamentos de destino.
No entanto, você também pode incluir outro argumento que insira ou anexe seus dados à tabela-alvo se nenhum registro correspondente for encontrado. Pense nisso desta maneira: se existir UPDATE else INSERT.
Esta técnica é freqüentemente referida como upsert no banco de dados vernáculo ou como MERGE em outras implementações. O argumento para o modo upsert é -update-mode, onde o updateonly é o padrão e allowinsert ativa o modo upsert. Verifique a documentação do seu banco de dados ou consulte seu vendedor para determinar se o modo upsert é suportado com o Apache Sqoop.