Files
ihk-ausbildung/2-Ausbildungsjahr/LF8-Daten-bereitstellen/LF8-Notizen.md

4.4 KiB

LF 8: Daten systemübergreifend bereitstellen

2. Ausbildungsjahr | Zeitrichtwert: 80 Stunden

Kernkompetenz

Die Schülerinnen und Schüler besitzen die Kompetenz, Daten aus dezentralen Quellen zusammenzuführen, aufzubereiten und zur weiteren Nutzung zur Verfügung zu stellen.


Lernziele

Nach diesem Lernfeld kannst du:

  • Datenquellen analysieren und bewerten
  • Heterogene Datenquellen integrieren
  • Daten für die Weiterverarbeitung aufbereiten
  • APIs und Schnittstellen nutzen
  • Datenbanksysteme anbinden
  • Dokumentation erstellen

Datenquellen

Typen

DATENQUELLEN
├── Relationale Datenbanken
│   ├── MySQL/MariaDB
│   ├── PostgreSQL
│   └── MS SQL Server
├── NoSQL-Datenbanken
│   ├── MongoDB (Dokument)
│   ├── Redis (Key-Value)
│   └── Cassandra (Spaltenorientiert)
├── Dateien
│   ├── CSV, JSON, XML
│   └── Excel, PDF
├── Web-Services
│   ├── REST-APIs
│   └── SOAP
└── Cloud-Dienste
    └── AWS S3, Azure Blob, etc.

Datenintegration

ETL-Prozess

┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐
│ Extract │ → │ Transform│ → │  Load   │ → │ Target  │
└─────────┘   └─────────┘   └─────────┘   └─────────┘
               │                │
               │  Bereinigung   │
               │  Konvertierung │
               │  Aggregation   │

Herausforderungen

  • Datenqualität: Vollständigkeit, Konsistenz
  • Formate: Unterschiedliche Strukturen
  • Latenz: Echtzeit vs. Batch
  • Security: Authentifizierung, Autorisierung

APIs (Application Programming Interface)

REST-Prinzipien

REST-Konventionen:
├── Ressourcenorientiert (Nomen)
├── HTTP-Methoden nutzen
│   ├── GET    → Lesen
│   ├── POST   → Erstellen
│   ├── PUT    → Ersetzen
│   ├── PATCH  → Teilaktualisierung
│   └── DELETE → Löschen
├── Statuscodes
│   ├── 200 OK
│   ├── 201 Created
│   ├── 400 Bad Request
│   ├── 401 Unauthorized
│   └── 404 Not Found
└── Stateless (zustandslos)

API-Beispiel

# Python REST-API mit Flask
from flask import Flask, jsonify, request

app = Flask(__name__)

# GET - Daten abrufen
@app.route('/api/kunden', methods=['GET'])
def get_kunden():
    return jsonify(kunden_liste)

# POST - Daten erstellen
@app.route('/api/kunden', methods=['POST'])
def create_kunde():
    daten = request.json
    kunden_liste.append(daten)
    return jsonify(daten), 201

# PUT - Daten aktualisieren
@app.route('/api/kunden/<int:id>', methods=['PUT'])
def update_kunde(id):
    daten = request.json
    for i, k in enumerate(kunden_liste):
        if k['id'] == id:
            kunden_liste[i] = daten
            return jsonify(daten)
    return jsonify({'error': 'Not found'}), 404

Datenbank-Anbindung

Python mit SQLAlchemy

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Kunde(Base):
    __tablename__ = 'kunden'
    id = Column(Integer, primary_key=True)
    name = Column(String(100))
    email = Column(String(255))

# Verbindung herstellen
engine = create_engine('sqlite:///kunden.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

# Daten abfragen
for kunde in session.query(Kunde).all():
    print(f"{kunde.id}: {kunde.name}")

Handlungsphasen

  1. Analysieren: Datenquellen identifizieren, Strukturen verstehen
  2. Planen: Integrationskonzept erstellen
  3. Entwickeln: Schnittstellen implementieren
  4. Testen: Datenfluss prüfen
  5. Dokumentieren: Handhabung beschreiben

Prüfungsrelevanz

  • Wichtig für LF 12a (Abschlussprojekt)
  • Datenintegration in Projekten

Querverweise


Stand: 2024 | Quelle: KMK Rahmenlehrplan 13.12.2019