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 
Trafodion Hadapt 
CitusDB 
Impala 
Spark SQL 
Splice 
Pivotal HAWQ 
IBM BigSQL 
Aster SQL/Mapreduce 
InfiniDB 
Kylin
Agenda 
• Warum SQL, Anwendungfälle 
• Überblick Hive 
• Wie kann Hive verbessert werden 
• SQL-Engines: Welche für was? 
• Zusammenfassung
Warum jetzt doch SQL? 
• Türöffner zur BigData-Welt 
• Kenntnisse weit 
verbreitet 
• Software:Treiber 
vorhanden 
flickr.com/salynaz
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 
Lingual 
Phoenix Apache Drill 
BigSQL 
Trafodion Hadapt 
CitusDB 
Impala 
Spark SQL 
IBM BigSQL 
Aster SQL/Mapreduce
Hive 
• ursprünglich von Facebook 
• Compiliert HiveQL, ein SQL-Dialekt, zu 
MapReduce-Jobs 
• Schema wird separat zu den Daten 
abgelegt: Metastore
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ärtabelle 
HDFS 
Shuffle 
HDFS 
Map-Side 
Join 
Map Map 
Join 
HDFS 
HDFS 
HDFS 
HDFS 
Kunden Adressen Käufe Produkte
Was kann man besser machen? 
• Unnötige Maps oder Reduces vermeiden 
• Temporärdaten direkt weiterleiten 
• Effizientere Datenspeicherung 
• Query-Optimierung (cost-based) 
• Arbeitsspeicher nutzen
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
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
MPP (massive parallel processing) 
Datenbanken 
Slave 
(blackbox) 
HDFS 
Master 
Slave 
(blackbox) 
Slave 
(blackbox) 
Slave 
(blackbox) 
HDFS HDFS HDFS
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
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
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
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
Stinger initiative 
• Hortonworks/Microsoft 
• Hive weiterentwickeln 
• Geschwindigkeit: Tez, ORC 
• SQL-Features, Analytische Queries (OVER) 
• Security (GRANT)
Tez und Spark 
• YARN: Tez, Spark 
und Hive 
nebeneinander 
• Tez: Neuer, 
spezialisierter 
• Spark: generischer, 
viel Monumentum 
TEZ Hive 
Spark 
Spark MR 
YARN
Cloudera Impala 
• MPP-basiert 
• Queries zu nativem Code 
• Speicherhungrig, empfohlen 128GB 
• keine strukturierten Datentypen 
• Zwischenergebnisse müssen in RAM passen 
(bis Impala 2.0)
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
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
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
stinger.next 
• Queries unter einer Sekunde 
• MPP-Ähnliche Architektur (LLAP) 
• Updates und Transaktionen 
• SQL:2011 Analytics
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 
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
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&
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)? 
• Will ich vorhandene Software anbinden 
(MicroStrategy, Tableau, SAP)? 
• Welche Antwortzeiten brauche ich? 
• Welche Datentypen nutze ich? 
• Security?
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.
Dankeschön! 
Fragen?

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

  • 1.
    Hans-Peter Zorn |Inovex GmbH Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
  • 2.
    War nicht BigDatadas gleiche NoSQL?
  • 3.
    Data Lake =Keine Struktur? flickr/matthewthecoolguy
  • 4.
    Oder gar einHadump? flickr/autohistorian
  • 5.
    Wie viele SQL Lösungen für Hadoop gibt es mittlerweile?
  • 6.
    Hive Presto OracleHadoop 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.
    Agenda • WarumSQL, Anwendungfälle • Überblick Hive • Wie kann Hive verbessert werden • SQL-Engines: Welche für was? • Zusammenfassung
  • 8.
    Warum jetzt dochSQL? • Türöffner zur BigData-Welt • Kenntnisse weit verbreitet • Software:Treiber vorhanden flickr.com/salynaz
  • 9.
    Wo wird SQLauf Hadoop eingesetzt? • ETL • Adhoc-Analyse • Reporting
  • 10.
    Oracle Hadoop ConnectorInfiniDB 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.
    Hive • ursprünglichvon Facebook • Compiliert HiveQL, ein SQL-Dialekt, zu MapReduce-Jobs • Schema wird separat zu den Daten abgelegt: Metastore
  • 12.
    Hive Architektur Anwender Query Hive Hadoop Hive Server2 Meta store Parser, Analyzer, Compiler
  • 13.
    Hive • ETL:gut geeignet • Ad-hoc: Zu hohe Latenz • Analytics: Latenz, Sprachumfang ungenügend
  • 14.
    Was kann manbesser machen? Oder: Warum ist Hive wie es ist
  • 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.
    Was kann manbesser machen? • Unnötige Maps oder Reduces vermeiden • Temporärdaten direkt weiterleiten • Effizientere Datenspeicherung • Query-Optimierung (cost-based) • Arbeitsspeicher nutzen
  • 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.
    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.
    MPP (massive parallelprocessing) Datenbanken Slave (blackbox) HDFS Master Slave (blackbox) Slave (blackbox) Slave (blackbox) HDFS HDFS HDFS
  • 20.
    MPP-basiert Splice PivotalHAWQ 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.
    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.
    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.
    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.
    Stinger initiative •Hortonworks/Microsoft • Hive weiterentwickeln • Geschwindigkeit: Tez, ORC • SQL-Features, Analytische Queries (OVER) • Security (GRANT)
  • 25.
    Tez und Spark • YARN: Tez, Spark und Hive nebeneinander • Tez: Neuer, spezialisierter • Spark: generischer, viel Monumentum TEZ Hive Spark Spark MR YARN
  • 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.
    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.
    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.
    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.
    stinger.next • Queriesunter einer Sekunde • MPP-Ähnliche Architektur (LLAP) • Updates und Transaktionen • SQL:2011 Analytics
  • 31.
    Kylin • Sehrneu, entwickelt von eBay • (M)OLAP Engine • Aggregate werden in HBase gespeichert
  • 32.
    Features Impala Hive0.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.
    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.
    Resume I Schnell Ausgereift Connectivity Sprach- Drill Tajo Impala Presto Tez/Spark Hive Umfang
  • 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.
    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.