Fusion der Welten: Hadoop als DWH-Backend bei ProSieben

552 views

Published on

Klassische BI-Tools integrieren mit Big Data-Technologien, wie geht das am geschicktesten?

Wir stellen ein Projekt bei ProSiebenSat.1 vor, in dem wir klassische open-source ETL-Tools zur DWH-Bewirtschaftung mit Hadoop-Werkzeugen mischen. Das relationale DWH wird mit Hadoop-aggregierten Daten aus heterogenen Quellen befüllt.

Wie das alles funktioniert und welche Rolle Hadoop, das DWH, Pig und Hive dabei spielen, möchten wir in diesem Vortrag erklären.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
552
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fusion der Welten: Hadoop als DWH-Backend bei ProSieben

  1. 1. Fusion der Welten: Hadoop als DWH-Backend bei Pro7 Dr. Kathrin Spreyer Big Data Engineer Open Source Business Intelligence Karlsruhe, 20.02.2014
  2. 2. Agenda 1. Relationales DWH 2. Bewirtschaftung mit PDI 3. Unter der Haube: Hadoop 4. Datenimport mit Flume 5. Hive im Fachbereich 2
  3. 3. Architektur 3 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  4. 4. Architektur 3 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  5. 5. Architektur 3 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  6. 6. 4 Relationales DWH
  7. 7. Datenquellen 1. DWH zur Integration von Reichweiten-, Vermarktungserlös- und Transaktionsdaten 5 Online TV Channel ProSiebenSat.1 Network Externe Mandanten .de ProSiebenSat.1 Digital Wesentlicher Treiber der Digitalstrategie
  8. 8. Datenquellen 1. DWH zur Integration von Reichweiten-, Vermarktungserlös- und Transaktionsdaten 6 Online TV Channel ProSiebenSat.1 Network Externe Mandanten .de ProSiebenSat.1 Digital Wesentlicher Treiber der Digitalstrategie
  9. 9. 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:
  10. 10. Datenmodell 8 1. Relationales Datenmodell (Sternschema)
  11. 11. Reporting 1. Momentan viel Excel 2. Im Aufbau: Reporting mit Business Objects 3. Empfänger: BI, Controlling, Management, ... 9
  12. 12. 10 DWH-Bewirtschaftung
  13. 13. DWH-Bewirtschaftung 1. ETL-Tool Pentaho Data Integration (PDI) 1. Datenakquise 2. Validierung / Reinigung / Fehlerbehandlung 3. Aggregation 4. Export ins DWH 11
  14. 14. 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
  15. 15. 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
  16. 16. Pentaho Data Integration 13
  17. 17. Pentaho Data Integration 13 Pentaho MapReduce
  18. 18. 14 Hadoop-Backend
  19. 19. HDFS-Architektur 15 data nodes 03, 05, 08 name node client node data 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) blk1 (03,05,08) blk1(03,05,08) Done! Done! Done! www.inovex.de/trainings/offene-trainings/hadoop-training/
  20. 20. MapReduce-Verarbeitung 1. Aggregation der Rohdaten 2. Transparente Parallelisierung 3. Horizontal skalierbar 16
  21. 21. 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 ) ); } }
  22. 22. 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)
  23. 23. PDI: Main, Mapper und Reducer 18 Driver Mapper Reducer
  24. 24. PDI: Mapper-Transformation 19
  25. 25. Pentaho MapReduce 1. Unterstützt alle PDI-Schritte 2. Weniger effizient als Java MR 3. (Fast) keine Java-Kenntnisse nötig 20
  26. 26. Java MapReduce 1. Native Hadoop-API 2. Unterstützung aller Hadoop-Features 3. Mehr Kontrolle, Optimierungsmöglichkeiten 21
  27. 27. Pig 1. Abstraktion über MapReduce 2. Übersetzung in MapReduce-Jobs 3. Nicht immer effizient 4. Praktisch für (Equi-) Joins 22
  28. 28. 23 Datenimport
  29. 29. 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-Verzeichnisse z.B. nach Zeitstempel 24
  30. 30. 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 25
  31. 31. 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 26
  32. 32. 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 26
  33. 33. 27 Hive im Fachbereich
  34. 34. Apache Hive 1. Bekanntes Interface: SQL 2. Teilweise Nutzung zur Aggregation im Backend 3. Hauptsächlich Eruierung neuer Metriken 4. Untersuchung von Daten-”Anomalien” 28
  35. 35. Beispiel-Query 29 SELECT mandant, day, count(*) FROM webtrekk_cust_para_click_2 WHERE mandant = 'sat1' AND day BETWEEN '2013-01-01' AND '2013-01-31' GROUP BY sid, request_id, times, day, mandant HAVING count(*) >1
  36. 36. Hive-Zugriff auf Rohdaten 30 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  37. 37. Hive-Zugriff auf Rohdaten 30 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  38. 38. Hive-Zugriff auf Rohdaten 30 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  39. 39. Zusammenfassung 31 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  40. 40. Zusammenfassung 31 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  41. 41. Zusammenfassung 31 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  42. 42. Zusammenfassung 31 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  43. 43. Zusammenfassung 31 Lösungsansatz Hybrides System aus relationaler Datenbank und Hadoop Cluster
  44. 44. 32 Werbung
  45. 45. 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/ 33
  46. 46. 34 Fragen?

×