Lösung zum Importieren weiterer Daten aus MySQL in Hive

Lösung zum Importieren weiterer Daten aus MySQL in Hive

Ursprünglicher abgeleiteter Befehl:

bin/sqoop import -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info

Ursachenanalyse: Im MySQL-Feld können Trennzeichen wie „\n“ vorhanden sein. Beim Import in Hive wird standardmäßig „n“ als Zeilenumbruch verwendet, was zu mehr Datensätzen in Hive führt.

Lösung:

Fügen Sie beim Importieren von Daten die Option --hive-drop-import-delims hinzu, um \n, \r und \01 im Feld zu löschen.

Befehl zur endgültigen Ableitung:

bin/sqoop import -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --hive-drop-import-delims --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info

Siehe die offizielle Dokumentation: https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html

Ergänzung: Fallstricke beim Importieren von MySQL-Daten von Sqoop nach Hive

1.sqoop-Import in HDFS

1.1 Durch Ausführen des Sqoop-Jobs wird der letzte Wert automatisch aktualisiert

# inkrementelles Sqoop-Importskript bin/sqoop job --create sqoop_hdfs_test02 --import \
--connect jdbc:mysql://localhost:3306/pactera_test \
--Benutzername root \
--password 123456 \
--Tabelle Student \
--target-dir /Benutzer/sqoop/test002/ \
--Felder-terminated-by "\t" \
--check-column zuletzt geändert \
--incremental zuletzt geändert \
--last-value "2018-12-12 00:03:00" \
--anhängen

Hinweis: Der Parameter --append ist erforderlich, da sonst beim zweiten Ausführen des Jobs ein Fehler wie folgt gemeldet wird:

An diesem Punkt wurde der Sqoop-Job erstellt!

2.Hive erstellt eine Tabelle und liest die von sqoop importierten Daten

externe Tabelle erstellen, falls nicht vorhanden: student_hive (SId int, Sname string, Sage string, Ssex string, last_modified Timestamp) 
Durch Zeilenformat getrennte Felder, abgeschlossen durch „\t“, Standort „hdfs://node01:8020/user/sqoop/test002/“;

Hinweis: Das Zeitformat im Hive ist Zeitstempel. Wenn es auf Datum eingestellt ist, können DB-Daten nicht normal geladen werden.

Der erste vollständige Ladevorgang ist abgeschlossen, die gesamte Route ist vollständig in Ordnung und die Hive-Tabelle kann Daten abfragen.

-----------------------Wichtige Trennlinie-----------------------

* Inkrementelles Laden im Sqoop-Lastmodified-Format speichert den letzten Wert als Systemzeit der Jobausführung. Wenn die Prüfspalte der Testdatenbank kleiner ist als die aktuelle Systemzeit (also der letzte Wert des vorherigen Jobs), werden die Daten nicht geladen.

Wenn SId=6, wird es nicht geladen. Ändern Sie es daher zum Testen der Daten in die heutige Zeit (26.12.2018, 17:05), dann werden die Daten erfolgreich geladen! Joho! !

Zusammenfassen:

Wenn Sie das Format „lastmodified“ für den inkrementellen Sqoop-Import verwenden,

1. Beachten Sie die Verwendung von --append;

2. Der letzte Wert ist die Systemzeit, zu der der Job ausgeführt wird. Stellen Sie beim Testen der Daten sicher, dass die Daten genau und selbsterhöhend sind.

3. Alles hat eine feste Nummer. Überprüfen Sie die Informationen und lokalisieren Sie die Probleme Ihres Systems genau

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • So importieren Sie schnell Daten in MySQL
  • MySQL 4-Methoden zum Importieren von Daten
  • So verwenden Sie Navicat zum Exportieren und Importieren einer MySQL-Datenbank
  • Java verwendet MYSQL LOAD DATA LOCAL INFILE, um große Datenmengen in MySQL zu importieren
  • Detaillierte Erläuterung des MySQL-Befehlszeilenexports und -imports einer Datenbankinstanz
  • Schritte zum Importieren einer MySQL-Datenbank unter Wampserver
  • MySQL-Befehlszeilen-Export und -Import von Datenbanken
  • Verwenden Sie mysqldump, um Daten zu importieren und ein inkrementelles Backup von mysqldump durchzuführen (Verwendung von mysqldump)
  • Mehrere verschiedene Möglichkeiten zum Importieren von Daten in MySQL
  • Ändern Sie php.ini, um das maximale Limit der Änderungsmethode für MySQL-Importdatenbankdateien zu implementieren
  • Schritte zum Importieren von Millionen von Daten in MySQL mit .Net Core

<<:  Über den Unterschied zwischen js typeof und instanceof bei der Beurteilung von Datentypen und deren Entwicklung und Verwendung

>>:  HTML-Tutorial, HTML-Standardstil

Artikel empfehlen

So generieren Sie eine Vue-Benutzeroberfläche per Drag & Drop

Inhaltsverzeichnis Vorwort 1. Technisches Prinzip...

Docker verwendet Dockerfile, um die Node.js-Anwendung zu starten

Schreiben einer Docker-Datei Am Beispiel des von ...

Drei Möglichkeiten zum Parsen von QR-Codes mit Javascript

Inhaltsverzeichnis 1. Verwenden Sie JavaScript, u...

So installieren Sie Django in einer virtuellen Umgebung unter Ubuntu

Führen Sie die folgenden Vorgänge im Ubuntu-Befeh...

So gestalten Sie das Frontend einer Website elegant und attraktiv für Benutzer

Das Temperament einer Web-Frontend-Website ist ein...

Detaillierte Erläuterung der Deep Copy und Shallow Copy im JS-Variablenspeicher

Inhaltsverzeichnis Variabler Typ und Speicherplat...

So verwenden Sie JavaScript und CSS richtig in XHTML-Dokumenten

Auf immer mehr Websites wird HTML4 durch XHTML ers...

Zusammenfassung der MySQL-Datums- und Zeitfunktionen (MySQL 5.X)

1. MySQL erhält die aktuelle Datums- und Uhrzeitf...

Vue implementiert eine kleine Notizblockfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Anwendungshandbuch für chinesische WEB-Schriftarten

Die Verwendung von Schriftarten im Web ist sowohl ...

js realisiert Warenkorb-Add- und Subtraktions- sowie Preisberechnungsfunktionen

In diesem Artikel wird der spezifische Code von j...