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 Splice Oracle Hadoop Connector InfiniDB Pivotal HAWQ Hive on Spark Shark Hive-on-Tez BigSQL Trafodion Tajo Hive Lingual Presto Impala Phoenix Apache Drill Hadapt Spark SQL CitusDB Aster SQL/Mapreduce IBM BigSQL 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 Kylin Hive on Spark Splice InfiniDB Pivotal HAWQ Shark Hive-on-Tez BigSQL Trafodion Tajo Hive Phoenix Lingual Presto Impala Apache Drill Hadapt Spark SQL CitusDB Aster SQL/Mapreduce 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 Query Hive 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 HDFS Zieltabelle Rot: Plattenzugriff Reduce Shuffle HDFS Map Reduce-side Join Map-Side Join Temporärtabelle S Shuffle FS Reduce HD HDF Adressen Käufe FS HD HD FS Kunden FS HD HD Map FS Map Produkte 12 Optimiertes Hive: DAGs HDFS Adressen Shuffle Reduce Reduce Shuffle Adressen Käufe HD FS Map FS FS FS HD HD Kunden Map-Side Join Map HD Reduce-side Join Produkte 13 Splice Oracle Hadoop Connector Kylin InfiniDB Pivotal HAWQ Hive on Spark Shark Hive-on-Tez BigSQL Trafodion Tajo Hive Lingual Presto Impala Phoenix Apache Drill Hadapt Spark SQL CitusDB Aster SQL/Mapreduce IBM BigQuery 14 MPP (massive parallel processing) Datenbanken Master Slave Slave Slave Slave (blackbox) (blackbox) (blackbox) (blackbox) HDFS HDFS HDFS HDFS 15 MPP-basiert Splice Oracle Hadoop Connector Kylin InfiniDB Pivotal HAWQ Hive on Spark Shark Hive-on-Tez BigSQL Trafodion Tajo Hive Lingual Presto Impala Phoenix Apache Drill Hadapt Spark SQL CitusDB Aster SQL/Mapreduce IBM BigSQL 16 No SQL!? Splice Oracle Hadoop Connector Kylin InfiniDB Pivotal HAWQ Hive on Spark Shark Hive-on-Tez BigSQL Trafodion Tajo Hive Lingual Presto Impala Phoenix Apache Drill Hadapt Spark SQL CitusDB Aster SQL/Mapreduce IBM BigSQL 17 Stinger initiative • Hortonworks/Microsoft • Hive weiterentwickeln • Geschwindigkeit: Tez, ORC • SQL-Features, Analytische Queries (OVER) • Security (GRANT) 18 Tez und Spark TEZ Hive Spark Spark MR YARN • 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,91& 50,00& 39,43& 40,00& 34,31& 30,96& 30,00& 16,69& 20,00& 9,25& 10,00& 5,25& & jo Ta Dr ill& o& & la Pr es t lu ar k/ C Sh Im pa st er & ar k& Sh Hi ve & 0,00& 27 Resume I Schnell Ausgereift Zahlen noch unzuverlässig Connectivity Drill Tajo Impala Presto Tez/Spark Hive Sprach- Umfang 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 [email protected] ! 30