Skip to content

Commit 780cde6

Browse files
committed
chore: Add documentation on dta pipelines.
1 parent 39609ad commit 780cde6

File tree

1 file changed

+108
-0
lines changed
  • documentation/07-daten/02-datenfluesse-optimieren

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# Datenflüsse optimieren
2+
3+
- OLTP vs OLAP
4+
- OLTP: Normalisierung, Write-Heavy, Millisekunden
5+
- OLAP: Denormalisierung, Read-Heavy, Sekunden
6+
- OLTP-OLAP-Gap
7+
- Data-Pipeline
8+
- Verbindung von OLTP zu OLAP, inklusive Transformation
9+
10+
- Klassische Data-Pipeline
11+
- Daten aus OLTP laden, transformieren, Daten in OLAP speichern
12+
- Extract, Transform, Load (ETL, 1990er und 2000er)
13+
- Transform als Nightly-Job wegen hohem Aufwand
14+
- Fehlender Flexibilität
15+
- Veraltete Daten im OLAP-System, OLAP nur zeitweise verfügbar
16+
- Extract, Load, Transform (ELT, ab ~2005/2010)
17+
- Bei ELT werden die Roh-(!)-Daten in OLAP gespeichert
18+
- Geht einher mit dem Wechsel von Data Warehouse zu Data Lake, nur möglich dank elastischer Skalierbarkeit in der Cloud
19+
- Ad-Hoc-Ergebnisse auf (halbwegs) aktuellen Daten
20+
- Weitaus höhere Flexibilität dank Rohdaten
21+
22+
- ETL vs ELT – was wann?
23+
- ETL
24+
- Für sensitive, sensible Daten
25+
- On-Premise-Warehouse mit begrenzten Ressourcen
26+
- Komplexe Logik, die nicht ad-hoc ausgeführt werden soll
27+
- ELT
28+
- Standard für Cloud-basierte Data Warehouses
29+
- Wenn Rohdaten-Speicherung erlaubt ist
30+
- Wenn Flexibilität wichtiger ist als Dauer der Abfrage und als Speicherplatz
31+
- ElT
32+
- Best-of-both-worlds
33+
- Leichtgewichtige Transformation vor dem Load
34+
- Die eigentliche Transformation nach dem Load
35+
- Für mehr Flexibilität, aber Schutz von sensitiven Daten
36+
37+
- Daten-Pipeline-Architektur
38+
- Aufbau
39+
- Datenquelle(n)
40+
- Ingestion-Layer (Extract)
41+
- Data-Warehouse (Load)
42+
- Transformation-Layer (Transform)
43+
- Analytics
44+
- Übergeordnet
45+
- Orchestration-Layer
46+
- Workflow as Code
47+
48+
- Wie ermittelt man, was sich seit dem letzten Extract verändert hat?
49+
- Change Data Capture (CDC)
50+
- Über das Datenbank-interne (technische) Log ermitteln, was sich geändert hat
51+
- CDC ist Event-Sourcing "auf Wish bestellt" :-D
52+
- Es fehlt die fachliche Perspektive
53+
- Es ist eine rein technische Abbildung von Änderungen
54+
55+
- DuckDB als In-Process-In-Memory-OLAP-Datenbank
56+
- Quasi wie SQLite, aber für OLAP
57+
- Übernimmt teilweise Aufgaben aus dem Ingestion-Layer
58+
- Links
59+
- https://github.com/marcboeker/go-duckdb/issues/279
60+
- https://github.com/duckdb/duckdb-go
61+
62+
- Datenqualität
63+
- Kurzfassung: Garbage In, Garbage Out
64+
- Kriterien
65+
- Accuracy: Sind die Werte korrekt?
66+
- Completeness: Fehlen Werte?
67+
- Consistency: Widersprechen sich die Werte?
68+
- Timeliness: Sind die Daten aktuell?
69+
- Validity: Entsprechen Werte dem Schema?
70+
- **Content: Spiegeln die Daten das wider, was man wissen möchte?** (das ist das Fachliche, was von allem am wichtigsten ist)
71+
- Datenqualität prüfen
72+
- Bei der Erfassung
73+
- Bei der Extraction
74+
- Bei der Transformation
75+
- Beim Loading
76+
77+
- Batch- vs Stream-Processing
78+
- Batch
79+
- Wöchentliche / tägliche Reports
80+
- Aggregation über historische Daten
81+
- Stream
82+
- Echtzeit-Analysen
83+
- Fraud-Detection, Alerting, Operational Metrics
84+
- Lambda-Architektur
85+
- Batch-Layer: Vollständige, korrekte Daten
86+
- Speed-Layer: Schnelle, approximative Daten
87+
- Serving-Layer: Kombiniert beide
88+
89+
- Best Practices
90+
- Idempotenz von Transformationen beachten
91+
- Validieren, Schemata, Testen, …
92+
- Batch-Processing
93+
- Zeitumstellung beachten!
94+
- Batch-Windows dürfen nicht zu lang werden
95+
- Stream-Processing
96+
- Optimierung
97+
- Kosten, Flexibilität, Aufwand im Blick behalten
98+
- Hot- vs Cold-Data
99+
- Datenmenge
100+
- Inkrementell statt volles Datenset
101+
- Komprimierende Dateiformate
102+
- Datentransfers sind teuer
103+
- Code zu den Daten schieben, nicht umgekehrt
104+
- Health, Metriken, Alerting, Monitoring, Logging, …
105+
- Daten-Nachvollziehbarkeit
106+
- Fehlerbehandlung
107+
- Retry, Circuit-Breaker, partielle Fehler?
108+
- Recovery-Strategien

0 commit comments

Comments
 (0)