2016-07-19 16 views
0

Ich habe diese Frage beim Entwerfen des Speicherabschnitts für eine Hadoop-basierte Plattform erhalten. Wenn wir Data Scientists Zugriff auf die Tabellen haben wollen, die bereits in einer relationalen Datenbank gespeichert sind (zB SQL-Server einer Azure Virtual Machine), dann ergeben sich besondere Vorteile, wenn wir die Tabellen vom SQL-Server importieren zu HDFS (zB WASB) und kreiere Hive-Tabellen auf ihnen?Welche spezifischen Vorteile können wir erzielen, wenn SparkSQL für den Zugriff auf Hive-Tabellen verwendet wird, verglichen mit der Verwendung von JDBC zum Lesen von Tabellen vom SQL Server?

Mit anderen Worten, da Spark Benutzern das Lesen von Daten aus anderen Datenbanken mit JDBC ermöglicht, gibt es eine Leistungsverbesserung, wenn wir die Tabellen aus der Datenbank in einem geeigneten Format (Avro, Parkett usw.) in HDFS beibehalten und SparkSQL verwenden Zugriff auf sie mit HQL?

Es tut mir leid, wenn diese Frage gestellt wurde, habe ich einige Nachforschungen angestellt, konnte aber keinen Vergleich zwischen den beiden Methoden finden.

+0

Ihr Titel stimmt nicht mit Ihrer Frage überein. – EJP

+0

@EJP Es tut mir leid, ich mache die Verwirrung. Kannst du mehr dazu sagen, welcher Teil nicht stimmt? Ich kann dann die Frage modifizieren, um sie klarer zu machen. – Lubor

Antwort

0

Ich denke, es wird eine große Leistungsverbesserung sein, da die Daten lokal sind (vorausgesetzt Spark läuft auf demselben Hadoop-Cluster, wo die Daten auf HDFS gespeichert sind). Wenn JDBC interaktiv ist, muss der Benutzer warten, bis die Daten über JDBC von einem anderen Rechner geladen werden (N/W-Latenz und IO-Durchsatz). Wenn dies im Voraus geschieht, kann sich der Benutzer (Datenwissenschaftler) darauf konzentrieren die Aktionen sofort ausführen.