Hans-Peter Zorn | Inovex GmbH 
Wer gewinnt das SQL-Rennen auf der 
Hadoop-Strecke?
War nicht BigData das gleiche 
NoSQL?
Data Lake = Keine Struktur? 
flickr/matthewthecoolguy
Oder gar ein Hadump? 
flickr/autohistorian
Wie viele SQL 
Lösungen für Hadoop 
gibt es mittlerweile?
Hive 
Presto 
Oracle Hadoop Connector 
Hive on Spark 
Shark 
Hive-on-Tez 
Tajo 
Lingual 
Phoenix Apache Drill 
BigSQL 
Tra...
Agenda 
• Warum SQL, Anwendungfälle 
• Überblick Hive 
• Wie kann Hive verbessert werden 
• SQL-Engines: Welche für was? 
...
Warum jetzt doch SQL? 
• Türöffner zur BigData-Welt 
• Kenntnisse weit 
verbreitet 
• Software:Treiber 
vorhanden 
flickr....
Wo wird SQL auf Hadoop eingesetzt? 
• ETL 
• Adhoc-Analyse 
• Reporting
Oracle Hadoop Connector InfiniDB 
Hive on Spark 
Splice 
Pivotal HAWQ 
Shark 
Hive Presto 
Kylin 
Hive-on-Tez 
Tajo 
Lingu...
Hive 
• ursprünglich von Facebook 
• Compiliert HiveQL, ein SQL-Dialekt, zu 
MapReduce-Jobs 
• Schema wird separat zu den ...
Hive Architektur 
Anwender 
Query 
Hive Hadoop 
Hive 
Server2 
Meta 
store 
Parser, 
Analyzer, 
Compiler
Hive 
• ETL: gut geeignet 
• Ad-hoc: Zu hohe Latenz 
• Analytics: Latenz, Sprachumfang ungenügend
Was kann man besser 
machen? Oder: 
Warum ist Hive wie es ist
Hive auf Mapreduce 
Rot: Plattenzugriff 
Reduce-side 
Reduce 
Zieltabelle 
HDFS 
Reduce 
Map 
HDFS 
Shuffle 
Temporärtabel...
Was kann man besser machen? 
• Unnötige Maps oder Reduces vermeiden 
• Temporärdaten direkt weiterleiten 
• Effizientere D...
Optimiertes Hive: DAGs 
Reduce 
Reduce 
Map Map 
Reduce-side 
Kunden Adressen Käufe Produkte 
Join 
Shuffle 
Shuffle 
Map-...
Splice 
Pivotal HAWQ 
Oracle Hadoop Connector InfiniDB 
Hive 
Presto 
Hive on Spark 
Shark 
Kylin 
Hive-on-Tez 
Tajo 
Ling...
MPP (massive parallel processing) 
Datenbanken 
Slave 
(blackbox) 
HDFS 
Master 
Slave 
(blackbox) 
Slave 
(blackbox) 
Sla...
MPP-basiert 
Splice 
Pivotal HAWQ 
Oracle Hadoop Connector InfiniDB 
Hive 
Presto 
Hive on Spark 
Shark 
Kylin 
Hive-on-Te...
Spalten vs Zeilenorientiert 
Stuttgart 597939 D 
München 1407836 D 
Berlin 3419623 D 
London 8308369 GB 
Stuttgart München...
ORC / Parquet 
• Hortonworks/ 
Microsoft 
• Spaltenindizes, 
Vektorisierte Queries 
• Blöcke von 10.000 
Zeilen können übe...
No SQL!? 
Splice 
Pivotal HAWQ 
Oracle Hadoop Connector InfiniDB 
Hive 
Presto 
Hive on Spark 
Shark 
Kylin 
Hive-on-Tez 
...
Stinger initiative 
• Hortonworks/Microsoft 
• Hive weiterentwickeln 
• Geschwindigkeit: Tez, ORC 
• SQL-Features, Analyti...
Tez und Spark 
• YARN: Tez, Spark 
und Hive 
nebeneinander 
• Tez: Neuer, 
spezialisierter 
• Spark: generischer, 
viel Mo...
Cloudera Impala 
• MPP-basiert 
• Queries zu nativem Code 
• Speicherhungrig, empfohlen 128GB 
• keine strukturierten Date...
Facebooks Presto 
• MPP-Engine 
• Discovery-Server + Worker-Nodes 
• Struktur-Datentypen -> JSON 
• Hive, Cassandra, MySQL...
Apache Drill 
• MapR’s 
• Schema-on-Read 
• Connectoren für Hive, HBase, JSON, CSV. 
• Joins über mehrere Quellen hinweg 
...
Apache Tajo 
• MPP-like 
• Fokus auf Query-Plan Optimierung, nicht 
Caching (wie Impala) 
• SQL-Abdeckung noch nicht so we...
stinger.next 
• Queries unter einer Sekunde 
• MPP-Ähnliche Architektur (LLAP) 
• Updates und Transaktionen 
• SQL:2011 An...
Kylin 
• Sehr neu, entwickelt von eBay 
• (M)OLAP Engine 
• Aggregate werden in HBase gespeichert
Features 
Impala Hive 0.14 Presto Drill Tajo 
SQL HiveQL HiveQL SQL92 ANSI SQL ? 
Window-function 
s 
nein yes yes no 0.9 ...
Doch einige Zahlen 
50,91& 
34,31& 
16,69& 
30,96& 
39,43& 
5,25& 
9,25& 
70,00& 
60,00& 
50,00& 
40,00& 
30,00& 
20,00& 
...
Resume I 
Schnell 
Ausgereift 
Connectivity 
Sprach- 
Drill 
Tajo 
Impala Presto 
Tez/Spark 
Hive Umfang
Resumé II 
• Welche Distribution will ich nutzen? 
• Will ich heterogene Datenquellen nutzen 
(Cassandra, HBase, MySQL)? 
...
Wer gewinnt also? 
• Extrem schnell wachsendes, sich änderndes 
Umfeld. 
• Unübersichtlich 
• Keine „One-Size-Fits-All“ Lö...
Dankeschön! 
Fragen?
Nächste SlideShare
Wird geladen in …5
×

Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?

957 Aufrufe

Veröffentlicht am

Nachdem in den letzten Jahren NoSQL ein beherrschendes Thema im Kontext von Big Data war, gewinnt SQL als Anfragesprache wieder große Bedeutung im Hadoop-Umfeld. Dabei steht mit Hive ein SQL-Dialekt zur Verfügung, mit dem zwar leicht Batch-orientierte ETL-Strecken für Hadoop gebaut werden können, der aber bisher für interaktive Analysen nicht geeignet war Mit Impala, Presto, Spark SQL und dem Stinger-Projekt ändert sich das nun rapide. Schnelle verteilte Query Engines erlauben interaktive analytische Anfragen auf großen Datenmengen. Dazu kommen neue Speicherformate wie Parquet und ORC, die effizientere Repräsentation und schnelleren Zugriff versprechen. In dieser Session gebe ich einen Überblick über Stärken und Schwächen der verschiedenen Ansätze und Erfahrungen aus dem praktischen Einsatz.

Veröffentlicht in: Technologie
2 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
957
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
9
Aktionen
Geteilt
0
Downloads
10
Kommentare
2
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?

  1. 1. Hans-Peter Zorn | Inovex GmbH Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
  2. 2. War nicht BigData das gleiche NoSQL?
  3. 3. Data Lake = Keine Struktur? flickr/matthewthecoolguy
  4. 4. Oder gar ein Hadump? flickr/autohistorian
  5. 5. Wie viele SQL Lösungen für Hadoop gibt es mittlerweile?
  6. 6. Hive Presto Oracle Hadoop Connector Hive on Spark Shark Hive-on-Tez Tajo Lingual Phoenix Apache Drill BigSQL Trafodion Hadapt CitusDB Impala Spark SQL Splice Pivotal HAWQ IBM BigSQL Aster SQL/Mapreduce InfiniDB Kylin
  7. 7. Agenda • Warum SQL, Anwendungfälle • Überblick Hive • Wie kann Hive verbessert werden • SQL-Engines: Welche für was? • Zusammenfassung
  8. 8. Warum jetzt doch SQL? • Türöffner zur BigData-Welt • Kenntnisse weit verbreitet • Software:Treiber vorhanden flickr.com/salynaz
  9. 9. Wo wird SQL auf Hadoop eingesetzt? • ETL • Adhoc-Analyse • Reporting
  10. 10. Oracle Hadoop Connector InfiniDB Hive on Spark Splice Pivotal HAWQ Shark Hive Presto Kylin Hive-on-Tez Tajo Lingual Phoenix Apache Drill BigSQL Trafodion Hadapt CitusDB Impala Spark SQL IBM BigSQL Aster SQL/Mapreduce
  11. 11. Hive • ursprünglich von Facebook • Compiliert HiveQL, ein SQL-Dialekt, zu MapReduce-Jobs • Schema wird separat zu den Daten abgelegt: Metastore
  12. 12. Hive Architektur Anwender Query Hive Hadoop Hive Server2 Meta store Parser, Analyzer, Compiler
  13. 13. Hive • ETL: gut geeignet • Ad-hoc: Zu hohe Latenz • Analytics: Latenz, Sprachumfang ungenügend
  14. 14. Was kann man besser machen? Oder: Warum ist Hive wie es ist
  15. 15. Hive auf Mapreduce Rot: Plattenzugriff Reduce-side Reduce Zieltabelle HDFS Reduce Map HDFS Shuffle Temporärtabelle HDFS Shuffle HDFS Map-Side Join Map Map Join HDFS HDFS HDFS HDFS Kunden Adressen Käufe Produkte
  16. 16. Was kann man besser machen? • Unnötige Maps oder Reduces vermeiden • Temporärdaten direkt weiterleiten • Effizientere Datenspeicherung • Query-Optimierung (cost-based) • Arbeitsspeicher nutzen
  17. 17. Optimiertes Hive: DAGs Reduce Reduce Map Map Reduce-side Kunden Adressen Käufe Produkte Join Shuffle Shuffle Map-Side Join HDFS HDFS HDFS HDFS Adressen HDFS
  18. 18. Splice Pivotal HAWQ Oracle Hadoop Connector InfiniDB Hive Presto Hive on Spark Shark Kylin Hive-on-Tez Tajo Lingual Phoenix Apache Drill BigSQL Trafodion Hadapt CitusDB Impala Spark SQL IBM BigQuery Aster SQL/Mapreduce
  19. 19. MPP (massive parallel processing) Datenbanken Slave (blackbox) HDFS Master Slave (blackbox) Slave (blackbox) Slave (blackbox) HDFS HDFS HDFS
  20. 20. MPP-basiert Splice Pivotal HAWQ Oracle Hadoop Connector InfiniDB Hive Presto Hive on Spark Shark Kylin Hive-on-Tez Tajo Lingual Phoenix Apache Drill BigSQL Trafodion Hadapt CitusDB Impala Spark SQL IBM BigSQL Aster SQL/Mapreduce
  21. 21. Spalten vs Zeilenorientiert Stuttgart 597939 D München 1407836 D Berlin 3419623 D London 8308369 GB Stuttgart München Berlin London 597939 1407836 3419623 8308369 D D D GB
  22. 22. ORC / Parquet • Hortonworks/ Microsoft • Spaltenindizes, Vektorisierte Queries • Blöcke von 10.000 Zeilen können über Index übersprungen werden • Hive Datentypen • Twitter/Cloudera/ Criteo • Plattform- und Hive unabhängig. (z.b. Pig) • Verschachtelte Datenstrukturen (Listen, Maps) - Kann ORC auch
  23. 23. No SQL!? Splice Pivotal HAWQ Oracle Hadoop Connector InfiniDB Hive Presto Hive on Spark Shark Kylin Hive-on-Tez Tajo Lingual Phoenix Apache Drill BigSQL Trafodion Hadapt CitusDB Impala Spark SQL IBM BigSQL Aster SQL/Mapreduce
  24. 24. Stinger initiative • Hortonworks/Microsoft • Hive weiterentwickeln • Geschwindigkeit: Tez, ORC • SQL-Features, Analytische Queries (OVER) • Security (GRANT)
  25. 25. Tez und Spark • YARN: Tez, Spark und Hive nebeneinander • Tez: Neuer, spezialisierter • Spark: generischer, viel Monumentum TEZ Hive Spark Spark MR YARN
  26. 26. Cloudera Impala • MPP-basiert • Queries zu nativem Code • Speicherhungrig, empfohlen 128GB • keine strukturierten Datentypen • Zwischenergebnisse müssen in RAM passen (bis Impala 2.0)
  27. 27. Facebooks Presto • MPP-Engine • Discovery-Server + Worker-Nodes • Struktur-Datentypen -> JSON • Hive, Cassandra, MySQL • Anwendung bei Facebook: Fact-table in Hive, Dimensions in MySQL • einfaches Deployment
  28. 28. Apache Drill • MapR’s • Schema-on-Read • Connectoren für Hive, HBase, JSON, CSV. • Joins über mehrere Quellen hinweg • Compliliert Queries zu Java-Byte-Code • Version 0.5.0
  29. 29. Apache Tajo • MPP-like • Fokus auf Query-Plan Optimierung, nicht Caching (wie Impala) • SQL-Abdeckung noch nicht so weit • In unseren Tests sehr schnell • Kerberos in Arbeit
  30. 30. stinger.next • Queries unter einer Sekunde • MPP-Ähnliche Architektur (LLAP) • Updates und Transaktionen • SQL:2011 Analytics
  31. 31. Kylin • Sehr neu, entwickelt von eBay • (M)OLAP Engine • Aggregate werden in HBase gespeichert
  32. 32. Features Impala Hive 0.14 Presto Drill Tajo SQL HiveQL HiveQL SQL92 ANSI SQL ? Window-function s nein yes yes no 0.9 Security Sentry Filesyste m+ Hive - - - (Kerbero File-formats RC, Parquet, Text, Seq viele alle von hive + connector n alle von hive + connector en RC, Parquet, Text,Seq Nested! Data nein ja via JSON ja no
  33. 33. Doch einige Zahlen 50,91& 34,31& 16,69& 30,96& 39,43& 5,25& 9,25& 70,00& 60,00& 50,00& 40,00& 30,00& 20,00& 10,00& 0,00& Hive& Shark& Shark/Cluster& Impala& Presto& Drill& Tajo&
  34. 34. Resume I Schnell Ausgereift Connectivity Sprach- Drill Tajo Impala Presto Tez/Spark Hive Umfang
  35. 35. Resumé II • Welche Distribution will ich nutzen? • Will ich heterogene Datenquellen nutzen (Cassandra, HBase, MySQL)? • Will ich vorhandene Software anbinden (MicroStrategy, Tableau, SAP)? • Welche Antwortzeiten brauche ich? • Welche Datentypen nutze ich? • Security?
  36. 36. Wer gewinnt also? • Extrem schnell wachsendes, sich änderndes Umfeld. • Unübersichtlich • Keine „One-Size-Fits-All“ Lösung bisher • Anhand des individuellen Anwendungsfalles zu evaluieren.
  37. 37. Dankeschön! Fragen?

×