![Page 1: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/1.jpg)
Hans-Peter Zorn | Inovex GmbH
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
![Page 2: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/2.jpg)
War nicht BigData das gleiche NoSQL?
![Page 3: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/3.jpg)
Data Lake = Keine Struktur?
flickr/matthewthecoolguy
![Page 4: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/4.jpg)
Oder gar ein Hadump?
flickr/autohistorian
![Page 5: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/5.jpg)
Wie viele SQL Lösungen für Hadoop gibt es mittlerweile?
![Page 6: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/6.jpg)
HivePresto
Hive on SparkShark
Hive-on-TezTajo
Lingual
Apache DrillPhoenix
Trafodion Hadapt
BigSQL
CitusDB
Impala
Spark SQL
Splice
Pivotal HAWQ
IBM BigSQLAster SQL/Mapreduce
Oracle Hadoop ConnectorInfiniDB
Kylin
![Page 7: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/7.jpg)
Agenda
• Warum SQL, Anwendungfälle
• Überblick Hive
• Wie kann Hive verbessert werden
• SQL-Engines: Welche für was?
• Zusammenfassung
![Page 8: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/8.jpg)
Warum jetzt doch SQL?
• Türöffner zur BigData-Welt
• Kenntnisse weit verbreitet
• Software:Treiber vorhanden
flickr.com/salynaz
![Page 9: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/9.jpg)
Wo wird SQL auf Hadoop eingesetzt?
• ETL
• Adhoc-Analyse
• Reporting
![Page 10: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/10.jpg)
Hive Presto
Hive on SparkShark
Hive-on-TezTajo
Lingual
Apache DrillPhoenix
Trafodion Hadapt
BigSQL
CitusDB
Impala
Spark SQL
Splice
Pivotal HAWQ
IBM BigSQLAster SQL/Mapreduce
Oracle Hadoop Connector InfiniDB
Kylin
![Page 11: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/11.jpg)
Hive
• ursprünglich von Facebook
• Compiliert HiveQL, ein SQL-Dialekt, zu MapReduce-Jobs
• Schema wird separat zu den Daten abgelegt: Metastore
![Page 12: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/12.jpg)
Hive Architektur
Metastore
Hive Server2
Parser, Analyzer, Compiler
Anwender
HadoopHiveQuery
![Page 13: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/13.jpg)
Hive
• ETL: gut geeignet
• Ad-hoc: Zu hohe Latenz
• Analytics: Latenz, Sprachumfang ungenügend
![Page 14: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/14.jpg)
Was kann man besser machen? Oder:
Warum ist Hive wie es ist
![Page 15: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/15.jpg)
Hive auf Mapreduce
Rot: Plattenzugriff
Kunden Adressen Käufe Produkte
Map Map
Reduce
Temporärtabelle
Map
Reduce
Reduce-sideJoin
HDFS
Shuffle
Shuffle
HDFS
HDFS
HDFS
Map-SideJoin
HDFS
HDFSHD
FS
HDFS
Zieltabelle
![Page 16: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/16.jpg)
Was kann man besser machen?
• Unnötige Maps oder Reduces vermeiden
• Temporärdaten direkt weiterleiten
• Effizientere Datenspeicherung
• Query-Optimierung (cost-based)
• Arbeitsspeicher nutzen
![Page 17: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/17.jpg)
Optimiertes Hive: DAGs
Kunden Adressen Käufe Produkte
Map Map
Reduce
Reduce
Reduce-sideJoin
Shuffle
Shuffle
Map-SideJoin
HDFS
HDFSHD
FS
HDFS
Adressen
HDFS
![Page 18: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/18.jpg)
HivePresto
Hive on SparkShark
Hive-on-TezTajo
Lingual
Apache DrillPhoenix
Trafodion Hadapt
BigSQL
CitusDB
Impala
Spark SQL
Splice
Pivotal HAWQ
IBM BigQueryAster SQL/Mapreduce
Oracle Hadoop Connector InfiniDB
Kylin
![Page 19: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/19.jpg)
MPP (massive parallel processing) Datenbanken
HDFS
Slave (blackbox)
Master
Slave (blackbox)
Slave (blackbox)
Slave (blackbox)
HDFS HDFS HDFS
![Page 20: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/20.jpg)
MPP-basiert
HivePresto
Hive on SparkShark
Hive-on-TezTajo
Lingual
Apache DrillPhoenix
Trafodion Hadapt
BigSQL
CitusDB
Impala
Spark SQL
Splice
Pivotal HAWQ
IBM BigSQLAster SQL/Mapreduce
Oracle Hadoop Connector InfiniDB
Kylin
![Page 21: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/21.jpg)
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
![Page 22: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/22.jpg)
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
![Page 23: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/23.jpg)
No SQL!?
HivePresto
Hive on SparkShark
Hive-on-TezTajo
Lingual
Apache DrillPhoenix
Trafodion Hadapt
BigSQL
CitusDB
Impala
Spark SQL
Splice
Pivotal HAWQ
IBM BigSQLAster SQL/Mapreduce
Oracle Hadoop Connector InfiniDB
Kylin
![Page 24: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/24.jpg)
Stinger initiative
• Hortonworks/Microsoft
• Hive weiterentwickeln
• Geschwindigkeit: Tez, ORC
• SQL-Features, Analytische Queries (OVER)
• Security (GRANT)
![Page 25: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/25.jpg)
Tez und Spark
• YARN: Tez, Spark und Hive nebeneinander
• Tez: Neuer, spezialisierter
• Spark: generischer, viel Monumentum
TEZ HiveSpark
Spark MR
YARN
![Page 26: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/26.jpg)
Cloudera Impala• MPP-basiert
• Queries zu nativem Code
• Speicherhungrig, empfohlen 128GB
• keine strukturierten Datentypen
• Zwischenergebnisse müssen in RAM passen (bis Impala 2.0)
![Page 27: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/27.jpg)
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
![Page 28: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/28.jpg)
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
![Page 29: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/29.jpg)
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
![Page 30: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/30.jpg)
stinger.next
• Queries unter einer Sekunde
• MPP-Ähnliche Architektur (LLAP)
• Updates und Transaktionen
• SQL:2011 Analytics
![Page 31: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/31.jpg)
Kylin
• Sehr neu, entwickelt von eBay
• (M)OLAP Engine
• Aggregate werden in HBase gespeichert
![Page 32: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/32.jpg)
FeaturesImpala Hive 0.14 Presto Drill Tajo
SQL HiveQL HiveQL SQL92 ANSI SQL ?Window-function
s
nein yes yes no 0.9
Security Sentry Filesystem+ Hive
- - - (Kerbero
File-formats
RC, Parquet, Text, Seq
vielealle von hive +
connectorn
alle von hive +
connectoren
RC, Parquet, Text,Seq
Nested!Data nein ja via JSON ja no
![Page 33: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/33.jpg)
Doch einige Zahlen
50,91&
34,31&
16,69&
30,96&
39,43&
5,25&9,25&
0,00&
10,00&
20,00&
30,00&
40,00&
50,00&
60,00&
70,00&
Hive&
Shark&
Shark/Cluster&
Impala&
Presto&
Drill&
Tajo&
![Page 34: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/34.jpg)
Resume I
Schnell
Ausgereift
Connectivity
Sprach- UmfangHive
PrestoImpalaDrill
Tez/Spark
Tajo
![Page 35: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/35.jpg)
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?
![Page 36: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/36.jpg)
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.
![Page 37: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?](https://reader034.vdocuments.site/reader034/viewer/2022051617/55a4e4f31a28ab36748b46a2/html5/thumbnails/37.jpg)
Dankeschön! Fragen?