47
Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe, 20.02.2014

Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Fusion der Welten:Hadoop als DWH-Backend bei Pro7

Dr. Kathrin SpreyerBig Data Engineer

Open Source Business IntelligenceKarlsruhe, 20.02.2014

Page 2: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Agenda

1. Relationales DWH

2. Bewirtschaftung mit PDI

3. Unter der Haube: Hadoop

4. Datenimport mit Flume

5. Hive im Fachbereich

2

Page 3: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Architektur

3

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 4: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Architektur

3

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 5: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Architektur

3

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 6: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

4

Relationales DWH

Page 7: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenquellen

1. DWH zur Integration von Reichweiten-, Vermarktungserlös- und Transaktionsdaten

5

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 14

Online TV Channel ProSiebenSat.1 Network Externe Mandanten

.de

ProSiebenSat.1 Digital Wesentlicher Treiber der Digitalstrategie

Page 8: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenquellen

1. DWH zur Integration von Reichweiten-, Vermarktungserlös- und Transaktionsdaten

6

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 14

Online TV Channel ProSiebenSat.1 Network Externe Mandanten

.de

ProSiebenSat.1 Digital Wesentlicher Treiber der Digitalstrategie

Page 9: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenquellen

1. MyVideo Apache Logs VV, VT, Ads, Player-Fehler, ..

2. Webtrekk VV, VT, Ads

3. DfP (Adserver) Ads

4. Google Analytics VV, PI, Visits, Visitors

5. Soziale Netzwerke Posts, Comments, Likes

6. Conviva Bitrate, Video startup time, ..

7. ....7

Metriken:

Page 10: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenmodell

8

1. Relationales Datenmodell (Sternschema)

Page 11: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Reporting

1. Momentan viel Excel

2. Im Aufbau: Reporting mit Business Objects

3. Empfänger: BI, Controlling, Management, ...

9

Page 12: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

10

DWH-Bewirtschaftung

Page 13: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

DWH-Bewirtschaftung

1. ETL-Tool Pentaho Data Integration (PDI)

1. Datenakquise

2. Validierung / Reinigung / Fehlerbehandlung

3. Aggregation

4. Export ins DWH

11

Page 14: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

DWH-Bewirtschaftung

1. Konnektoren zu gängigen Daten-/Speicherformaten

1. Dateien: CSV, JSON, XML, ...

2. RDBMS: 40+ connection types

3. Big data: HDFS, Cassandra, HBase, MongoDB, ...

12

Page 15: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

DWH-Bewirtschaftung

1. Konnektoren zu gängigen Daten-/Speicherformaten

1. Dateien: CSV, JSON, XML, ...

2. RDBMS: 40+ connection types

3. Big data: HDFS, Cassandra, HBase, MongoDB, ...

12

Page 16: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Pentaho Data Integration

13

Page 17: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Pentaho Data Integration

13

Pentaho MapReduce

Page 18: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

14

Hadoop-Backend

Page 19: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

HDFS-Architektur

15

data nodes 03, 05, 08

name node

client nodedata node 01

data node 02

data node 03

data node 04

data node 05

data node 06

data node 07

data node 08

data node 09

data node 10

data node 11

data node 12

rack 1 rack 2 rack 3

blk 2 blk 3 blk 4blk 1

Where do I store block 1?

blk 1 (03, 05, 08)

blk 1

(03,

05, 0

8)

blk 1(03, 05, 08)

Done!

Done!

Done!

www.inovex.de/trainings/offene-trainings/hadoop-training/

Page 20: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

MapReduce-Verarbeitung

1. Aggregation der Rohdaten

2. Transparente Parallelisierung

3. Horizontal skalierbar

16

Page 21: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Java: Mapper und Reducer

17

public class WebtrekkEventMapper extends Mapper<Text, Text, Text, IntWritable> {

@Override protected void map( Text key, Text value, Context context ) ! throws IOException, InterruptedException {! // key contains entire record! String[] fields = key.toString().split( ";" );! // extract relevant information! String eventname = fields[12];! // emit output key and count! context.write( new Text( eventname ), ! ! new IntWritable( 1 )); }}

public class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {! @Override protected void reduce( Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException {! int sum = 0;! for ( IntWritable partialCount : values ) {! sum += partialCount.get();! }! context.write( key, new IntWritable( sum ) ); }}

Page 22: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Java: Mapper und Reducer

17

public class WebtrekkEventMapper extends Mapper<Text, Text, Text, IntWritable> {

@Override protected void map( Text key, Text value, Context context ) ! throws IOException, InterruptedException {! // key contains entire record! String[] fields = key.toString().split( ";" );! // extract relevant information! String eventname = fields[12];! // emit output key and count! context.write( new Text( eventname ), ! ! new IntWritable( 1 )); }}

public class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {! @Override protected void reduce( Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException {! int sum = 0;! for ( IntWritable partialCount : values ) {! sum += partialCount.get();! }! context.write( key, new IntWritable( sum ) ); }}

Mapper

Reducer

(+Driver)

Page 23: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

PDI: Main, Mapper und Reducer

18

Driver

Mapper

Reducer

Page 24: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

PDI: Mapper-Transformation

19

Page 25: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Pentaho MapReduce

1. Unterstützt alle PDI-Schritte

2. Weniger effizient als Java MR

3. (Fast) keine Java-Kenntnisse nötig

20

Page 26: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Java MapReduce

1. Native Hadoop-API

2. Unterstützung aller Hadoop-Features

3. Mehr Kontrolle, Optimierungsmöglichkeiten

21

Page 27: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Pig

1. Abstraktion über MapReduce

2. Übersetzung in MapReduce-Jobs

3. Nicht immer effizient

4. Praktisch für (Equi-) Joins

22

Page 28: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

23

Datenimport

Page 29: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenimport mit Flume

1. Import via FTP-Server: Daten erst nach 24 Stunden im DWH

2. Apache Flume: kontinuierlicher Datenstrom

3. Automatische “Einsortierung” in HDFS-Verzeichnissez.B. nach Zeitstempel

24

Page 30: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenimport mit Flume

1. Simulation v. Datenströmen: spooling directory

2. Sonst TCP (netcat)

3. Bisher Single-Tier-Architektur

25

Page 31: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Datenvolumen

1. via Flume: jährlich 20 TB (netto)

2. via FTP: jährlich 21.5 TB (netto)

3. Archivierung: jährlich 500 GB (netto)

4. insgesamt: 40 TB (120 TB) pro Jahr

26

Page 32: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Clustergröße

1. dev: 4 DN + NN + SN + DB + Admin

2. prod: 6 DN + NN + SN + DB + 2 Admin

3. HDFS-Kapazität: 185 TB (brutto)

4. skalierbar

27

Page 33: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Clustergröße

1. dev: 4 DN + NN + SN + DB + Admin

2. prod: 6 DN + NN + SN + DB + 2 Admin

3. HDFS-Kapazität: 185 TB (brutto)

4. skalierbar

27

Page 34: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

28

Hive im Fachbereich

Page 35: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Apache Hive

1. Bekanntes Interface: SQL

2. Teilweise Nutzung zur Aggregation im Backend

3. Hauptsächlich Eruierung neuer Metriken

4. Untersuchung von Daten-”Anomalien”

29

Page 36: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Beispiel-Query

30

SELECT mandant, day, count(*)FROM webtrekk_cust_para_click_2WHERE mandant = 'sat1' AND day BETWEEN '2013-01-01' AND '2013-01-31'GROUP BY sid, request_id, times, day, mandant HAVING count(*) >1

Page 37: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Hive-Zugriff auf Rohdaten

31

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 38: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Hive-Zugriff auf Rohdaten

31

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 39: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Hive-Zugriff auf Rohdaten

31

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 40: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Zusammenfassung

32

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 41: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Zusammenfassung

32

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 42: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Zusammenfassung

32

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 43: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Zusammenfassung

32

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 44: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

Zusammenfassung

32

| 20. März 2013 | ProSiebenSat.1 Digital GmbH | Business Intelligence | Jürgen Popp Page 18

Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster

Page 45: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

33

Werbung

Page 46: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

inovex Academy

1. U.a. Hadoop-Entwickler-Training

2. 1-3 Tage

3. Inhouse oder offen

4. Offenes Trainings 2014:

18.-20. März (Köln)24.-26. Juni (München)18.-20. November (Karlsruhe)

www.inovex.de/trainings/offene-trainings/hadoop-training/

34

Page 47: Fusion der Welten: Hadoop als DWH-Backend bei Pro7 · Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe,

35

Fragen?