ETL‐Prozess - Fuenfgeld/DMA2024TeamB GitHub Wiki

Einleitung

Der ETL-Prozess, welcher die Phasen der Extraktion, Transformation und Laden umfasst, stellt einen essenziellen Schritt in der Datenintegrationsmethodik dar. Er ermöglicht die effiziente Übertragung von Daten aus heterogenen Quellen in ein zentrales System, wo sie harmonisiert und für weiterführende Analysen vorbereitet werden.

Extraktion (Extraction):

In dieser Phase werden Daten aus diversen heterogenen Datenquellen selektiert und extrahiert, um eine konsolidierte Informationsbasis zu schaffen. Diese Vorgehensweise gewährleistet die Erfassung relevanter Daten für weiterführende Analytik oder Speicherungszwecke.

Transformation (Transformation):

Durch gezielte Transformationen werden die extrahierten Daten in eine einheitliche Struktur überführt, um Kohärenz und Konsistenz zu gewährleisten. Diese Stufe zielt darauf ab, Inkonsistenzen zu beseitigen und die Daten für spezifische Anwendungsfälle vorzubereiten, wodurch ihre analytische Aussagekraft erhöht wird.

Laden (Loading):

Die transformierten Daten werden in ein definiertes Zielsystem integriert, wobei sie in einer organisierten Struktur für weitere Analysen und Reportingzwecke bereitgestellt werden. Das Laden der Daten in ein dediziertes System ermöglicht eine zentrale Datenspeicherung, um eine kohärente Datenbasis für umfassende Analysen sicherzustellen.

ETL-Star-Schema

Ein Star-Schema ist eine Datenmodellierungstechnik, die häufig in Data Warehouses für die Organisation von Daten verwendet wird. Es besteht aus einer zentralen Fact-Tabelle, die mit mehreren Dimensionstabellen verbunden ist. Dieses Modell bildet einen "Stern" mit der Fact-Tabelle als Mittelpunkt und den Dimensionstabellen als Strahlen. Star-Schemata sind flexibel und leicht erweiterbar. Neue Dimensionen können problemlos hinzugefügt werden, ohne die bestehende Struktur zu beeinträchtigen. Das ist wichtig, wenn zusätzliche Aspekte in zukünftigen Analysen berücksichtigt werden sollen. Die Sternstruktur ist intuitiv und leicht verständlich. Es ermöglicht klare Beziehungen zwischen den Fakten und den beschreibenden Dimensionen, was die Analyse und Berichterstellung vereinfacht. Abfragen können effizient durchgeführt werden, da die Daten in einer klaren, denormalisierten Struktur vorliegen. Dies führt zu schnelleren Analyseergebnissen, insbesondere wenn komplexe Abfragen über verschiedene Dimensionen hinweg erforderlich sind. Durch die Verwendung von Indizes und aggregierten Werten in der Fact-Tabelle kann die Abfrageleistung verbessert werden. Dies ist besonders wichtig, wenn große Datenmengen analysiert werden.

Bestandteile eines ETL-Star-Schemas:

Fact-Tabelle:

Enthält die Fakten oder numerischen Messungen, die analysiert werden sollen (z.B., QoL-Werte nach Brustkrebsdiagnose) und verwendet Fremdschlüssel, um mit den Dimensionstabellen verbunden zu werden.

Dimensionstabellen:

Jede Dimensionstabelle repräsentiert eine beschreibende Dimension (z.B., Patienteninformationen, Diagnosedaten, Alter, Ethnizität, Geschlecht, Behandlungen, Medikationen) und enthält Attribute und Hierarchien, um die Dimension zu charakterisieren. Eine Dimensionstabelle verwendet Primärschlüssel, die in der Fact-Tabelle als Fremdschlüssel referenziert werden.

Begründung für die Wahl des Schemas:

In unserem Fall, bei der Analyse von QoL-Werten verschiedener Subgruppen, bietet das Star-Schema eine geeignete Struktur, um relevante Dimensionen (wie Patientenmerkmale, Diagnosedetails und Behandlungsdaten) mit den Hauptfakten zu verbinden. Diese Struktur erleichtert die Analyse verschiedener Einflussfaktoren auf die QoL-Werte und ermöglicht eine fundierte Erkenntnisgewinnung.

ETL-Schema von PRECISE-BC

Um die Studienziele zu erreichen, sollen die folgenden Fact- und Dimensionstabellen verwendet werden:

flowchart TB
    B(d_Patient) --- A[F_BreastCancerQoL]
    C(d_Agegroups) --- A
    D(d_Comorbidity) --- A
    A --- E(d_Cancertherapy)
    A ---F(d_Medication)
    A ---G(d_Primarytumor)

Primäres Studienziel - Analyse des Einflusses von Komorbiditäten auf den QoL-Wert nach Brustkrebsdiagnose:

  • Fact-Tabelle: F_BreastCancerQoL
  • Dimensionstabellen:
    • d_Patient (enthält demografische Informationen)
    • d_Comorbidity (enthält Informationen zu Komorbiditäten)

Sekundäre Studienziele: a. Altersbedingte QoL-Analyse:

  • Fact-Tabelle: F_BreastCancerQoL
  • Dimensionstabellen:
    • d_Patient
    • d_AgeGroup (separate Tabelle für Altersgruppen)

b. Ethnisch-bedingte QoL Analyse:

  • Fact-Tabelle: F_BreastCancerQoL
  • Dimensionstabellen:
    • d_Patient (Enthält Ethnizität)

c. Geschlechtsspezifische QoL-Analyse:

  • Fact-Tabelle: F_BreastCancerQoL
  • Dimensionstabellen:
    • d_Patient (Enthält Geschlecht)

d. Einfluss von Chemotherapie auf QoL:

  • Fact-Tabelle: F_BreastCancerQoL
  • Dimensionstabellen:
    • d_Patient
    • d_Cancertherapy (enthält Informationen zur Krebstherapie)

e. Einfluss nicht-Krebs-bedingter Begleitmedikationen auf QoL:

  • Fact-Tabelle: F_BreastCancerQoL
  • Dimensionstabellen:
    • d_Patient
    • d_Medication (enthält Informationen zu nicht-Krebs-bedingten Begleitmedikationen)

Star Schema des Data Warehouses

DataWarehouse_Schema_V10_20240204

Transformation und Mapping der Quelldaten ins Data Warehouse

Das vorliegende Kapitel bietet eine detaillierte Einsicht in den Prozess der Datenintegration und -transformation von Synthea-Quelldaten in unser Data Warehouse. Durch sorgfältiges Mapping und umfassende Transformationsschritte werden die ursprünglichen Quelldaten in strukturierte Data-Warehouse-Tabellen überführt. Die folgenden Abschnitte präsentieren eine Übersicht über die wichtigsten Variablen in den Fact- und Dimension-Tabellen sowie deren Ursprungsquellen in den Synthea-Daten. Diese umfassende Darstellung soll eine klare Verständlichkeit für die Ursprünge und Bedeutungen der Daten im Data Warehouse gewährleisten.

Fact-Tabelle: F_BreastCancerQoL

Data Warehouse Variable Ursprungsquellvariable Bedeutung
PatientId p.id Eindeutige Identifikationsnummer für jeden Patienten in den Synthea-Quelldaten.
Age_group_diagnosis_ID STRFTIME('%Y', 'now') - STRFTIME('%Y', p.birthdate) - (STRFTIME('%m-%d', 'now') < STRFTIME('%m-%d', p.birthdate)) AS AGE_diagnosis Altersgruppe des Patienten zum Zeitpunkt der Krebsdiagnose, basierend auf dem Alter in den Synthea-Quelldaten.
Primary_Tumor_ID o.encounter AS ID, MAX(CASE WHEN o.code IN ('85319-2', '10480-2', '21908-9', '21906-3', '21905-5', '21907-1') THEN o.value END) AS PRIMARYTUMOR_ID Eindeutige Identifikationsnummer für den primären Tumor des Patienten, basierend auf histologischen Informationen aus den Synthea-Quelldaten.
Comorbidity_ID c.code Eindeutige Identifikationsnummer für die Begleiterkrankung des Patienten in den Synthea-Quelldaten.
Comorbidity_YesNo c.code Binäre Kennzeichnung, ob der Patient eine Begleiterkrankung hat (1) oder nicht (0), basierend auf den Synthea-Quelldaten.
Ethnicity p.ethnicity Ethnische Zugehörigkeit des Patienten aus den Synthea-Quelldaten.
Gender p.gender Geschlecht des Patienten aus den Synthea-Quelldaten.
Cancertherapy_ID m.code Eindeutige Identifikationsnummer für die Krebstherapie des Patienten in den Synthea-Quelldaten.
Chemotherapy_YesNo CASE WHEN Description LIKE '%Epirubicin%' THEN 1 WHEN Description LIKE '%Cyclophosphamide%' THEN 1 WHEN Description LIKE '%Paclitaxel%' THEN 1 ELSE 0 END AS CHEMOTHERAPY Binäre Kennzeichnung, ob der Patient eine Chemotherapie erhält (1) oder nicht (0), basierend auf den Synthea-Quelldaten.
Targetedtherapy_YesNo CASE WHEN Description LIKE '%Anastrozole%' THEN 1 WHEN Description LIKE '%Trastuzumab%' THEN 1 WHEN Description LIKE '%Palbociclib%' THEN 1 WHEN Description LIKE '%Tamoxifen%' THEN 1 WHEN Description LIKE '%Verzenio%' THEN 1 ELSE 0 END AS TARGETEDTHERAPY Binäre Kennzeichnung, ob der Patient eine zielgerichtete Therapie erhält (1) oder nicht (0), basierend auf den Synthea-Quelldaten.
Medication_ID m.code Eindeutige Identifikationsnummer für die Medikation des Patienten in den Synthea-Quelldaten.
Medication_YesNo m.code Binäre Kennzeichnung, ob der Patient Medikation erhält (1) oder nicht (0), basierend auf den Synthea-Quelldaten.
QoL_Value_first o.value (QoLS) Erster gemessener Wert der Lebensqualität des Patienten, basierend auf den Synthea-Quelldaten.
QoL_Value_last o.value (QoLS) Letzter gemessener Wert der Lebensqualität des Patienten, basierend auf den Synthea-Quelldaten.

D-Tabelle: d_Agegroups

Data Warehouse Variable Ursprungsquellvariable Ursprungstabelle Bedeutung
ID Integer [primary key] Eindeutige Identifikationsnummer für die Altersgruppe in den Data-Warehouse-Daten.
Age_group String [not null] Bezeichnung der Altersgruppe, z.B. '<50' oder '>=50'.
Min_Age Integer [not null] Minimales Alter, das die Altersgruppe repräsentiert.
Max_Age Integer [not null] Maximales Alter, das die Altersgruppe repräsentiert.

D-Tabelle: d_Patients

Data Warehouse Variable Ursprungsquellvariable Ursprungstabelle Bedeutung
Id p.id patients Eindeutige Identifikationsnummer für jeden Patienten in den Synthea-Quelldaten.
AGE_Studyinclusion STRFTIME(...) patients, conditions Alter des Patienten zum Zeitpunkt der Studienaufnahme basierend auf den Synthea-Quelldaten.
AGE_diagnosis STRFTIME(...) patients, conditions Alter des Patienten zum Zeitpunkt der Krebsdiagnose basierend auf den Synthea-Quelldaten.
Maritalstatus p.marital patients Familienstand des Patienten aus den Synthea-Quelldaten.

D-Tabelle: d_Comorbidity

Data Warehouse Variable Ursprungsquellvariable Ursprungstabelle Bedeutung
ID code medications Eindeutige Identifikationsnummer für jedes Medikament.
Description Description medications Beschreibung des Medikaments aus den Synthea-Quelldaten.

D-Tabelle: d_PrimaryTumor

Data Warehouse Variable Ursprungsquellvariable Ursprungstabelle Bedeutung
ID o.encounter observations Eindeutige Identifikationsnummer für den primären Tumor.
HER2_Status MAX(CASE WHEN ... observations HER2-Status des primären Tumors aus den Synthea-Quelldaten.
HR_Status MAX(CASE WHEN ... observations HR-Status des primären Tumors aus den Synthea-Quelldaten.
Stage MAX(CASE WHEN ... observations Stadium des primären Tumors aus den Synthea-Quelldaten.
Nodal_Status MAX(CASE WHEN ... observations Nodaler Status des primären Tumors aus den Synthea-Quelldaten.
T_Status MAX(CASE WHEN ... observations T-Status des

ETL Prozess

Der ETL-Code (Extraktion, Transformation und Laden) dieses Projekts liegt im ETL-Notebook. Dieses Colab-Notebook führt die notwendigen Schritte durch, um die Quelldaten aus dem Synthea Breast Cancer-Datensatz zu extrahieren, zu transformieren und in eine Data Warehouse-Datenbank zu laden. Durch die Ausführung dieses Codes wird die Grundlage für Analysen und Auswertungen geschaffen, die Einblicke in verschiedene Aspekte des Brustkrebsdatensatzes ermöglichen.

Hinweis: Vor der Ausführung des Notebooks ist es wichtig sicherzustellen, dass die Quelldaten auf Google Drive verfügbar sind und die Ziel-SQLite-Datenbank den Namen TeamB_Warehouse.db trägt.

Bitte beachte, dass für die Verwendung des ETL-Codes grundlegende Kenntnisse in der Verwendung von Colab-Notebooks und SQL erforderlich sind.

⚠️ **GitHub.com Fallback** ⚠️