Nachdem in den letzten Jahren NoSQL ein beherrschendes Thema im Kontext von Big Data war, gewinnt SQL als Anfragesprache wieder große Bedeutung im Hadoop-Umfeld. Dabei steht mit Hive ein SQL-Dialekt zur Verfügung, mit dem zwar leicht Batch-orientierte ETL-Strecken für Hadoop gebaut werden können, der aber bisher für interaktive Analysen nicht geeignet war Mit Impala, Presto, Spark SQL und dem Stinger-Projekt ändert sich das nun rapide. Schnelle verteilte Query Engines erlauben interaktive analytische Anfragen auf großen Datenmengen. Dazu kommen neue Speicherformate wie Parquet und ORC, die effizientere Repräsentation und schnelleren Zugriff versprechen. In dieser Session gebe ich einen Überblick über Stärken und Schwächen der verschiedenen Ansätze und Erfahrungen aus dem praktischen Einsatz.
16. Was kann man besser machen?
• Unnötige Maps oder Reduces vermeiden
• Temporärdaten direkt weiterleiten
• Effizientere Datenspeicherung
• Query-Optimierung (cost-based)
• Arbeitsspeicher nutzen
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
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
• Queries unter einer Sekunde
• MPP-Ähnliche Architektur (LLAP)
• Updates und Transaktionen
• SQL:2011 Analytics
31. Kylin
• Sehr neu, entwickelt von eBay
• (M)OLAP Engine
• Aggregate werden in HBase gespeichert
32. 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
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.