SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Herzlich
willkommen



Stuttgart, den 30. August 2012
Cascading – Top Level Business Intelligence
          Wenn MapReduce zu “Low-Level” ist…

MapReduce – auch ganz ohne Paradigmenwechsel
Cascading – Top Level Business Intelligence
Agenda



  • Wieso denn überhaupt „Big Data“?


  • Wieso brauchen wir dafür MapReduce?


  • Was hat Cascading damit zu tun?


  • Wie funktioniert Cascading?


  • Wie kann ich Cascading in mein BI-System integrieren?
Cascading – Top Level Business Intelligence
                Wieso denn überhaupt “Big Data”?


     Definition: Wodurch zeichnet sich „Big Data“ aus?

 Volumen:                Immense Datenmengen, bedingt durch wachsenden
                          Informationsbedarf (z.B. Event-Sourcing).

 Vielseitigkeit:         Die Zeit strukturierter, heterogener Daten ist vorbei.
                          Unstrukturierte Daten wie Bilder, Videos oder Fließtext
                          halten wertvolle Informationen.

 Geschwindigkeit:        Nutzer erwarten Verarbeitungszeiten im „Quasi-Echtzeit“-
                          Bereich (<HTTP-Latenzzeit).



                                                               Definition frei nach IDC

                                                                                          4
Cascading – Top Level Business Intelligence
        Wieso denn überhaupt “Big Data”?


                 Was haben wir hier?
Walter           • konsistentes Objekt
                 • alle momentanen Attribute gespeichert
                 • klar definierte Struktur sichtbar
 Alter: 25
                 Was passiert im Fall einer Änderung?

Wohnort:
Wimsheim         Beispiel: Walter zieht nach Rutesheim um.
Rutesheim
                  Attribut „Wohnort“ wird mit dem neuen Wert
                 überschrieben
Mag: Äpfel
                     Information über Walters ehemaligen Wohnort
                                    geht verloren!
                                                                   5
Cascading – Top Level Business Intelligence
                          Wieso denn überhaupt “Big Data”?


Was können wir tun, um das zu verhindern?
 Speichern unserer Daten als Transaktionen
                          (Event-Sourcing)
                                                             Walter
User Transactions




                    Walter ist geboren : 25.05.1987            Alter: 25

                    Walter wohnt in Wimsheim:                 Wohnort:
                    25.05.1987                                Rutesheim

                    Walter mag Äpfel: 02.03.2010              Mag: Äpfel

                    Walter wohnt in Rutesheim:                Zeitstempel:
                    07.07.2012                                 30.08.2012

                                                                             6
Cascading – Top Level Business Intelligence
Agenda



  • Wieso denn überhaupt „Big Data“?


  • Wieso brauchen wir dafür MapReduce?


  • Was hat Cascading damit zu tun?


  • Wie funktioniert Cascading?


  • Wie kann ich Cascading in mein BI-System integrieren?
Cascading – Top Level Business Intelligence
               Was ist die Idee hinter MapReduce?


MapReduce kann uns dies liefern…




                                                    Aggregator = count
                      Key = Form

                         Map                                             =2

                                                                         =3

                                                                         =4




                                                                              8
Cascading – Top Level Business Intelligence
Was ist die Idee hinter MapReduce?


    … oder dies.




                                     Aggregator = count
      Key = Farbe

         Map                                              =4

                                                          =3

                                                          =2




                                                               9
Cascading – Top Level Business Intelligence
                                 Wie lässt sich das auf unseren Anwendungsfall übertragen?

                    "Benutzer" : "Walter"                                       "Benutzer" : "Walter"
                    "Aktion" : "geboren"                                        "Aktion" : "geboren"
                    "Zeitstempel": 25.05.1987                                   "Zeitstempel": 25.05.1987
                                                                                "Benutzer" : "Walter"
                    "Benutzer" : "Susanne"                                      "Aktion": "wohnt in"




                                                                      Walter
User transactions



                    "Aktion" : "geboren"                                        "Attribut" : „Wimsheim“
                    "Zeitstempel" : 29.05.1980                                  "Zeitstempel" : 23.05.1987
                    "Benutzer" : "Walter"                                       "Benutzer" : "Walter"
                    "Aktion": "wohnt in"                                        "Aktion" : "mag"
                    "Attribut" : „Wimsheim“                                     "Attribut" : „Äpfel“
                    "Zeitstempel" : 25.05.1987                                  "Zeitstempel" : 02.03.2012
                                                     Key = Benutzer             "Benutzer" : "Walter"
                    "Benutzer" : "Walter"
                                                                                "Aktion" : "wohnt in"
                    "Aktion" : "mag"
                                                                                "Attribut" : „Rutesheim“
                    "Attribut" : „Äpfel“
                    "Zeitstempel" : 02.03.2012           Map                    "Zeitstempel" : 07.07.2012

                    "Benutzer" : "Susanne"                                      "Benutzer" : "Susanne"



                                                                      Susanne
                    "Aktion" : "mag"                                            "Aktion" : "geboren"
                    "Attribut" : „Chicken Nuggets“                              "Zeitstempel" : 29.05.1980
                    "Zeitstempel" : 01.04.2009
                                                                                "Benutzer" : "Susanne"
                    "Benutzer" : "Walter"                                       "Aktion" : "mag"
                    "Aktion" : "wohnt in"                                       "Attribut" : „Chicken Nuggets“
                    "Attribut" : „Rutesheim“                                    "Zeitstempel" : 01.04.2009
                    "Zeitstempel" : 07.07.2012
                                                                                                                 10
Cascading – Top Level Business Intelligence
                      Wie lässt sich das auf unseren Anwendungsfall übertragen?


Sieht aus als bräuchten wir hier mehr als einen Map-Schritt.




                                                       geboren
          "Aktion" : "geboren"
          "Zeitstempel": 25.05.1987                               "Zeitstempel": 25.05.1987

          "Aktion": "wohnt in"
 Walter




          "Attribut" : „Wimsheim“
          "Zeitstempel" : 25.05.1987   Key = Aktion




                                                       mag
                                                                  "Attribut" : „Äpfel“
          "Aktion" : "mag"                Map                     "Zeitstempel" : 02.03.2012
          "Attribut" : „Äpfel“
          "Zeitstempel" : 02.03.2012

          "Aktion" : "wohnt in"                                   "Attribut" : „Wimsheim“

                                                       wohnt in
          "Attribut" : „Rutesheim“                                "Zeitstempel" : 23.05.1987
          "Zeitstempel" : 07.07.2012
                                                                  "Attribut" : „Rutesheim“
                                                                  "Zeitstempel" : 07.07.2012


                                                                                               11
Cascading – Top Level Business Intelligence
                        Wie lässt sich das auf unseren Anwendungsfall übertragen?


Und schließlich das Reduce.
                                                                 Walter
 geboren




             "Zeitstempel": 25.05.1987
                                            Reduce
                                                                     Alter: 25

             "Attribut" : „Äpfel“                                   Wohnt in:
 mag




             "Zeitstempel" : 02.03.2012
                                            Reduce                  Rutesheim

             "Attribut" : „Wimsheim“                                Mag: Äpfel
  wohnt in




             "Zeitstempel" : 25.05.1987

             "Attribut" : „Rutesheim“
             "Zeitstempel" : 07.07.2012     Reduce               Zeitstempel: jetzt


                                                                                      12
Cascading – Top Level Business Intelligence
               Wie lässt sich das auf unseren Anwendungsfall übertragen?


 Das bringt uns ein paar großartige Vorteile!

• Historisierung unserer Daten
     Jeder Status zu einem beliebigen Zeitstempel kann einfach
       wiederhergestellt werden
     Ableitung von Profilen oder Mustern (z.B. Benutzer die oft
       umziehen, Benutzer die häufig bestimmte Produkte kaufen…)


• Hohe Fehlertoleranz
     Triviales Bewegungsdatenmodell
     Operationen aggregieren stets nur vorhandene Daten 
       Datenbestand wird durch fehlerhafte Algorithmen nicht korrumpiert
                                                                           13
Cascading – Top Level Business Intelligence
Agenda



  • Wieso denn überhaupt „Big Data“?


  • Wieso brauchen wir dafür MapReduce?


  • Was hat Cascading damit zu tun?


  • Wie funktioniert Cascading?


  • Wie kann ich Cascading in mein BI-System integrieren?
Cascading – Top Level Business Intelligence
              Eine Einführung in „Cascading“

Was ist Cascading überhaupt?

“Cascading is a data processing API and processing query planner used for
defining, sharing, and executing data-processing workflows on a single
computing node or distributed computing cluster.” – http://www.cascading.org



Die Vorteile sind grundsätzlich:


• Abstraktion und Simplifikation komplexer MapReduce Prozeduren
• Schnellere Implementierung ohne Performanceverlust bei der Ausführung
• Konkatenation beliebiger MapReduce Schritte
• Einfaches Zusammenführen unterschiedlicher heterogener Datenquellen


                                                                               15
Cascading – Top Level Business Intelligence
            Eine typische Big Data Infrastruktur




Cascading ist, wie auch hadoop, ein Werkzeug für Batch-Processing.   16
Cascading – Top Level Business Intelligence
Agenda



  • Wieso denn überhaupt „Big Data“?


  • Wieso brauchen wir dafür MapReduce?


  • Was hat Cascading damit zu tun?


  • Wie funktioniert Cascading?


  • Wie kann ich Cascading in mein BI-System integrieren?
Cascading – Top Level Business Intelligence
              Terminologie

Pipe     Bezeichnet einen Datenstrom. Es gibt verschiedene Pipe-Typen,
         abhängig davon, was wir tun möchten. Mehrere Pipes können in
         einem Assembly zusammengefasst werden.

Operation
        Eine Funktion beim Durchlaufen einer Pipe.

Tuple    Ein einzelner Datensatz.

Fields   Die Felddefinitionen eines Tuples.

Tap      Eine Datenquelle bzw. Datensenke

Scheme Ein Muster, in dem Daten in Taps gelesen bzw. geschrieben werden.

Flow     Eine Konkatenation von Assemblies und Taps.

Mehrere Flows werden schlussendlich in einer Cascade zusammengefasst.
                                                                           18
Cascading – Top Level Business Intelligence
                Eine typische Cascading Job-Architektur

                                   Cascade

                                    Flow
     DB            SourceTap                         SinkTap       DB
  (Source)                                                       (Sink)

                                  Assembly




   Tuples                                                       Tuples
                      Pipe           Pipe           Pipe
   (data)                                                       (data)


Quellstruktur                                                  Zielstruktur
                                                                              19
Cascading – Top Level Business Intelligence
              Verschiedene Taps

Cascading hat eine Reihe nützlicher vordefinierter Taps. Einige Beispiele:

FileTap           Liest/Schreibt ins lokale Dateisystem.

Hfs               Liest/Schreibt ins in der Hadoop-Konfiguration angegebene
                  default-Dateisystem (bei lokalem Textmodus: Lokales DS).

MultiSourceTap bzw. MultiSinkTap
                 Zum parallelen Lesen/Schreiben von Datensätzen aus
                 mehreren Datenquellen. Beim Lesen muss für alle
                 Datenquellen das Scheme übereinstimmen.

TemplateTap       Schreibt den Output abhängig von Werten innerhalb eines
                  Tuples in entsprechende Verzeichnisse.

Nichtsdestotrotz kann bei anderen Datenquellen auch leicht ein eigener Tap
implementiert werden.
                                                                              20
Cascading – Top Level Business Intelligence
                Verschiedene Tap-Schemata

Ein Scheme gibt die Art und Weise an, wie Daten in einen Tap geschrieben
werden. Bei einer eigenen Tap-Implementierung muss also meist auch ein
eigenes Scheme definiert werden. Ein paar Basis-Schemes bringt Cascading
von Haus aus mit:

TextLine           Ein einfacher Tap zum Lesen und Schreiben von
                   Fließtextdateien. Beim Schreiben werden mehrere Fields-
                   Elemente mit TABs unterteilt.

TextDelimited      Teilt mehrere Fields-Elemente mittels definiertem Separator.

SequenceFile       Zum binär codierten Schreiben/Lesen von Dateien.

WritableSequenceFile
                Ähnlich dem SequenceFile, aber speziell für sogenannte
                Writables entworfen, d.h. Fields-Elemente werden beim
                Schreiben direkt in die Datei serialisiert, bzw. beim Lesen
                deserialisiert und in Tuples verpackt.
                                                                                  21
Cascading – Top Level Business Intelligence
           Die verschiedenen Pipe-Typen

Each          Führt Operationen auf Tuple-Basis durch. Neben standardi-
              sierten Operatoren können auch eigene Varianten imple-
              mentiert oder der Datenstrom geteilt werden.

Merge         Kann Datenströme mit identischen Fields zusammenführen.

GroupBy       Gruppiert Tuples anhand von über Fields definierten
              Kriterien.

Every         Führt Operationen oder Aggregationen auf Basis von
              gruppierten Tuple-Streams aus. Folgt typischerweise einer
              GroupBy-Pipe.

CoJoin        Führt ein Join anhand eines oder mehrerer Schlüsselfelder
              durch und gruppiert die Resultate anhand des Keys.

HashJoin      Führt ein Join anhand eines oder mehrerer Schlüsselfelder
              durch und gibt die Resultate in beliebiger Reihenfolge aus.
                                                                            22
Cascading – Top Level Business Intelligence
Agenda



  • Wieso denn überhaupt „Big Data“?


  • Wieso brauchen wir dafür MapReduce?


  • Was hat Cascading damit zu tun?


  • Wie funktioniert Cascading?


  • Wie kann ich Cascading in mein BI-System integrieren?
Cascading – Top Level Business Intelligence
             Wie integriere ich Cascading in meine Infrastruktur?

Cascading ist nur eine API die auf hadoop aufsetzt. Cascading-Jobs werden
wie hadoop-Jobs deployed und ausgeführt.




                                                     Quelle: http://www.cascading.org

                                                                                        24
Cascading – Top Level Business Intelligence
             Wie kann ich meine Jobs entwerfen?

Zur Implementierung von Cascading-Prozeduren gibt es diverse APIs.




                                                    Quelle: http://www.cascading.org

                                                                                       25
Cascading – Top Level Business Intelligence
              Literaturempfehlungen

Cascading Dokumentation

User Guide
http://docs.cascading.org/cascading/2.0/userguide/html/

Cascading for the impatient
http://www.cascading.org/2012/07/02/cascading-for-the-impatient-part-1/
http://www.cascading.org/2012/07/09/cascading-for-the-impatient-part-2/
http://www.cascading.org/2012/07/17/cascading-for-the-impatient-part-3/
http://www.cascading.org/2012/07/24/cascading-for-the-impatient-part-4/
http://www.cascading.org/2012/07/31/cascading-for-the-impatient-part-5/
http://www.cascading.org/2012/08/07/cascading-for-the-impatient-part-6/




                                                                          26
Cascading – Top Level Business Intelligence
                                             Schlussendlich

          Für Fragen stehen wir Ihnen selbstverständlich zur Verfügung.



          Jörg Schmidt
          WidasConcepts GmbH
          joerg.schmidt@widas.de


          Dirk Bangel
          WidasConcepts GmbH
          dirk.bangel@widas.de




This presentation was created by the Big Data User Group Stuttgart. Distribution, citation, copying - completely or in extracts – for transfer purposes, is only permitted with prior written agreement. These
abstracts and graphics were deployed by Big Data User Group Stuttgart within the scope of a presentation; it is no complete documentation of this event.                                                         27

Mais conteúdo relacionado

Destaque

Werning, Die oekonomische Durchdringung der digitalen (Medien-)Kultur
Werning, Die oekonomische Durchdringung der digitalen (Medien-)KulturWerning, Die oekonomische Durchdringung der digitalen (Medien-)Kultur
Werning, Die oekonomische Durchdringung der digitalen (Medien-)KulturStefan Werning
 
Presentación logistica
Presentación logisticaPresentación logistica
Presentación logisticaStamar Project
 
Iteraciones o looping –
Iteraciones o looping –Iteraciones o looping –
Iteraciones o looping –baqueromorenoj
 
Daysi Chiriboga productos de Microsoft
Daysi Chiriboga productos de Microsoft Daysi Chiriboga productos de Microsoft
Daysi Chiriboga productos de Microsoft Days778254
 
Manual de Excel
Manual de ExcelManual de Excel
Manual de ExcelGian0796
 
Herramientas para crear y compartir
Herramientas para crear y compartir Herramientas para crear y compartir
Herramientas para crear y compartir GeovannyYungan
 
Anteproyecto final skate
Anteproyecto final skateAnteproyecto final skate
Anteproyecto final skateBryam Cabrera
 
Vanessa singaña excel
Vanessa singaña excelVanessa singaña excel
Vanessa singaña excelvane01si
 
Silavo educativo
Silavo educativoSilavo educativo
Silavo educativoAlina D-Cn
 

Destaque (17)

Eleccions
EleccionsEleccions
Eleccions
 
Plan buen vivir
Plan buen vivir Plan buen vivir
Plan buen vivir
 
Werning, Die oekonomische Durchdringung der digitalen (Medien-)Kultur
Werning, Die oekonomische Durchdringung der digitalen (Medien-)KulturWerning, Die oekonomische Durchdringung der digitalen (Medien-)Kultur
Werning, Die oekonomische Durchdringung der digitalen (Medien-)Kultur
 
Examen
Examen Examen
Examen
 
Zertifizierungen 1
Zertifizierungen 1Zertifizierungen 1
Zertifizierungen 1
 
Propuesta
Propuesta Propuesta
Propuesta
 
Presentación logistica
Presentación logisticaPresentación logistica
Presentación logistica
 
Iteraciones o looping –
Iteraciones o looping –Iteraciones o looping –
Iteraciones o looping –
 
Daysi Chiriboga productos de Microsoft
Daysi Chiriboga productos de Microsoft Daysi Chiriboga productos de Microsoft
Daysi Chiriboga productos de Microsoft
 
Manual de Excel
Manual de ExcelManual de Excel
Manual de Excel
 
3
33
3
 
Herramientas para crear y compartir
Herramientas para crear y compartir Herramientas para crear y compartir
Herramientas para crear y compartir
 
Gat1
Gat1Gat1
Gat1
 
Anteproyecto final skate
Anteproyecto final skateAnteproyecto final skate
Anteproyecto final skate
 
Vanessa singaña excel
Vanessa singaña excelVanessa singaña excel
Vanessa singaña excel
 
Silavo educativo
Silavo educativoSilavo educativo
Silavo educativo
 
Lisseth medina
Lisseth medinaLisseth medina
Lisseth medina
 

Cascading Big Data User Group

  • 2. Cascading – Top Level Business Intelligence Wenn MapReduce zu “Low-Level” ist… MapReduce – auch ganz ohne Paradigmenwechsel
  • 3. Cascading – Top Level Business Intelligence Agenda • Wieso denn überhaupt „Big Data“? • Wieso brauchen wir dafür MapReduce? • Was hat Cascading damit zu tun? • Wie funktioniert Cascading? • Wie kann ich Cascading in mein BI-System integrieren?
  • 4. Cascading – Top Level Business Intelligence Wieso denn überhaupt “Big Data”? Definition: Wodurch zeichnet sich „Big Data“ aus?  Volumen: Immense Datenmengen, bedingt durch wachsenden Informationsbedarf (z.B. Event-Sourcing).  Vielseitigkeit: Die Zeit strukturierter, heterogener Daten ist vorbei. Unstrukturierte Daten wie Bilder, Videos oder Fließtext halten wertvolle Informationen.  Geschwindigkeit: Nutzer erwarten Verarbeitungszeiten im „Quasi-Echtzeit“- Bereich (<HTTP-Latenzzeit). Definition frei nach IDC 4
  • 5. Cascading – Top Level Business Intelligence Wieso denn überhaupt “Big Data”? Was haben wir hier? Walter • konsistentes Objekt • alle momentanen Attribute gespeichert • klar definierte Struktur sichtbar Alter: 25 Was passiert im Fall einer Änderung? Wohnort: Wimsheim Beispiel: Walter zieht nach Rutesheim um. Rutesheim  Attribut „Wohnort“ wird mit dem neuen Wert überschrieben Mag: Äpfel Information über Walters ehemaligen Wohnort geht verloren! 5
  • 6. Cascading – Top Level Business Intelligence Wieso denn überhaupt “Big Data”? Was können wir tun, um das zu verhindern?  Speichern unserer Daten als Transaktionen (Event-Sourcing) Walter User Transactions Walter ist geboren : 25.05.1987 Alter: 25 Walter wohnt in Wimsheim: Wohnort: 25.05.1987 Rutesheim Walter mag Äpfel: 02.03.2010 Mag: Äpfel Walter wohnt in Rutesheim: Zeitstempel: 07.07.2012 30.08.2012 6
  • 7. Cascading – Top Level Business Intelligence Agenda • Wieso denn überhaupt „Big Data“? • Wieso brauchen wir dafür MapReduce? • Was hat Cascading damit zu tun? • Wie funktioniert Cascading? • Wie kann ich Cascading in mein BI-System integrieren?
  • 8. Cascading – Top Level Business Intelligence Was ist die Idee hinter MapReduce? MapReduce kann uns dies liefern… Aggregator = count Key = Form Map =2 =3 =4 8
  • 9. Cascading – Top Level Business Intelligence Was ist die Idee hinter MapReduce? … oder dies. Aggregator = count Key = Farbe Map =4 =3 =2 9
  • 10. Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen? "Benutzer" : "Walter" "Benutzer" : "Walter" "Aktion" : "geboren" "Aktion" : "geboren" "Zeitstempel": 25.05.1987 "Zeitstempel": 25.05.1987 "Benutzer" : "Walter" "Benutzer" : "Susanne" "Aktion": "wohnt in" Walter User transactions "Aktion" : "geboren" "Attribut" : „Wimsheim“ "Zeitstempel" : 29.05.1980 "Zeitstempel" : 23.05.1987 "Benutzer" : "Walter" "Benutzer" : "Walter" "Aktion": "wohnt in" "Aktion" : "mag" "Attribut" : „Wimsheim“ "Attribut" : „Äpfel“ "Zeitstempel" : 25.05.1987 "Zeitstempel" : 02.03.2012 Key = Benutzer "Benutzer" : "Walter" "Benutzer" : "Walter" "Aktion" : "wohnt in" "Aktion" : "mag" "Attribut" : „Rutesheim“ "Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012 Map "Zeitstempel" : 07.07.2012 "Benutzer" : "Susanne" "Benutzer" : "Susanne" Susanne "Aktion" : "mag" "Aktion" : "geboren" "Attribut" : „Chicken Nuggets“ "Zeitstempel" : 29.05.1980 "Zeitstempel" : 01.04.2009 "Benutzer" : "Susanne" "Benutzer" : "Walter" "Aktion" : "mag" "Aktion" : "wohnt in" "Attribut" : „Chicken Nuggets“ "Attribut" : „Rutesheim“ "Zeitstempel" : 01.04.2009 "Zeitstempel" : 07.07.2012 10
  • 11. Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen? Sieht aus als bräuchten wir hier mehr als einen Map-Schritt. geboren "Aktion" : "geboren" "Zeitstempel": 25.05.1987 "Zeitstempel": 25.05.1987 "Aktion": "wohnt in" Walter "Attribut" : „Wimsheim“ "Zeitstempel" : 25.05.1987 Key = Aktion mag "Attribut" : „Äpfel“ "Aktion" : "mag" Map "Zeitstempel" : 02.03.2012 "Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012 "Aktion" : "wohnt in" "Attribut" : „Wimsheim“ wohnt in "Attribut" : „Rutesheim“ "Zeitstempel" : 23.05.1987 "Zeitstempel" : 07.07.2012 "Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012 11
  • 12. Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen? Und schließlich das Reduce. Walter geboren "Zeitstempel": 25.05.1987 Reduce Alter: 25 "Attribut" : „Äpfel“ Wohnt in: mag "Zeitstempel" : 02.03.2012 Reduce Rutesheim "Attribut" : „Wimsheim“ Mag: Äpfel wohnt in "Zeitstempel" : 25.05.1987 "Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012 Reduce Zeitstempel: jetzt 12
  • 13. Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen? Das bringt uns ein paar großartige Vorteile! • Historisierung unserer Daten  Jeder Status zu einem beliebigen Zeitstempel kann einfach wiederhergestellt werden  Ableitung von Profilen oder Mustern (z.B. Benutzer die oft umziehen, Benutzer die häufig bestimmte Produkte kaufen…) • Hohe Fehlertoleranz  Triviales Bewegungsdatenmodell  Operationen aggregieren stets nur vorhandene Daten  Datenbestand wird durch fehlerhafte Algorithmen nicht korrumpiert 13
  • 14. Cascading – Top Level Business Intelligence Agenda • Wieso denn überhaupt „Big Data“? • Wieso brauchen wir dafür MapReduce? • Was hat Cascading damit zu tun? • Wie funktioniert Cascading? • Wie kann ich Cascading in mein BI-System integrieren?
  • 15. Cascading – Top Level Business Intelligence Eine Einführung in „Cascading“ Was ist Cascading überhaupt? “Cascading is a data processing API and processing query planner used for defining, sharing, and executing data-processing workflows on a single computing node or distributed computing cluster.” – http://www.cascading.org Die Vorteile sind grundsätzlich: • Abstraktion und Simplifikation komplexer MapReduce Prozeduren • Schnellere Implementierung ohne Performanceverlust bei der Ausführung • Konkatenation beliebiger MapReduce Schritte • Einfaches Zusammenführen unterschiedlicher heterogener Datenquellen 15
  • 16. Cascading – Top Level Business Intelligence Eine typische Big Data Infrastruktur Cascading ist, wie auch hadoop, ein Werkzeug für Batch-Processing. 16
  • 17. Cascading – Top Level Business Intelligence Agenda • Wieso denn überhaupt „Big Data“? • Wieso brauchen wir dafür MapReduce? • Was hat Cascading damit zu tun? • Wie funktioniert Cascading? • Wie kann ich Cascading in mein BI-System integrieren?
  • 18. Cascading – Top Level Business Intelligence Terminologie Pipe Bezeichnet einen Datenstrom. Es gibt verschiedene Pipe-Typen, abhängig davon, was wir tun möchten. Mehrere Pipes können in einem Assembly zusammengefasst werden. Operation Eine Funktion beim Durchlaufen einer Pipe. Tuple Ein einzelner Datensatz. Fields Die Felddefinitionen eines Tuples. Tap Eine Datenquelle bzw. Datensenke Scheme Ein Muster, in dem Daten in Taps gelesen bzw. geschrieben werden. Flow Eine Konkatenation von Assemblies und Taps. Mehrere Flows werden schlussendlich in einer Cascade zusammengefasst. 18
  • 19. Cascading – Top Level Business Intelligence Eine typische Cascading Job-Architektur Cascade Flow DB SourceTap SinkTap DB (Source) (Sink) Assembly Tuples Tuples Pipe Pipe Pipe (data) (data) Quellstruktur Zielstruktur 19
  • 20. Cascading – Top Level Business Intelligence Verschiedene Taps Cascading hat eine Reihe nützlicher vordefinierter Taps. Einige Beispiele: FileTap Liest/Schreibt ins lokale Dateisystem. Hfs Liest/Schreibt ins in der Hadoop-Konfiguration angegebene default-Dateisystem (bei lokalem Textmodus: Lokales DS). MultiSourceTap bzw. MultiSinkTap Zum parallelen Lesen/Schreiben von Datensätzen aus mehreren Datenquellen. Beim Lesen muss für alle Datenquellen das Scheme übereinstimmen. TemplateTap Schreibt den Output abhängig von Werten innerhalb eines Tuples in entsprechende Verzeichnisse. Nichtsdestotrotz kann bei anderen Datenquellen auch leicht ein eigener Tap implementiert werden. 20
  • 21. Cascading – Top Level Business Intelligence Verschiedene Tap-Schemata Ein Scheme gibt die Art und Weise an, wie Daten in einen Tap geschrieben werden. Bei einer eigenen Tap-Implementierung muss also meist auch ein eigenes Scheme definiert werden. Ein paar Basis-Schemes bringt Cascading von Haus aus mit: TextLine Ein einfacher Tap zum Lesen und Schreiben von Fließtextdateien. Beim Schreiben werden mehrere Fields- Elemente mit TABs unterteilt. TextDelimited Teilt mehrere Fields-Elemente mittels definiertem Separator. SequenceFile Zum binär codierten Schreiben/Lesen von Dateien. WritableSequenceFile Ähnlich dem SequenceFile, aber speziell für sogenannte Writables entworfen, d.h. Fields-Elemente werden beim Schreiben direkt in die Datei serialisiert, bzw. beim Lesen deserialisiert und in Tuples verpackt. 21
  • 22. Cascading – Top Level Business Intelligence Die verschiedenen Pipe-Typen Each Führt Operationen auf Tuple-Basis durch. Neben standardi- sierten Operatoren können auch eigene Varianten imple- mentiert oder der Datenstrom geteilt werden. Merge Kann Datenströme mit identischen Fields zusammenführen. GroupBy Gruppiert Tuples anhand von über Fields definierten Kriterien. Every Führt Operationen oder Aggregationen auf Basis von gruppierten Tuple-Streams aus. Folgt typischerweise einer GroupBy-Pipe. CoJoin Führt ein Join anhand eines oder mehrerer Schlüsselfelder durch und gruppiert die Resultate anhand des Keys. HashJoin Führt ein Join anhand eines oder mehrerer Schlüsselfelder durch und gibt die Resultate in beliebiger Reihenfolge aus. 22
  • 23. Cascading – Top Level Business Intelligence Agenda • Wieso denn überhaupt „Big Data“? • Wieso brauchen wir dafür MapReduce? • Was hat Cascading damit zu tun? • Wie funktioniert Cascading? • Wie kann ich Cascading in mein BI-System integrieren?
  • 24. Cascading – Top Level Business Intelligence Wie integriere ich Cascading in meine Infrastruktur? Cascading ist nur eine API die auf hadoop aufsetzt. Cascading-Jobs werden wie hadoop-Jobs deployed und ausgeführt. Quelle: http://www.cascading.org 24
  • 25. Cascading – Top Level Business Intelligence Wie kann ich meine Jobs entwerfen? Zur Implementierung von Cascading-Prozeduren gibt es diverse APIs. Quelle: http://www.cascading.org 25
  • 26. Cascading – Top Level Business Intelligence Literaturempfehlungen Cascading Dokumentation User Guide http://docs.cascading.org/cascading/2.0/userguide/html/ Cascading for the impatient http://www.cascading.org/2012/07/02/cascading-for-the-impatient-part-1/ http://www.cascading.org/2012/07/09/cascading-for-the-impatient-part-2/ http://www.cascading.org/2012/07/17/cascading-for-the-impatient-part-3/ http://www.cascading.org/2012/07/24/cascading-for-the-impatient-part-4/ http://www.cascading.org/2012/07/31/cascading-for-the-impatient-part-5/ http://www.cascading.org/2012/08/07/cascading-for-the-impatient-part-6/ 26
  • 27. Cascading – Top Level Business Intelligence Schlussendlich Für Fragen stehen wir Ihnen selbstverständlich zur Verfügung. Jörg Schmidt WidasConcepts GmbH joerg.schmidt@widas.de Dirk Bangel WidasConcepts GmbH dirk.bangel@widas.de This presentation was created by the Big Data User Group Stuttgart. Distribution, citation, copying - completely or in extracts – for transfer purposes, is only permitted with prior written agreement. These abstracts and graphics were deployed by Big Data User Group Stuttgart within the scope of a presentation; it is no complete documentation of this event. 27