Video: Sqoop Import and Export data from RDMBS and HDFS 2024
Met invoegmodus worden records geëxporteerd door Sqoop toegevoegd aan het einde van de doeltabel. Sqoop biedt ook een updatemodus die u kunt gebruiken door het opdrachtregelargument -update-key op te geven. Deze actie zorgt ervoor dat Sqoop een SQL UPDATE-instructie genereert om te worden uitgevoerd op de RDBMS of het datawarehouse.
Stel dat u een tabel met drie kolommen wilt bijwerken met gegevens die zijn opgeslagen in het bestand HDFS / gebruiker / mijn-hdfs. Het bestand bevat deze gegevens:
100, 1000, 2000
Het volgende afgekorte Sqoop-exportcommando genereert de bijbehorende SQL UPDATE-instructie op uw databasesysteem:
$ sqoop-export (generieke argumenten) - table target-relationele -table --update-key column1 --export-dir / user / mijn-hdfs-bestand … Generates => UPDATE doel-relationele tabel SET column2 = 1000, column3 = 2000 WHERE column1 = 100;
Met de voorgaande exportopdracht, als de doel-relatietabel op uw RDBMS- of datawarehouse-systeem geen record heeft met de overeenkomende waarde in kolom1, wordt er niets gewijzigd in de doel-relationele tabel.
U kunt echter ook een ander argument opnemen dat uw gegevens invoegt of toevoegt aan de doeltabel als er geen overeenkomende records worden gevonden. Zie het op deze manier: als er UPDATE anders INSERT bestaat.
Deze techniek wordt vaak upsert genoemd in de landstaal van de database of als MERGE in andere implementaties. Het argument voor de upsert-modus is -update-modus, waarbij updateonly de standaard is en allowinert de upsert-modus activeert. Raadpleeg uw databasedocumentatie of neem contact op met uw leverancier om te bepalen of de upsert-modus wordt ondersteund met Apache Sqoop.