Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add lit refs #3

Merged
merged 18 commits into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions docs/00b-basics/01-what-to-expect-of-this-module.adoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
// tag::DE[]
=== Was vermittelt das Modul „{curriculum-short}“?

Das Modul präsentiert den Teilnehmerinnen und Teilnehmern {curriculum-name} als …
Am Ende des Moduls kennen die Teilnehmerinnen und Teilnehmer … und können …
//Das Modul präsentiert den Teilnehmerinnen und Teilnehmern {curriculum-name} als …
//Am Ende des Moduls kennen die Teilnehmerinnen und Teilnehmer … und können …
Daten werden in modernen Anwendungssystemen zunehmend zu “First Class Citizens”. Gründe dafür sind etwa der deutlich gestiegene und weiter steigende Einsatz mobiler Endgeräte, die massenweise Integration von Geräten über IoT, die universelle Verfügbarkeit von Anwendungen in der Cloud, der zunehmende Einsatz KI-basierter Lösungen und natürlich die Verfügbarkeit günstiger digitaler Speichertechnologie. Dies zeigt sich auch in den Trends “Big Data” oder “Data Driven”. Entsprechend sind in den letzten Jahren die Anforderungen an Software- und Systemarchitekten gestiegen, sich mit geeigneten Architekturen zur Verarbeitung großer Datenmengen zu befassen.
Der hier vorliegende iSAQB Lehrplan soll einen möglichst umfassenden Überblick über alle Aspekte bieten, die im Zusammenhang mit der Verarbeitung großer Datenmengen aus der Sicht von Software- und Systemarchitekten beachtet werden müssen.

=== Was vermittelt das Modul „{curriculum-short}“ nicht?
Insbesondere die folgenden Themengebiete sind im Lehrplan zwar enthalten, werden aber nicht vertieft behandelt:

- Data Science (Statistik, Machine Learning)
- Business Intelligence (OLAP, Multidimensional Modeling)
- Datenschutz

In vielen Spezialgebieten spielt die Verarbeitung großer Datenmengen ebenfalls eine maßgebliche Rolle. Sie werden in diesem Lehrplan nicht explizit behandelt. Beispiele dafür sind:

- IoT
- Suchmaschinen
- Wissenschaftliche Anwendungen (Klimaforschung, Kernphysik, Proteinfaltung, etc)
// end::DE[]

// tag::EN[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,21 @@
[cols="<,>", options="header"]
|===
| Inhalt | Empfohlene Mindestdauer (min)
| 1. Thema mit Einleitung | 180
| 2. Thema über xz | 150
| 3. Thema mit viel Theorie | 120
| 4. Thema mit xy und Beispiel | 180
| 5. Thema mit abc und d | 210
| 6. Thema mit Abschlussbeispiel | 120
| 1. Motivation und Übersicht | 60
| 2. Referenzarchitekturen für analytische Anwendungssysteme | 120
| 3. Data Sources | 60
| 4. Ingestion und Transport | 90
| 5. Storage | 120
| 6. Query und Processing | 120
| 7. Transformation | 90
| 8. Data Servicing | 90
| 9. Data modeling | 120
| 10. Data Pipelines | 120
| 11. Data Mesh | 90
| |
| Summe | 960 (16h)
| Summe | 1080 (18h)

|===

// end::DE[]

// tag::EN[]
Expand Down
4 changes: 2 additions & 2 deletions docs/01-module-block-1/00-structure.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@


// tag::DE[]
== Grundlagen
== Motivation und Übersicht
// end::DE[]

// tag::EN[]
== Fundamentals
== Motivation and overview
// end::EN[]


Expand Down
2 changes: 1 addition & 1 deletion docs/01-module-block-1/01-duration-terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
|===

=== Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
operative Daten, analytische Daten, OLTP, OLAP, Data Engineer, Data Architect, Data Scientist,

// end::DE[]

Expand Down
64 changes: 57 additions & 7 deletions docs/01-module-block-1/02-learning-goals.adoc
Original file line number Diff line number Diff line change
@@ -1,16 +1,66 @@
=== {learning-goals}

## LZ 1
### Allgemein

// tag::DE[]
[[LZ-1-1]]
==== LZ 1-1: Dies ist das erste Lernziel, in Kategorie xy
Hier wird beschrieben, was Teilnehmer:innen in diesem Lernziel lernen sollen. Das kann in Prosa-Text
in ganzen Sätzen oder in Aufzählungen mit Unterpunkten erfolgen. Dabei kann auch unterschieden werden,
wie wichtig einzelne Aspekte des Lernziels sind. Es kann hier bereits auf Literatur verwiesen werden.
==== LZ 1-1 - Unterscheidung operativer und analytischer Daten
Die Teilnehmer:innen können den Unterschied zwischen operativen und analytischen Daten erläutern. Sie können die Begriffe OLTP und OLAP unterscheiden. Sie kennen typische Beispiele für opreative Anwendungen und wissen, welche iSAQB Module sich spezifisch mit der Architektur operativer Anwendungssysteme befassen.
Den Teilnehmer:innen ist klar, warum operative und analytische Daten üblicherweise separat verarbeitet werden. Sie können die folgenden Eigenschaften analytischer Daten erläutern:

- subject-oriented
- nonvolatile
- integrated
- time variant

Die Teilnehmer:innen kennen Beispiele, wie analytische Daten aus operativen Anwendungen entstehen. Sie kennen ebenfalls Beispiele, wie Ergebnisse von Analysen analytischer Daten in operativen Anwendungen genutzt werden können.

[[LZ-1-2]]
==== LZ 1-2 - Kategorien analytischer Anwendungen
Die Teilnehmer:innen kennen typische Beispiele für analytische Anwendungen und können Typen von deren Nutzern unterscheiden.

Die Teilnehmer:innen können übliche Herausforderungen bei Konzeption, Umsetzung und Betrieb analytischer Anwendungssysteme speziell im Hinblick auf die folgenden Voraussetzungen bennenen:

- Umfang und Komplexität der zu verarbeitenen Daten
- Komplexität und Anzahl der Analysen, Anfragen / Queries
- Verfügbarkeit
- Datensicherheit

Die Teilnehmer:innen kennen die typischen Kategorien analytischer Anwendungen, können diese unterscheiden und jeweils Beispiele dazu nennen:

- Deskriptive Analyse
- Explorative Analyse
- Inferentielle Analyse
- Prädiktive Analyse
- Kausale Analyse
- Mechanistische Analyse

Die Teilnehmer:innen verstehen welche unterschiedlichen Herausforderungen sich durch Datenweitergabe innerhalb beziehungsweise ausserhalb der eigenen Organisation beziehungsweise an Endnutzer ergeben.

Die Teilnehmer:innen kennen Beispiele für typische Anwendungen, in denen mit großen Datenmengen umgegangen wird.
Sie können die verschiedenen Bedarfe von datenintensiven Anwendungen einordnen.

[[LZ 1-3]]
==== LZ 1-3 - Entwickler analytischer Anwendungen
Die Teilnehmer:innen können die Rollen von Data Architects, Data Engineers und Data Scientists beschreiben und voneineander abgrenzen.

Die Teilnehmer:innen kennen Modelle für Reifegrade von Organisationen, die mit Daten arbeiten, sowie von deren Data Engineers und Data Architects.

Die Teilnehmer:innen wissen, wie sich dieses Modul von anderen iSAQB Modulen in Hinsicht auf Data Science und Software Engineering abgrenzt.

==== LZ 1-4 - Monolithische und verteilte Datenarchitekturen
Die Teilnehmer:innen verstehen die Vor- und Nachteile von monolithischen beziehungsweise verteilten Softwarearchitekturen für analytische Anwendungen.

Die Teilnehmer:innen wissen, dass historisch gesehen ein großer Teil analytischer Anwendungen eine monolithische Architektur haben, woher diese Entwicklung kommt und warum mit Data Mesh (Block 11) hier ein Paradigmenwandel stattfindet.

* Erstes Teilziel
* Zweites Unterthema
* Dritter Aspekt
[[LZ 1-5]]
==== LZ 1-5 - Lebenszyklus analytischer Daten
Die Teilnehmer:innen können die grundsätzlichen Phasen im Lebesnszyklus analytischer Daten benennen, also dren Generierung, Sammeln, Speichern und Transformieren bis hin zur Bereitstellung und Auswertung. Sie wissen welche querschnittlichen Themen in allen Phasen zu beachten sind.

[[LZ 1-6]]
==== LZ 1-6 - Abgrenzung von anderen iSAQB Modulen
Die Teilnehmer:innen wissen, wie sich dieses Modul von anderen iSAQB Modulen in Hinsicht auf Architekture für Data Science und Architektur operativer Anwendungssysteme abgrenzt.

// end::DE[]

Expand Down
3 changes: 1 addition & 2 deletions docs/01-module-block-1/references.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
=== {references}

<<bass>>, <<bachmann>>, <<kruchten>>, <<starke>>

<<codd>>, <<inmon>>, <<kimball>>



4 changes: 2 additions & 2 deletions docs/02-module-block-2/00-structure.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// ====================================================

// tag::DE[]
== Datenspeicher
== Referenzarchitekturen für analytische Anwendungssysteme
// end::DE[]

// tag::EN[]
== Data Storage
== Reference architectures for analytical application systems
// end::EN[]

include::01-duration-terms.adoc[{include_configuration}]
Expand Down
2 changes: 1 addition & 1 deletion docs/02-module-block-2/01-duration-terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
|===

=== Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
Referenzarchitekturen, Cloud, Cloud-Ready, hybrid, on-Premise, zentrales/monolithisches System, dezentrales/förderiertes System


// end::DE[]
Expand Down
76 changes: 67 additions & 9 deletions docs/02-module-block-2/02-learning-goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,77 @@

// tag::DE[]
[[LZ-2-1]]
==== LZ 2-1: Lorem ipsum dolor sit amet, consectetur adipiscing elit
Hier wird beschrieben, was Teilnehmer:innen in diesem Lernziel lernen sollen. Das kann in Prosa-Text
in ganzen Sätzen oder in Aufzählungen mit Unterpunkten erfolgen. Dabei kann auch unterschieden werden,
wie wichtig einzelne Aspekte des Lernziels sind. Es kann hier bereits auf Literatur verwiesen werden.
==== LZ 2-1 - Überblick zu Referenzarchitekturen
Den Teilnehmer:innen ist der generelle Nutzen von Referenzarchitekturen bewusst:

* Erstes Teilziel
* Zweites Unterthema
* Dritter Aspekt
- eine Vorlage für eine funktionale Zerlegung in wesentliche Bestandteile zur Verfügung zu stellen
- ein einheitliches Vorgehen für die Aufnahme, Verarbeitung und Verwendung von Daten vorzugeben
- dadurch eine Vorlage für die Ausprägung konkreter Software-Architekturen zu bieten

Die Teilnehmer:innen verstehen, dass Referenzarchitekturen für analytische Anwendungssysteme generell unterschieden werden, je nachdem, ob eine Basis für

- die Vereinheitlichung und Integration analytischer Daten
- die Anwendung von Verfahren der KI und des ML auf analytischen Daten
- beides zugleich

geschaffen werden soll.

Die Teilnehmer:innen kennen Ansätze, ein einheitliches Framework für Referenzarchitekturen zu analytischen Anwendungssystemen zu beschreiben.

Die Teilnehmer:innen kennen Beispiele zu Referenzarchitekturen für analytische Anwendungssysteme wie etwa

- Data Warehouse
- Enterprise DWH
- Scalable DWH / Data Vault
- Data Lake
- DL Architecture Framework
- DL Lambda Architecture
stefannegele marked this conversation as resolved.
Show resolved Hide resolved
- Machine Learning
stefannegele marked this conversation as resolved.
Show resolved Hide resolved
- Reference Architecture for big data systems
stefannegele marked this conversation as resolved.
Show resolved Hide resolved

[[LZ-2-2]]
==== LZ 2-2: Hier ist ein zweites Lernziel in diesem Kapitel
tbd.
==== LZ 2-2 - Referenzarchitekturen zur Vereinheitlichung analytischer Daten
Die Teilnehmer:innen können die folgenden Phasen der Datenverarbeitung zur Vereinheitlichung analytischer Daten unterscheiden und wissen, welche Komponenten in den jeweiligen Phasen typischerweise zum Einsatz kommen:

- Sources - Das Erzeugen der Daten (ERP-Systeme, Logs, APIs, ...)
- Ingestion und Transport - Das Extrahieren der Daten und deren Transport zum den Speichersystemen (Workflow Manager, Replikationslösungen, Streamprocessing Engines, ...)
- Storage - Das Abspeichern der Daten (Data Lake, Data Warehouse, ...)
- Query und Processing - Code zur Verarbeitung und Abfragen gegen die gespeicherten Daten (Spark, SQL, Dataframes, ...)
- Transformation - Transformation der Daten in eine für die Analyse geeignete Form (Workflow Manager, SQL/Spark Code Generierung, ...)
- Analysis und Output - Präsentation der Daten für die Analyse und deren Ergebnisse sowie Integration der Analysemöglichkeiten in Anwendungen (Dashboards, Embedded Analytics, Report-Engines, ...)

Den Teilnehmer:innen ist bewußt, dass Referenzarchitekturen begleitend zu diesen Phasen auch die folgenden Aufgabenbereiche mit geeigneten Komponenten abdecken müssen:
stefannegele marked this conversation as resolved.
Show resolved Hide resolved

- Data Discovery - Information bereitstellen, welche Daten es gibt, wie sie aufbereitet und wo sie zu finden sind
- Data Governance - Erarbeiten und Überwachen allgemein gültiger Regeln für die Verarbeitung der Daten
- Data Security - Gewährleisten eines angemessenen Grads an Datenschutz
- Data Quality - Gewährleisten eines angemessenen Grads an Datenqualität

[[LZ-2-3]]
==== LZ 2-3 - Referenzarchitekturen zur Anwendung von Verfahren der KI und des ML
Die Teilnehmer:innen können die folgenden Phasen der Datenverarbeitung zur Anwendung von Verfahren der KI und des ML unterscheiden und wissen, welche Komponenten in den jeweiligen Phasen typischerweise zum Einsatz kommen:

- Data Transformation - Konvertieren der Rohdaten in ein geeignetes Format für das Model Training (Data Labeling, Data Science Libraries, ...)
- Model Training und Development - Iteratives Trainieren der Modelle mit den Daten, Optimieren und Automatisieren der Abläufe für das Trainieren der Modelle (Feature Store, Model Registry, ML/DL Framework, Workflow Manager, ...)
- Model Inference - Anwenden der Modelle auf die zu analysierenden Daten. Monitoring der Verarbeitung
- Integration - Integration der Analyse-Verfahren und Ergebnisse in Anwendungen

[[LZ-2-4]]
==== LZ 2-4 - Architekturentscheidungen anhand von Referenzarchitekturen
Die Teilnehmer:innen können Architekturentscheidungen speziell zu den folgenden Fragestellungen anhand von Referenzarchitekturen diskutieren:

- ob ein zentrales/monolithisches oder dezentrales/förderiertes System zu wählen ist {Single Point of Truth, Canonical Data Model, Master Data Management}
- ob ein Deployment in der Cloud (ggfs. Cloud-Ready), hybrid oder on-Premise vorzuziehen ist
- ob ein einheitliches Schema für die auszuwertenden Daten vorgegeben werden soll
- ob eine eigenständige Entwicklung von Komponenten erforderlich ist oder das Kaufen und Konfigurieren von Standardkomponenten ausreicht
- ob die Integration von Komponenten selbst vorgenommen oder auf die Verwendung bereits integrierter Komponenten vertraut wird
- ob Stream-, Batch-Processing (ggfs Micro-Batch) oder beides unterstützt werden muss
- welches Bezahlmodell (Pay as you go, subscription fee, buy) Vorteile bietet
- welche Form der Skalierbarkeit konkret benötigt wird: Datenvolumen, Geschwindigkeit der Verarbeitung und des Datenzugriffs, Anzahl und Variabilität der Datenquellen, Anzahl der Nutzer, Anzahl und Variabilität der analytischen Auswertungen
- inwieweit Daten repliziert/redundant gespeichert werden müssen
- ob eine fachliche Modularisierung (im Sinne von DDD) erforderlich ist
- welche Rollen und Verantwortlichkeiten vorgesehen werden müssen
- wie groß Komponenten dimensioniert werden müssen
// end::DE[]
stefannegele marked this conversation as resolved.
Show resolved Hide resolved

// tag::EN[]
Expand Down
2 changes: 1 addition & 1 deletion docs/02-module-block-2/references.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
=== {references}

<<bass>>, <<clements>>
<<reis>>, <<bornstein>>, <<inmon>>, <<kimball>>, <<linstedt>>, <<giebler>>, <<pääkkönen>>


4 changes: 2 additions & 2 deletions docs/03-module-block-3/00-structure.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
// ====================================================

// tag::DE[]
== Data Governance & Data Management
== Data Sources
// end::DE[]

// tag::EN[]
== Data Governance & Data Management
== Data Sources
// end::EN[]

include::01-duration-terms.adoc[{include_configuration}]
Expand Down
2 changes: 1 addition & 1 deletion docs/03-module-block-3/01-duration-terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
|===

=== Begriffe und Konzepte
Begriff 1, Begriff 2, Begriff 3
Datenquellen, Quellsysteme, strukturierte-, semi-strukturierte-, unstukturierte Daten, Daten-Snapshots, Increments/Events, technische-, fachliche Metadaten, Schema Inference


// end::DE[]
Expand Down
Loading