---
# System prepended metadata

title: BDDM

---

# 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
![](https://i.imgur.com/nrRwXUh.png)

### Knowledge Discovery in Databases (KDD)
Synonym zu Data Mining. Ziel: Herausfinden von unbekannten technischen Korrelationen von großen Daten Mengen. 01-10


![](https://i.imgur.com/jeAw30A.png) 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