SQL on Hadoop für praktikables BI auf Big Data! Hans-Peter Zorn und Dr. Dominik Benz, Inovex Gmbh
War nicht BigData das gleiche NoSQL? 2
Wie viele SQL Lösungen für Hadoop gibt es mittlerweile? 3
! No SQL!? Kylin Oracle Hadoop Connector Splice InfiniDB Hive on Spark Pivotal HAWQ Shark Hive-on-Tez Tajo Hive BigSQL Phoenix Apache Drill Lingual Presto Impala Hadapt Trafodion Spark SQL CitusDB IBM BigSQL Aster SQL/Mapreduce 4
Agenda Warum SQL, Anwendungfälle Überblick Hive Wie kann Hive verbessert werden SQL-Engines: Welche für was? Zusammenfassung 5
Warum jetzt doch SQL? Türöffner zur BigData-Welt Kenntnisse weit verbreitet Software:Treiber vorhanden flickr.com/salynaz 6
No SQL? Oracle Hadoop Connector Splice InfiniDB Hive on Spark Pivotal HAWQ Kylin Hive-on-Tez Tajo BigSQL Shark Hive Phoenix Apache Drill Lingual Presto Impala Trafodion Hadapt Aster SQL/Mapreduce CitusDB Spark SQL IBM BigSQL 7
Hive ursprünglich von Facebook Compiliert HiveQL, ein SQL-Dialekt, zu MapReduce-Jobs Schema wird separat zu den Daten abgelegt: Metastore ursprünglich von Facebook 8
Hive Architektur Anwender Hive Query Hadoop Hive Server2 Meta store Parser, Analyzer, Compiler 9
Hive ETL: gut geeignet Ad-hoc: Zu hohe Latenz Analytics: Latenz, Sprachumfang ungenügend ETL: gut geeignet 10
Was kann man besser machen? Oder: Warum ist Hive wie es ist 11
Hive auf Mapreduce Zieltabelle HDFS Reduce Rot: Plattenzugriff Shuffle Map Reduce-side Join Reduce HDFS HDFS Temporärtabelle Map-Side Join Shuffle HDFS Map Map HDFS HDFS HDFS HDFS Kunden Adressen Käufe Produkte 12
Optimiertes Hive: DAGs Adressen HDFS Shuffle Reduce Reduce Reduce-side Join HDFS Map Shuffle HDFS Map-Side Join HDFS Map HDFS Kunden Adressen Käufe Produkte 13
Oracle Hadoop Connector Splice InfiniDB Hive on Spark Pivotal HAWQ Kylin Shark Hive-on-Tez Tajo Hive BigSQL Phoenix Apache Drill Lingual Presto Impala Hadapt Trafodion Spark SQL CitusDB IBM BigQuery Aster SQL/Mapreduce 14
MPP (massive parallel processing) Datenbanken Master Slave Slave Slave Slave (blackbox) (blackbox) (blackbox) (blackbox) HDFS HDFS HDFS HDFS 15
MPP-basiert Oracle Hadoop Connector Splice InfiniDB Hive on Spark Pivotal HAWQ Kylin Shark Hive-on-Tez Tajo Hive BigSQL Phoenix Apache Drill Lingual Presto Impala Hadapt Trafodion Spark SQL CitusDB IBM BigSQL Aster SQL/Mapreduce 16
No SQL!? Oracle Hadoop Connector Splice InfiniDB Hive on Spark Pivotal HAWQ Kylin Shark Hive-on-Tez Tajo Hive BigSQL Phoenix Apache Drill Lingual Presto Impala Hadapt Trafodion Spark SQL CitusDB IBM BigSQL Aster SQL/Mapreduce 17
Stinger initiative Hortonworks/Microsoft Hive weiterentwickeln Geschwindigkeit: Tez, ORC SQL-Features, Analytische Queries (OVER) Security (GRANT) 18
Tez und Spark TEZ Spark YARN Hive Spark MR YARN: Tez, Spark und Hive nebeneinander Tez: Neuer, spezialisierter Spark: generischer, viel Monumentum 19
Impala MPP-basiert Queries zu nativem Code Speicherhungrig, empfohlen 128GB keine strukturierten Datentypen Zwischenergebnisse müssen in RAM passen (bis Impala 2.0) 20
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 21
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 22
Kylin Sehr neu, entwickelt von ebay (M)OLAP Engine Aggregate werden in HBase gespeichert 23
Saiku - Beispiel 2 24
Mondrian mit Hive / Impala + Saiku UI 25
Mondrian mit Kylin 26
Doch einige Zahlen 70,00& 60,00& 50,00& 50,91& 40,00& 30,00& 34,31& 30,96& 39,43& 20,00& 16,69& 10,00& 5,25& 9,25& 0,00& Hive& Shark& Shark/Cluster& Impala& Presto& Drill& Tajo& 27
Resume I Schnell Connectivity Drill Impala Tajo Presto Ausgereift Tez/Spark Hive Sprach- Umfang Zahlen noch unzuverlässig 28
Resumé Extrem schnell wachsendes, sich änderndes Umfeld. Unübersichtlich Keine One-Size-Fits-All Lösung bisher Anhand des individuellen Anwendungsfalles zu evaluieren.
Vielen Dank für Eure Aufmerksamkeit! Kontakt! Hans-Peter Zorn Data Management & Analytics! inovex GmbH Office Karlsruhe Ludwig-Erhard-Allee 6 76131 Karlsruhe! 0173 31 81 093 hzorn@inovex.de! 30