# BDDM
- hilfsmittel: skript, präsentationen, handschriftlich
- punkte ungefähr gleich wie zeitminuten (5 punkte -> 5min zeit)
- multiple choice aufgabe mit präsentationen (framework aus liste kann auch doppelt oder gar nicht zugeordnet werden)
- map/reduce (pseudocode), mongodb, neo4j etc. als aufgaben
- ansonsten inhaltlich/verstehensfragen
# Data mining
## Definitionen
### Decision Suport System (DSS)
System soll dabei helfen Entscheidungen zu treffen und nicht die Entscheidung abnehmen. Qualtität und Effektivität > Effizienz der Entscheidungen. 01-6
### Business Inteligence (BI)
Der Prozess der Daten in Informationen, Informationen in Wissen und Wissen in konkrete Pläne umzuwandeln. Um business profitabel zu machen. 01-7
### Business Analytics
Nicht nur Vergangeenheit sondern auch Zukunft Vorhersagen (predictive Analytics). Unterstützt Analysen von Endbenutzern. 01-8
### Data Mining
statistische und wissensbasierte Methoden auf ein Datawarehouse anwenden. Um Korrelationen, Patterns und Trends zu finden. 01-9

### Knowledge Discovery in Databases (KDD)
Synonym zu Data Mining. Ziel: Herausfinden von unbekannten technischen Korrelationen von großen Daten Mengen. 01-10
 01-11
### Descriptive Analytics
Was ist passiert? -> erklären
Mit Visualisierung Balken/Torten/Graphen Diagramme. Meißt mit BI. 01-12
### Diagnostic Analytics
Erklären: Warum ist es passiert?
Drill-down, Data discovery, data mining, correlation 01-13
### Predictive Analytics
Erklären: Was wird passieren?
Vorhersage, schnelle analyse, Relevanz für business 01-14
### Prescriptive Analytics
Erklären: Was sollte unternommen werden?
Analysen, Simulationen, Neurale Netzwerke, ML 01-15
### Cross Industry Process for Data Mining (CRISP-DM)
01-16 bis 01-23
**1. Busuness understanding:**
was macht das Unternehmen (was wird Hergestellt)
**2. Data understanding:**
was für Daten werden erhoben (Messwerte, Verkaufszahlen)
**3. Data preperation:**
unformatierte Daten formatieren (semicolons kommas, ...)
**4. Modelling:**
Modell der Daten
**5. Evaluation:**
Bewerten und mot Business understanding Vergleichen
**6. Deployment:**
Wenn Modell gut dann veröffentlichen. Fertig für Analyse
---
# Data Warehouse
01-25 fffffffff
Architektur 01-37
## Ziel
Daten aus allenmöglichen Quellen zusammenfassen und zur Analyse zentral bereitzustellen.
### Eigenschaften der Daten
**Subject-oriented :** Daten sind mit real-world objects verknüpft (Benutzer, Produkt, Bestellung,...)
**Integrated :** Daten kommen von überall und müssen auf gleichen stand gerbacht werden
**Non volatile :** Daten werden **NIE** überschrieben oder gelöscht. Daten sind statisch, read-only und für zukünftige Analyse. Bei Änderungen neuer Snapshot.
**Time-varying :** Änderungen werden Dokumentiert um diese zu Analysieren. 5 bis 10 Jahre Laufzeit.
**OnLine Transaction Processing (OLTP)**
**OnLine Analytic Processing (OLAP)** 01-48 fffff
OLAP Cube. Snapshot an Wochenenden. Speichert Typische Daten.
### Ectract, Transform, Load (ETL)
Im Staging Prozess: Daten fürs Warehouse vorbereiten.
**Extract:** Daten aus verschiedenen Quellen extrahieren. 01-40
**Transform:** Daten auf einen gemeinsammes Format bringen. 01-41
**Load:** DW updaten am Wochenende oder in der Nacht. 01-42
## Speicher Struktur
01-43
**1. Relational RDB**
Gute zum Speichern. Schlecht zum auslesen. Um durchschnitt zu berechnen muss durch alles durhgegangen werden.
**2. Multidimensional MDB**
spaltenorientiertes Abspeichern. Schneller. Besseres umsetzen von OLAP Operationen.
während RDBMS 1000 Einträge durchsuche muss sind es bei der MDB nur 10x10 10-46
## Probleme
- schwierig mit großen Daten
- HW Probleme, da lesen großer Daten BAAAAAAAAALLS Suckt
- DBMS speichert daten auf Festplatten und buffert nur im RAM -> Delay in Queries
# Big Data
## 10 V's
02-8
**1. Volume** Größe der Daten
Terabytes bis Petabytes
**2. Velocity** Daten pro Zeit
25 GB/s, 50k suchen pro Sekunde google
**3. Variety** Datentypen
strukturiert, unstrukturiert, semi-strukturiert
**4. Veracity** Vertrauen in die Daten
Fehler von Menschen. Mehrdeutigkeit, Unklarheit
**5. Variability** Inkonsistenz, Dimensionen
wenn niht beseitigt Behinderung
**6. Validity** Gültigkeit
wie exact und korrekt sind die Daten
**7. Vulnerability** Sicherheits Probleme
Persönliche Daten werden geleakt.
**8. Volatility** Flüchtig
Daten werden irrelevant. Zu viele Daten um Dauerhaft zu speichern. Was will man behalten.
**9. Visualisation**
Komplex
**10. Value** Wert
Bedeutung der Daten. Roh Daten uninteressant.
## Datenquellen
## Strukturiert
**Computer/Maschinen generiert:** Sensoren,Logs,Finanz
**Menschen generiert:** Input, Click-Stream, Gaming
## Unstrukturiert
**Computer/Maschinen generiert:** Satellit, Wissenschaft, Foto/Video, Radar
**Menschen generiert:** Text, Social Media, Website
## Architektur
zu groß für einen Rechner -> verteilte Architektur
abhängigkeiten von Altsystemen, Risikotoleranz, Rahmenbedingungen
Scalability, Reliability, Maintainability, Schreibgeschwindrr 02-25
**Vertikal Skalieren:** bessere Maschinen
**Horizontales Skalieren:** mehr Maschinen
### Arch. Issues
- HW: Ausfall von ganzen Maschinen tollerieren, Redundanz ist nicht die Lösung
- SW: mehrere Programme haben auf einmal Fehler
- Human:
### Maintainability
Operability, Simplicity, Evolvability 02-29fff
### Schichten
02-32
**Layer 0: Redundant Physical Infrastructure**
Performanz, Verfügbarkeit, Skalierbarkeit, Flexibilität, Kosten
**Layer 1: Security Infrastructure**
Daten Zugriff, Application Zugriff, Daten-Verschlüsselung, Bedrohungserkennung
**Layer 2: Operational Database**
Skalierbarkeit, Kinsistenz, Redundanz, Kompatibilität mit Verarbeitung der Daten
**Layer 3: Organizing Data Tools**
Daten: Integrität, Normalisierung, Skalierung, Umwandlung (ETL)
**Layer 4: Data Warehouses and Marts**
Datenverarbeitung und -bereinigung (viele Datenquellen)
**Layer 5: (Big) Data Analytics**
Analyse für Mensch, Dashboards, Visualisierung
**Layer 6: Big Data Applications**
vorteile von Analyse verwenden
Cloud vs own 02-40
## Use Cases of Big Data
- 360° Sicht auf den Kunden
- Betrugserkennung
- Sicherheitsinformationen (Cyberkriminalität)
- Data Warehouse
- Preisoptimierung
- Betriebseffizienz
- Produktvorschläge
- Social Media Analyse
- Predictive / Preventive Maintenance and Support
- IoT
---
# Distributed Data
## Map/Reduce
- Problem in kleiner Tasks aufteilen
- MAP: Daten extrahieren, transformieren und filtern
- Reduce: sortieren, kombinieren und zusammenfassen für das Endergebnis
- Beispiele 03-10 03-24
## Hadoop
- Kollektion von open source Software Pgrogrammen für Big Data
- Massives paralleler verarbeitung von Prozessen
### Basic Arch:
- Hadoop Common: Java libs, Programme, Filesystem, Skripte um Hadoop zu starten
- YARN: Scheduling & cluster Management
- Hadoop Distributed File System (HDFS)
- Hadoop MapReduce: ein map task für jeden block des hdfs
### HDFS
03-39ff
- sehr große Dateien
- write-once read-many-times
- für Commodity hardware: nicht teure, zuverlässige HW
- nicht für low latency -> Hbase
hadoop:
- Schichtung, Datenlokalität
- Hadoop frameworks
---
# Data Distribuiton
## Warum nicht relational?
- teure homogene infrastruktur
- geringe Fehlertoleranz
- Nur für Strukturierte Daten (statc Schema)
- beschränkte Skalierbarkeit (100 nodes)
**mine:**
- Daten müssen normalisiert sein (keine Redundanz)
- joining von Tabellen ist sehr Zeitaufwendig und Komplex
- transaction locking schlecht für Analyse
- Dynamische Änderungen
- unstrukturierte Daten
- schlecht auf Knoten verteilbar
## NoSQL
04-38
- flexible Datenmodell
- horizontales skalieren (linear für lesen und schreiben) Cluster based
- Replikation (04-52)
- flexible Konsistenz
- Sharding: Verschiedene Daten auf verschiedenen Knoten (bessere Performance) 04-45
- Verteilung wird über Hashing gemacht 04-47 -> consistent Hashing 04-48
- sharding und Replikation zusammen 04-56
### acid
04-57
**Atomicity** Atomarität (entweder Erfolg oder Fail)
**Consistency** Konsistenz (immer valider status)
**Isolation** Isolation
**Durability** Haltbarkeit (einmal in der Datenbank immer ...)
### base
04-58
**Basically available**
**Soft state** (Änderungen ohne input)
**Eventually consistent**
RDB: Starke Konsistenz (ACID), schwache skalierbarkeit
NOSQL: Schwache Konsistenz (Base), starke Skalierbarkeit
### cap
Only two at the time 04-60
**Consistency** alle Knoten haben die selben Daten nach einer Transaktion 04-61
**Availability** Akzeptable Latency
**Partition Tolerance** Funktioniert trotz Ausfall von Nachrichten, Knoten oder teilen des Netzwerks
vector clocks 04-66 oder timestamps
# Document DB
- wie key-value store: value ist document
- semi-strukturiert: logische struktur
- spezifisches Datenformat: XML oder JSON
- hierarchische Struktur
- Komplexe queries möglich
- keine komplexen Transactionen
- eingebetteter SPeicher -> Redundanz
# Key-Value DB
- einfach und flexible
- auf Geschwindigkeit ausgelegt
- ähnlich wie ein Wörterbuch
- 07-7
# Grapgh DB
- Foreign Keys sind zu kompley und wartungsaufwendig
- noSQL scheiße für Daten mit starken Verbindungen
- Daten in Knoten und Kanten gespeichert
- Fokus auf Verbindungen zwischen den Datensets
- meist gerichteter Graph
- Knoten und Kanten haben: Labels/Keys/Value mit versch. Datentyp
- Horizontales scaling beim Lesen
- scaling beim Schreiben suckt ballllllsss
# Wide Column Stores
- key-value orientiert, value ist die Reihe
- Reihen können verschiedene Spalten haben
- keine Beziehungen
- top für: große Daten, unstrukturierte Daten, Anwendungen mit häufigen Änderungen
- 08-7
# time series
- einen Wert mehrmals über Zeit messen
- Daten müssen transformiert werden 09-12f
- hoch frequent und großes Volumen
- sehr schnelles einfügen von Daten
- queries über viele Daten
# complex event processing
- viel real-time Data -> automatic processing
- für algorithmisches Handeln, Betrugserkennung, Predictive Maintenance und Vorhersagen
- Filterung von Events: CEP 10-8
### Selection Strategies
Zahl der erkannten Events limitieren:
**Windows** Zeitfenster oder Antahlfenster 10-10
**Sliding windows** Fenster mit bestimmter die sich durch stream bewegen (Thumbling o. Rolling 10-11)
**Landmark windows** Fenster abhängig von Zeitpunkten
**Attribute based windows**
### Event consumption modes
10-12ffff
**Unrestricted consumption mode**
**Recent consumption mode**
**Continuous consumption mode**
**Chronicle consumption mode**
**Regular consumption mode**
**Recent unique consumption mode**
**Cumulative consumption mode**
---
time series data:
- influxdb
# Präsentationen (Apache Frameworks)
## NiFi (Niagara Files)
- skalierbares Framework zur Implementierung und Monitoring riesiger Datenströme.
- Flow Files haben Inhalt (z.B. JSON, HTTP Antwort, SQL Ergebnisse,...) und Attribute (Metadaten)
- FlowFile Processor erstellt, leitet weiter und transformiert FlowFiles
- Kombination aus mehreren Processors stellt Datenflow dar
- benutzt, um Daten aus vielen vers. Datenquellen in vers. Speichermodelle zu verteilen (HDFS, HBase, Kafka,..)
## Drill
- schema-freie SQL Query Engine für Hadoop und NoSQL
- sitzt zwischen Anwender und nicht-relationalen DBs
- nimmt SQL Anfrage entgegen und sucht Daten aus NoSQL DBs zusammen
- für komplexe ad-hoc queries gedacht (für Analysten, BI-Anwendungen)
## SystemML
- Framework für maschinelles Lernen in verteilten Hadoop Clustern
- Sprache 'Declarative Machine Learning' (DML)
- Data Scientist kann direkt auf Hadoop arbeiten ohne Systemprogrammierer dazwischen
- vordefinierte Methoden und direkt in verteiltem System ausführbar
- skalierbar
## Zeppelin
- Wie Jupyter Notebook für Big Data, web-basiert
- Datenerfassung, -exploration, -visualisierung
- verschiedene Sprachen durch vers. Interpreter (Scala, Python, SQL, Markdown,...)
## Phönix
- relationale DB-Engine für Hadoop (HBase als Hintergrundspeicher)
- Performance von HBase
- SQL-Abfragen durchführen und HBase-Tabellen aktualisieren und verwalten
## Kafka
- performantes Echtzeit-Messaging System
- Entkopplung durch Broker und zu abonnierende Topics
- Verwendbar für z.B: Messaging, Benutzeraktivitäten verfolgen, Stream-Verarbeitung, Metriken sammeln
- hoher Durchsatz (Echtzeitverarbeitung), Fehlertoleranz und skalierbar
## Solr
- ernterprise Search Machine
- indexbasierte Suche
## Atlas
- Speicherung aller verfügbaren Metadaten zu einem Big Data Cluster
- Browsen auf vordefinierten Navigationspfaden
- explorative Suche mittels Suchtext
## DeepLearning4J
- Deep Learning auf verteilten Systemen (Java)
- Training, Evaluation & Inferenz verteilt möglich
- lohnt ab 10ms/Iteration pro Batch auf Single Machine
- 3 verschiedene Modis (vollvermascht, plain mode, mesh mode (wie baum))
## Hawq
- native SQL Engine auf Hadoop
- hochparallele Verarbeitung komplexer Anfragen
- ACID garantiert
## Ignite
- In-Memory computing platform
- Caching, verteilte in-memory DB, Berechnungen in Echtzeit
- bestehende Anwendungen durch in-memory beschleunigen
- OLAP, OLTP und Machine Learning unterstützt
## Knox
- REST API Gateway als Reverse Proxy
- Vereinfacht Hadoop-Security-Modell
- Cluster-Verwaltung, Monitoring
- LDAP und andere Authentisierungsmethoden
## Mahout
- Verteiltes Lineare Algebra Framework mit Scala DSL
- verteilte, skalierbare ML Algorithmen (Fokus: Lin. Algeb.)
## Tez
- Datenverarbeitung mit azyklisch gerichteten Graphen (DAG)
- Alternative zu Map/Reduce (bessere Performance)
## Samza
- verteilte Streamverarbeitung in Echtzeit
- Applikationslogik unabhängig von Datenquelle
## Storm
- Echtzeitdatenverarbeitung mit Fokus auf aktuell passierende Ereignisse
- z.B. Trending Twitter hashtags, Verkehrssituation