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