Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin....

37
Hans-Peter Zorn | Inovex GmbH Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?

Transcript of Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin....

Page 1: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

War nicht BigData das gleiche NoSQL?

Page 3: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Data Lake = Keine Struktur?

flickr/matthewthecoolguy

Page 4: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Oder gar ein Hadump?

flickr/autohistorian

Page 5: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Wie viele SQL Lösungen für Hadoop gibt es mittlerweile?

Page 6: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Wo wird SQL auf Hadoop eingesetzt?

• ETL

• Adhoc-Analyse

• Reporting

Page 10: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Hive Architektur

Metastore

Hive Server2

Parser, Analyzer, Compiler

Anwender

HadoopHiveQuery

Page 13: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Was kann man besser machen? Oder:

Warum ist Hive wie es ist

Page 15: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Hive auf Mapreduce

Rot: Plattenzugriff

Kunden Adressen Käufe Produkte

Map Map

Reduce

Temporärtabelle

Map

Reduce

Reduce-sideJoin

HD

FS

Shuffle

Shuffle

HDFS

HDFS

HD

FS

Map-SideJoin

HDFS

HDFS

HDFS

HDFS

Zieltabelle

Page 16: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Optimiertes Hive: DAGs

Kunden Adressen Käufe Produkte

Map Map

Reduce

Reduce

Reduce-sideJoin

Shuffle

Shuffle

Map-SideJoin

HDFS

HDFS

HDFS

HDFS

Adressen

HD

FS

Page 18: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Resume I

Schnell

Ausgereift

Connectivity

Sprach- UmfangHive

PrestoImpalaDrill

Tez/Spark

Tajo

Page 35: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! 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?

Page 36: Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

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? · Oracle Hadoop Connector InfiniDB Kylin. Stinger initiative ... Resume I Schnell Ausgereift Connectivity Sprach-! Hive Umfang

Dankeschön! Fragen?