Big Data – eine technische Auswahl

Werbung
Big Data – (kl)eine technische Auswahl
Peter Welker
BASEL BERN BRUGG DÜSSELDORF
HAMBURG KOPENHAGEN LAUSANNE
FRANKFURT A.M. FREIBURG I.BR. GENF
MÜNCHEN STUTTGART WIEN ZÜRICH
Sie erinnern sich?
BI Competence Center
Organisation
Incremental
Stream
Stream Analytics
Governance
2
23.03.2017
Optimized Data in MotionNoSQL
DB
Search
Data Refinery/Factory
Standardized Data at Rest
Processed Files
Merge Layer
Hadoop Raw Data
Query
Data Lab (Sandbox)
Data
Acquisition
Metadata Management
Data
Management
Master Data Management
Big Data – (kl)eine technische Auswahl
Information
Provisioning
Quality & Accountability
Prebuild &
AdHoc BI Assets
Information
Services
SQL Engine
Raw Data at Rest
Content
Data
Sources
Dashboard
Standardized Data in Motion
Full
Machine Data
Event Hub
Service / API
Optimized Data at Rest
Batch/Bulk
Master &
Reference
Data
Services (Push)
Structured
Data
Business Stakeholders
Raw Data in Motion
Connectors (Pull)
Un-/Semistructured Data
IT Operations
Security
Advanced
Analysis Tools
Data Science
Tools
Consumer
Legal Compliance
Deutsche
ORACLE
Anwendergruppe
3
23.03.2017
Big Data – (kl)eine technische Auswahl
Ein paar Tools herausgepickt
4
23.03.2017
Big Data – (kl)eine technische Auswahl
Hadoop
5
23.03.2017
Big Data – (kl)eine technische Auswahl
Motivation hinter Hadoop – Scaling Out
Horizontale Skalierung
Server hinzufügen und in einer
verteilten und parallelen Umgebung
arbeiten
Richtig gemacht kann das eine
langfristige Lösung für zahlreiche
Skalierungsprobleme sein
Der Weg von einer monolitischen
Lösung zu einem skalierbaren
Cluster ist nicht einfach
6
23.03.2017
Big Data – (kl)eine technische Auswahl
Motivation hinter Hadoop – Schema on Read
Traditionell “Schema on Write”
•
Dataqualität durch formalisierten ETL Prozess
•
Daten werden konsistent in Tabellen abgelegt
•
Integration mittels ETL
•
Struktur ist vor dem Schreiben bekannt
Big Data “Schema on Read”
• Individuelle Dateninterpretation durch jedes lesende
Programm
• Qualität auch von lesender Verarbeitung abhängig
• Datenintegration beim Lesen
7
23.03.2017
Big Data – (kl)eine technische Auswahl
Hadoop HDFS: Architektur
Namenode (1 per Cluster)
• Speichert Filesystemmetadaten und File-to-block-map
• Hat ein komplettes Bild des Filesystems
• Wird komplett im RAM gehalten
Secondary Namenode (1 per Cluster)
• Internes Namenode-Transactionlog-Checkpointing
• Kein HA Feature!
Datanode
• Many per cluster
• Speichert Datenblöcke (Dateiinhalte)
Block
• Mindestgröße für Lese-/Schreiboperationen
• 64 – 128 MB (default )
• Dateien in HDFS werden nur einmal geschrieben!
8
23.03.2017
Big Data – (kl)eine technische Auswahl
Source: Hadoop Operations (O‘Reilly Press)
Hadoop HDFS: Placement Policy
Default Placement Policy
•
Erste Kopie wird auf den Knoten abgelegt,
der die Datei erzeugt (write affinity)
•
Zweite Kopie wird auf einen Knoten im
gleichen Rack geschrieben
•
Dritte Kopie landet auf einem Knoten in
einem anderen Rack
•
Ziel: Load-Balancing & Fault Tolerance
Rack-aware replica placement
9
23.03.2017
Big Data – (kl)eine technische Auswahl
MapReduce
Hadoop MapReduce ist eine Open Source Implementierung des MapReduce Frameworks
Programmiermodell von Google für die Verarbeitung großer Datenmengen in verteilten
Umgebungen
De-facto Standard für die Verarbeitung großer Datenmengen (nicht nur in Hadoop!)
Laufzeit-Framework zur Organisation und Ausführung solcher Verarbeitungen
problem
data
solution
data
10
23.03.2017
MAP
worker node 1
master
node
worker node 2
REDUCE
worker node 3
Big Data – (kl)eine technische Auswahl
Sqoop
Einfaches Tool zum Extrahieren und Laden von Daten zwischen RDBMS und Hadoop
JDBC unde Map-Reduce basiert
Kann ganze Schemata, einzelne Tabellen
und Teile von Tabellen (Filter) verarbeiten
Kann auch inkrementell Daten exportieren
(Date / Timestamp-Spalte)
Erzeugt per Default CSV Dateien auf
Hadoop
$ sqoop import --connect jdbc:mysql://localhost/company \
--username twheeler --password bigsecret \
--warehouse-dir /mydata \
--table customers
11
23.03.2017
Big Data – (kl)eine technische Auswahl
Hive
Apache Hive ist eine SQL-Engine, die MapReduce generiert
Sprache heißt HiveQL
Erzeugt im Hintergrund MapReduce auf dem Hadoop Cluster
Ursprünglich von Facebook für Data Warehousing entwickelt
Heute ein OpenSource Apache Projekt
Der Metadaten-Katalog (Hcatalog oder Hive-Metastore) ist der De-Facto Standard für ein
elationales Data Dictionary in Hadoop und wird auch von zahlreichen anderen Tools
genutzt
SELECT zipcode, SUM(cost) AS total
FROM customers JOIN orders ON customers.cust_id = orders.cust_id
WHERE zipcode LIKE '63%'
GROUP BY zipcode
ORDER BY total DESC;
12
23.03.2017
Big Data – (kl)eine technische Auswahl
Apache Kafka
http://kafka.apache.org/
Entwickelt bei LinkedIn, open-sourced in 2011
In Scala implementiert + ein wenig Java
9 Haupt-Committers, plus ~ 20 Contributors
13
23.03.2017
Big Data – (kl)eine technische Auswahl
Apache Kafka - Performance
Kafka @ LinkedIn => mehr als 1100 Brokers / 60 Clusters
https://engineering.linkedin.com/kafka/running-kafka-scale
800 Milliarden
Messages/Tag
175 TB produzierte Daten/Tag
650 TB konsumierte Daten/Tag
13 Millionen
Messages/ Sekunde
2.75 GB / Sekunde
Peak
http://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines
Kafka Performance im Trivadis Tech-Center => 6 Brokers (VM) / 1 Cluster
• 445 622 Messages / Sekunde
• 31 MB / Sekunde
• 3 ms durchschnittliche Latenz zwischen Producer / Consumer
14
23.03.2017
Big Data – (kl)eine technische Auswahl
Apache
Kafka
Kafka Broker
“Movement” Topic
P0
1
2
3
4
5
P1
1
2
3
4
5
“Engine”-Metrics Topic
P0
1
2
3
4
5
Producer
Movement &
Engine Data
from Trucks
“Movement”
Consumer
Kafka Broker
“Movement” Topic
P0
1
2
3
4
5
P1
1
2
3
4
5
“Engine”-Metrics Topic
P0
15
23.03.2017
1
Big Data – (kl)eine technische Auswahl
2
3
“Movement”
Consumer
4
5
“Engine”
Consumer
Spark (… ist das neue MapReduce)
Libraries
Blink DB
(Approximate
Querying)
Spark SQL
(Batch Processing)
Spark Streaming
(Real-Time)
MLlib, Spark R
(Machine Learning)
GraphX
(Graph Processing)
Core Runtime
Spark Core API and Execution Model
Cluster Resource Managers
Spark
Standalone
16
23.03.2017
MESOS
YARN
Big Data – (kl)eine technische Auswahl
Data Stores
HDFS
Elastic
Search
Cassandra
S3 /
DynamoDB
Spark: RDD, Dataframes, Datasets
Spark Cluster
Skalierbares Arbeiten mit verteilten Daten –
ähnlich MapReduce in Hadoop
Resilient Distributed Datasets (RDDs),
Data Frames, Data Sets
Verarbeitungsparadigment in Spark
Worker Node 1
Cache
Partition 1
Worker Node 2
Cache
HDFS Data
Node
– Sammlung von Objekten, die in einem Cluster im
Hauptspeicher oder Disk gehalten und verarbeitet
werden
– Parallele, funktionale Tranformationen (map, filter, …)
– Automatisches “Rebuild” im Fehlerfall (Knotenausfall)
– Beinhaltet Transformationshistorie ("lineage") für die
zu verarbeitenden Daten
17
23.03.2017
Big Data – (kl)eine technische Auswahl
HDFS Data
Node
Partition 2
Worker Node 3
Cache
Partition 3
HDFS Data
Node
Cassandra - Historie
Bigtable
18
23.03.2017
Big Data – (kl)eine technische Auswahl
Dynamo
Motivation für Cassandra
•
•
•
19
Skalierbarkeit bis weit in den Petabyte
Bereich
Annähernd lineare Performancegewinne durch Zufügen von Knoten
(sofern korrekt eingesetzt)
•
Einstellbare Datenkonsistenz
•
Flexible Schemata (Wide Column)
•
Datenkomprimierung
•
CQL Sprache (ähnlich SQL)
•
Support für zahlreiche Sprachen uind
Plattformen (sehr gute SparkIntegration)
•
Keine spezielle Hard- oder Software
nötig (keine Appliance, kein ClusterOS)
Kein SPOF (single point of failure)
•
Einfache Replikation, einfache
Distribution
•
Cloud- und Multi-Data Center fähig
23.03.2017
Big Data – (kl)eine technische Auswahl
Einsatz über mehrere Datacenter (Regionen-Support)
West
•
•
•
East
Sicherstellen von lokalen Daten
Übergreifende Auswertungen
Hochverfügbarkeit
Node 1
Node 1
Node 2
Node 4
Node 3
20
23.03.2017
Big Data – (kl)eine technische Auswahl
Client
Node 2
Node 4
Node 3
Wer setzt Cassandra ein?
Größter Betrieb mit mehr als 75,000 Cassandra Knoten in mehreren Clustern.
Mehr als 10 Petabytes im größten Cluster (> 1,000 Knoten)
21
23.03.2017
Big Data – (kl)eine technische Auswahl
Apache Drill
Schema-unabhängige, verteilte SQL Query Engine
Ermöglicht kombinierte ANSI SQL Abfragen gegen Hadoop und NoSQL Datenquellen
Gut unterstütztes Open Source Project mit monatlichen Releases
„Drill ist designed to scale to several thousands of nodes and query petabytes of data at
interactive speeds that BI/ Analytics environments require“
22
23.03.2017
Big Data – (kl)eine technische Auswahl
Apache Drill - Technik
Der „Drillbit Service“ wird auf
jedem Knoten im Hadoop Cluster
installiert
Die Services verteilen die
Aufgaben auf viele Knoten
Nutzt Zookeeper für die
Koordination
Aufgaben der Drillbits
– Anfragen annehmen
– Queries ausführen
– Resultate zurückliefern
23
23.03.2017
Big Data – (kl)eine technische Auswahl
Der ELK-Stack: Logstash
Events und Log Management
– Daten sammeln
– Daten parsen
– Daten anreichern
Daten speichern (Suche und Visualisierung)
24
23.03.2017
Big Data – (kl)eine technische Auswahl
Elasticsearch
Lucene
Elasticsearch
Java Class Library für die Suche
Setzt auf Lucene auf
Nicht verteilt lauffähig
Für verteiltes Computing entwickelt
(Scale-Out)
Integration mittels Java
Dateisystembasiert
Skalierung muss ausprogrammiert
werden
"very complicated"
25
23.03.2017
Big Data – (kl)eine technische Auswahl
RESTful HTTP API
HA fähig
Einfaches Handling
RDBMS vs. Elasticsearch
Ein Elastic Search Cluster
beinhaltet viele Indexe
(Datenbanken), die wiederum
viele Typen (Tabellen).
Typen beinhalten mehrere
Dokumente (Records), und
jedes Dokument hat
Properties (Spalten).
26
23.03.2017
RDMBS
Elasticsearch
Databases
Table
Index
Type
Row
Column
Index
Document
Field
everything is indexed
SQL
SELECT
Query DSL
GET http://…
UPDATE
PUT http://…
Big Data – (kl)eine technische Auswahl
Kibana
Kibana ist eine Open
Source Analyse- und
Visualisierungsplattform,
die für die Zusammenarbeit
(suchen, darstellen) mit
Elasticsearch gebaut
wurde
Visualisiert Daten in einer
vielzahl von Charts,
Tabellen und Karten
Einfaches, Browserbasiertes Interface
27
23.03.2017
Big Data – (kl)eine technische Auswahl
Deutsche
ORACLE
Anwendergruppe
28
23.03.2017
Big Data – (kl)eine technische Auswahl
Big Data SQL
Abfragen bspw. Gegen Apache Hive, HDFS, Oracle NoSQL Database oder Apache
HBase [via Hive Metadata]
Gemeinsames Analysieren von Daten aus diversen Datenspeichern ”as if it were all
stored in an Oracle database”
– Die vollständige Oracle SQL Syntax kann genutzt werden (auch AAO etc.)
– Der Zugriff erfolgt via External Tables (wie bei OSCH), unterstützt aber darüber hinaus
„SmartScans“ (bspw. Filter Predicate Offload)
Zwei Varianten sind verfügbar
– Oracle Big Data for Hive (für Hive – und HBase – Konnektivität)
– Oracle Big Data SQL Server (für freien Zugriff mit SmartScan Funktionalität)
Benötigt Installation von Oracle Komponenten auf dem Hadoop Cluster
– Ist praktisch die Cell-Node Funktionalität aus Exadata
29
17.09.2015
Oracle Big Data Connectivity
Big Data SQL – Was passiert da?
1b Ask for Metadata
Oracle Big Data SQL Agent on DB
Local Linux
1d
Oracle Big Data SQL Software on BDA
Hive
Table
Files
Read
Metadata
Hive
Metadata
External
Hive Table
External
HDFS Table
Hadoop
File
Metadata
30
17.09.2015
OBDS
Installed or Generated
Oracle Big Data Connectivity
Existing
Developed
1a
1c
2a
2a
Other
HDFS
Files
Oracle Hive
Data
Dictionary
Ask for
Metadata
Oracle
Create Hive Table
Command
Oracle
Create HDFS
Table Command
with detailed access
parameters
Program
Oracle
Database
1. DDL
2. Query
DB Developer
„Für Umme“: Oracle Database Gateway
Erzeugt Database Links zu anderen Datenbanken (SQL Server, Teradata usw.)
– Gerne kostenintensiv
Kostenfrei ist aber die GENERIC OCBD Variante
– https://community.oracle.com/thread/2292321
Erzeugt einen DB Link via ODBC Treiber bspw. zu Hive
Was ist die Idee?
Oracle Konnektoren meiden die Nutzung anderer SQL Query Engines wie Hive oder
Impala (auch wenn sie gerne die Hive Metadaten verwenden)
Mit ODG tun wir das aber – mit allen Vor- und Nachteilen
31
17.09.2015
Oracle Big Data Connectivity
Database Gateway for ODBC – Architektur
Quelle: Oracle
32
17.09.2015
Oracle Big Data Connectivity
Database Gateway for ODBC – Setup
1. Passenden OBCD Treiber installieren und konfigurieren
2. ODBC Gateway Installieren
3. listener.ora und tnsnames.ora anpassen
4. In ORACLE_HOME\hs\admin neue Datei erzeugen
5. Public Database Link erzeugen
6. … loslegen
33
17.09.2015
Oracle Big Data Connectivity
Oracle Data Integrator – Überblick
Big Data Option (separate Lizenz!)
Native Code Generierung für Pig Latin, Spark (PySpark) und Oozie
Auswahl aus dem traditionellen ODI Agent oder Apache Oozie als OrchestrierungsEngine
WebLogic Hive JDBC Driver
Zahlreiche Direct Load KMs (LKM = Loading Knowledge Modules kombiniert mit anderen
KMs in einem Mapping einsetzbar) bspw. für Sqoop etc.
Oracle Data Integrator Application Adapter for Hadoop
Part of the Oracle Big Data Connectors (uses OLH/OSCH)
There is also a Big Data SQL Integration to ODI
34
17.09.2015
Oracle Big Data Connectivity
Oracle Golden Gate for Big Data – Überblick
Adapted from Oracle
35
17.09.2015
Oracle Big Data Connectivity
Deliver
Route
Pump
Trail
Capture
Oracle Golden Gate
For
Big
Data
Oracle Golden Gate for Big Data – Überblick (2)
Oracle Golden Gate for Big Data
Provides GoldenGate delivery to Flume, HDFS, Hive and HBase
Includes GoldenGate for Java, enabling integration to others such as Oracle NoSQL,
Apache Kafka, Apache Storm, Apache Spark etc.
Key component of Oracle’s big data integration offering along with Oracle Data Integrator
12c
Oracle GoldenGate supports log-based capture from, and delivery to, Oracle, DB2 for
z/OS, i Series, & LUW (Linux, Unix, Windows), SQL Server, MySQL, Informix, Sybase
ASE, SQL/MX, JMS messaging systems and more. Oracle GoldenGate’s delivery
capabilities also include Oracle TimesTen In Memory Database and PostgreSQL, in
addition to Hadoop-based big data systems
36
17.09.2015
Oracle Big Data Connectivity
Fragen?
Peter Welker
[email protected]
37
23.03.2017
Big Data – (kl)eine technische Auswahl
Herunterladen