English version

Databricks Wetter-zu-Strom — Architektur-Spickzettel

← Learning Hub Kurzreferenz für Architekturentscheidungen, Tabellenschemata und Pipeline-Muster.

Medaillon-Architektur

LayerDatenPartitionZentrale Eigenschaft
BronzeRohes GRIB2 → Parquet, SCADA-Telemetrie, Asset-Registerinit_timeUnveränderlich, nur Append
SilverWetter-Zeitreihe je Asset, Leistungs-Zeitreihe je Turbine, dim_assetsasset_id + ZORDER(timestamp)Doppelter Zugriff (Pipeline + Analyst)
GoldPrognose je Turbine + Park, Konfidenzintervalle, Genauigkeitasset_idVertrag für nachgelagerte Systeme

Zentrale Tabellenschemata

silver.dim_assets

asset_id        STRING PK
asset_type      STRING (wind_park|turbine)
parent_asset_id STRING FK (NULL for parks)
latitude        DOUBLE
longitude       DOUBLE
hub_height_m    DOUBLE
capacity_kw     DOUBLE
metadata        MAP<STRING,STRING>

silver.weather_ts

asset_id          STRING PK (partition)
timestamp         TIMESTAMP PK
forecast_ref_time TIMESTAMP
wind_speed_ms     DOUBLE
wind_speed_hub_ms DOUBLE
wind_direction_deg DOUBLE
temperature_c     DOUBLE
irradiance_wm2    DOUBLE
pressure_hpa      DOUBLE
source_model      STRING

silver.power_ts

asset_id        STRING PK (partition)
timestamp       TIMESTAMP PK
power_kw        DOUBLE
rotor_speed_rpm DOUBLE
nacelle_temp_c  DOUBLE
availability    DOUBLE
status_code     STRING

gold.forecast_ts

asset_id          STRING (partition)
asset_type        STRING
timestamp         TIMESTAMP
forecast_power_kw DOUBLE
confidence_low_kw DOUBLE
confidence_high_kw DOUBLE
capacity_factor   DOUBLE
forecast_ref_time TIMESTAMP
model_version     STRING
produced_at       TIMESTAMP
source_model      STRING

Pipeline-Fluss

Weather API (ECMWF/GFS/ICON)
  → [Download GRIB2] → bronze.weather_raw (PARTITION BY init_time)
  → [Geo-join + derive] → silver.weather_ts (PARTITION BY asset_id, ZORDER timestamp)
  → [Compute features] → features.wind_power_features (PK: asset_id, timestamp)
  → [ML inference @champion] → gold.forecast_ts
  → [Serve] → Trading (JDBC) / Grid (Delta Sharing) / Dashboards (SQL Warehouse)

Wichtige Formeln

GrößeFormel
Windgeschwindigkeit$\sqrt{u^2 + v^2}$
Windrichtung$\text{atan2}(-u, -v) \times \frac{180}{\pi} \mod 360$
Wind auf Nabenhöhe$v_{10} \times (h_{hub} / 10)^{\alpha}$   (α ≈ 0,14 offen, 0,10 offshore)
Temperatur$T_C = T_K - 273.15$
Einstrahlung (momentan)$(ssrd[t] - ssrd[t{-}1]) / \Delta t_{sec}$

Unity-Catalog-Struktur

Metastore
├── prod          (nur maschinell beschrieben)
│   ├── bronze    → weather_raw
│   ├── silver    → weather_ts, power_ts, dim_assets
│   ├── gold      → forecast_ts, forecast_accuracy
│   └── features  → wind_power_features
├── dev           (hier entwickeln die Engineers)
│   ├── bronze / silver / gold (Spiegel von prod)
└── sandbox       (Analysten + Data Scientists explorieren)
    └── <user_schema>

Berechtigungen — Kurzreferenz

Principalproddevsandbox
Pipeline-SPALL (bronze/silver/gold)——
Data EngineersSELECT (alle)ALLALL
Data ScientistsSELECT (silver/gold)ALLALL
AnalystenSELECT (silver/gold)—ALL
Nachgelagerte SystemeSELECT (nur gold)——

Cluster-Dimensionierung

AufgabeTypWorkerVM
GRIB-IngestionJob-Cluster0 (Single-Node)Memory-optimiert (E4s)
Silver-TransformationenJob-Cluster2–4General Purpose (D4s)
ML-InferenzJob-Cluster1Memory-optimiert (E8s), ML-Runtime
Analysten-AbfragenSQL WarehouseServerlessAutomatisch (skaliert auf null)

Wartungsplan

AufgabeHäufigkeitBefehl
OPTIMIZE + ZORDERWöchentlichOPTIMIZE table ZORDER BY (timestamp)
VACUUMWöchentlichVACUUM table RETAIN N DAYS
Bronze-AufbewahrungMonatlichPartitionen > 90 Tage löschen
Modell-NeutrainingMonatlich (oder bei Drift)Neu trainieren → validieren → promoten

Zentrale Architekturentscheidungen

EntscheidungEmpfehlungLektion
DLT vs. eigenes Spark für BronzeEigenes (GRIB2 braucht cfgrib)1
Modell der Asset-HierarchieFlache Tabelle + Parent-Zeiger2
Partitionsstrategie für ZeitreihenBY asset_id, ZORDER timestamp2
Ansatz für den Geo-JoinNächster Nachbar (auf Gitter einrasten)4
Versionierung der PrognosenAlle speichern, neueste ausliefern (View)4
Catalog-StrukturUmgebungsbasiert (prod/dev/sandbox)5
Globales vs. Modell je AssetGlobal + Asset-Features (zum Start)7
KonfidenzintervalleQuantilsregression (LightGBM)8
IaC-WerkzeugDatabricks Asset Bundles9

Rechtliches: Impressum