- Stack: Installierte HDP-2.3.2.0-2950 mit Ambari 2.1
- Die Quelle ist eine MS SQL-Datenbank von rund 1,6 TB und rund 25 Tabellen Das ultimative Ziel ist es, Überprüfen Sie, ob die vorhandenen Abfragen schneller auf dem HDP laufen können
- Es gibt keinen Luxus von Zeit und Verfügbarkeit, die Daten mehrmals zu importieren, daher muss der Import einmal durchgeführt werden und die Hive-Tabellen, Abfragen usw. müssen Versuchen Sie zum Beispiel, zuerst eine normale, partitionierte Tabelle in ORC zu erstellen. Wenn es nicht ausreicht, versuchen Sie Indizes und so weiter. Möglicherweise werden wir auch das Parkett Format auswerten und so weiter
4.As eine Lösung zu 4., habe ich mich entschlossen, zunächst die Tabellen auf HDFS in Avro-Format zum Beispiel zu importieren:Import zu HDFS oder Hive (direkt)
sqoop import --connect 'jdbc:sqlserver://server;database=dbname' --username someuser --password somepassword --as-avrodatafile --num-mappers 8 --table tablename --warehouse-dir /dataload/tohdfs/ --verbose
Jetzt Ich plane, eine Hive-Tabelle zu erstellen, aber ich habe einige Fragen erwähnt here.
Meine Frage ist, dass alle oben genannten Punkte am sichersten sind (in Bezug auf die Zeit und nicht die HDFS etc.) Ansatz - zuerst auf HDFS bringen, Hive-Tabellen erstellen und experimentieren oder direkt in Hive importieren (ich weiß nicht, wenn ich nun diese Tabellen löschen und neu starten wollen, muss ich die Daten)
Ich sehe einen Widerspruch zwischen diesen 2 Behauptungen: * "keine Zeit, Daten mehrmals zu importieren" * vs * "Zieltabellen müssen experimentiert werden ... Tabellen mit verschiedenen Optionen neu erstellen" *. Wenn Sie verschiedene SerDe (ORC, Parquet) mit verschiedenen Partitionierungsschemata ausprobieren möchten, müssen Sie die Hive-Tabellen neu erstellen und sie mehrmals neu laden. –
Also ** was meinst du mit "Daten importieren" - du willst einen Speicherauszug im portablen Format (z. B. CSV) in HDFS erstellen, der oft als Quelle verwendet wird? Verwende 'Sqoop'. Oder möchten Sie, dass eine End-to-End-Lösung von SQL Server liest und Daten direkt in Ihr partitioniertes ORC/Parquet-Format lädt?Verwenden Sie 'Spark', die neueste Version kann parallel Laden wie Sqoop * (aber hüten Sie sich über einige Optionen, die nicht automatisch aus dem Metastore, wie Parkett-Komprimierung - und Partitionsverwaltung ist nicht einfach) * –
Durch 'Daten importieren ', Ich meine' auf den sql-server zugreifen und daten auf hdfs laden ', dh ich kann machen, was ich mir in hive wünsche. Nein. von Zeiten, aber ich kann nicht mehr als einmal auf den SQL-Server zuzugreifen, um die Daten zu holen. Ich habe SQL-Server-Tabellen im Avro-Format importiert und jetzt baue ich Hive ORC- und Hive Avro-Tabellen auf, die einzige Verwirrung, die bleibt, ist, ob Avro-Dateiformat während des Imports Perf darstellen wird. Probleme später, wenn Hive-Abfragen ausgeführt werden –