CommunityRecherche & Datenanalysegithub.com

Erstellung von Feature-Pipelines

Baue ML-Feature-Pipelines und Feature Stores – point-in-time-korrekte Joins zur Vermeidung von Label-Leakage, Offline/Online-Parität, Feature-Freshness und Backfills sowie Materialisierung mit Tools wie Feast. Nutze dies bei der Feature-Entwicklung für ML, zur Vermeidung von Train/Serve-Skew oder Datenlecks, beim Aufbau eines Feature Stores oder bei der Bereinigung historischer Features für das Training.

Was ist Erstellung von Feature-Pipelines?

Dieses Skill beschreibt die grundlegenden Prinzipien und Workflows für den Bau zuverlässiger ML-Feature-Pipelines mit Tools wie Feast. Es fokussiert auf die Sicherstellung der Datenqualität durch point-in-time-korrekte Joins, die Offline/Online-Parität wahren, die Frische online verfügbarer Features überwachen und idempotente Backfalls ermöglichen. Entwickler lernen, wie sie Label-Leakage und Train/Serve-Skew vermeiden, indem sie eine einzige Feature-Definition für Training und Serving nutzen. Die Anleitung eignet sich für Projekte, die einen Feature Store aufbauen, historische Features für das Training berechnen oder die Modellstabilität durch reproduzierbare Datenpipelines verbessern möchten. Das Skill unterstützt plattformunabhängig die Integration von SQL, Batch-Verarbeitung und Observability-Praktiken.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Unknown-333/awesome-data-engineering-skills/tree/main/skills/building-feature-pipelines

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Erstellung von Feature-Pipelines?

Wann verwenden

  • Entwicklung von Features für ML-Modelle aus Warehouse-/Stream-Daten.
  • Vermeidung von Label-Leakage und Train/Serve-Skew.
  • Einrichtung eines Feature Stores, Online-Serving oder historischer Backfills.
  • NICHT verwenden für allgemeine Modellierung/Aggregation (verwende dbt/Spark-Skills), es sei denn, es dient ML-Features.

Workflow

- [ ] Definiere jedes Feature mit einem Entity-Key und einem Ereigniszeitstempel
- [ ] Erstelle Trainingsdatensätze mit point-in-time-korrekten Joins (zum Zeitpunkt des Labels)
- [ ] Teile EINE Definition für offline (Training) und online (Serving)
- [ ] Lege Frische/Materialisierung für Online-Features fest
- [ ] Führe idempotente Backfills historischer Features für das Training durch
  1. Point-in-time-Korrektheit. Verknüpfe Features zum Zeitstempel jedes Labels – verwende nur Daten, die vor dem Vorhersagezeitpunkt bekannt waren. Dies verhindert Label-Leakage, den schädlichsten Feature-Bug.
  2. Offline/Online-Parität. Berechne ein Feature auf die gleiche Weise für Training (offline, Batch) und Serving (online, niedrige Latenz). Unterschiedliche Logik führt zu Train/Serve-Skew und stiller Produktionsverschlechterung.
  3. Frische. Online-Features müssen nach einem Zeitplan materialisiert werden, der die Toleranz des Modells gegenüber Veralterung erfüllt.
  4. Idempotente Backfills. Die Neuberechnung historischer Features muss wiederholbar sein (siehe designing-backfills-and-replays).

Muster

Point-in-time (as-of)-Join – wähle den neuesten Feature-Wert strikt vor jedem Label-Ereignis:

SELECT l.entity_id, l.label_ts, f.value AS feature
FROM labels l
LEFT JOIN features f
  ON f.entity_id = l.entity_id
 AND f.event_ts <= l.label_ts          -- nur vergangene Daten; kein Leakage
QUALIFY ROW_NUMBER() OVER (
  PARTITION BY l.entity_id, l.label_ts ORDER BY f.event_ts DESC) = 1;

Einzelne Definition, zwei Pfade – definiere das Feature einmal (z. B. Feast FeatureView); materialisiere es in einem Offline-Store für Training und einem Online-Store für Serving, sodass beide identische Logik verwenden.

Frische + Materialisierung – plane die Materialisierung online; überwache die Feature-Frische wie jedes Dataset-SLA (implementing-pipeline-observability).

Häufige Fallstricke

  • Label-Leakage – das Verknüpfen von Features, die nach dem Label-Zeitpunkt berechnet wurden, überhöht Offline-Metriken und bricht in der Produktion zusammen; verwende immer as-of-Joins.
  • Train/Serve-Skew – getrennte Offline- und Online-Implementierungen driften auseinander; teile eine Definition.
  • Veraltete Online-Features – das Modell serviert auf alten Werten; setze und überwache die Frische.
  • Nicht reproduzierbare Backfills – inkonsistente Trainingshistorie; mache die Feature-Neuberechnung idempotent.
  • Fehlende Entity-/Zeitstempel-Schlüssel – Features können nicht korrekt über die Zeit verknüpft werden; erfordere beide.
  • Unversionierte Features – stille Neudefinition bricht die Modellvergleichbarkeit; versioniere Feature-Definitionen.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

Unknown-333/authoring-airflow-dags

Write production-grade Apache Airflow DAGs using the TaskFlow API — idempotent tasks, correct scheduling and catchup, retries/SLAs, connections/variables, and avoiding top-level code. Use when creating or reviewing Airflow DAGs, scheduling pipelines, wiring task dependencies, configuring retries/backfills, or fixing non-idempotent tasks.

Unknown-333/building-dagster-assets

Build Dagster pipelines using software-defined assets — asset dependencies, partitions, resources and IO managers, asset checks, and schedules/sensors. Use when creating Dagster assets or jobs, modeling data as assets, adding partitions or backfills, wiring resources/IO managers, or migrating from task-based orchestration to assets.

Unknown-333/building-dbt-models

Build well-structured dbt models — staging/intermediate/marts layers, ref() and source(), materializations, and incremental models with the right strategy. Use when creating or refactoring dbt models, choosing table vs view vs incremental, structuring a dbt project, or writing incremental logic.

Unknown-333/building-iceberg-tables

Design and operate Apache Iceberg tables — partitioning and hidden partitioning, partition/schema evolution, snapshots and time travel, compaction and small-file cleanup, and MERGE/upsert for lakehouse tables on Spark, Flink, Trino, or Snowflake. Use when creating or maintaining Iceberg tables, choosing partitioning, evolving schema/partitions, or fixing small-file and metadata bloat.

Unknown-333/building-ingestion-pipelines

Build batch and incremental data ingestion (extract-load) pipelines — full vs incremental extraction, change data capture (CDC), watermarks and high-water marks, API pagination and rate limits, and choosing managed EL tools (Fivetran, Airbyte) vs custom code. Use when ingesting data from databases, APIs, files, or SaaS into a warehouse/lake, or designing incremental extraction and CDC.

Unknown-333/building-kafka-consumers

Build reliable Apache Kafka consumers and producers — consumer groups and partition assignment, offset commit strategy, at-least-once vs exactly-once, idempotent/transactional producers, rebalancing, and dead-letter handling. Use when writing Kafka consumers/producers, configuring offset commits or consumer groups, tuning throughput, or handling rebalances and poison messages.

Unknown-333/debugging-data-pipelines

Systematically root-cause data pipeline failures and data incidents — job errors, wrong or missing data, duplicates, and freshness misses — by tracing lineage upstream, isolating the failing stage, reconciling against source, and planning a safe fix and backfill. Use when a pipeline fails, numbers look wrong, data is missing or duplicated, a dashboard is stale, or a stakeholder reports a data discrepancy.

Unknown-333/designing-backfills-and-replays

Plan and run safe data backfills and replays — idempotent reprocessing of historical windows, partition-by-partition execution, isolating backfill compute from production, verifying results, and avoiding double-counting or changed history. Use when backfilling a new or fixed model, reprocessing after a bug, replaying events, or loading history for a new pipeline without corrupting existing data.

Unknown-333/designing-data-contracts

Define and enforce data contracts between producers and consumers — explicit schema, semantics, ownership, SLAs, and versioning — to prevent silent upstream changes from breaking downstream pipelines. Use when a producer schema change could break consumers, defining an interface between teams/services and the warehouse, or adding schema enforcement at ingestion.

Verwandte Skills