Skip to main content

data-engineering-command-center

Complete methodology for designing, building, operating, and scaling data pipelines and infrastructure. Zero dependencies — pure agent skill.

Quellinformationen

Repository
modbender/skill-library-mcp
Letzte Quellaktivität
6. März 2026 um 18:33
Erkannte Sprache von SKILL.md
Englisch
Sterne
12
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
Data Engineering Command Center
description
Complete methodology for designing, building, operating, and scaling data pipelines and infrastructure. Zero dependencies — pure agent skill.
# Data Engineering Command Center Complete methodology for designing, building, operating, and scaling data pipelines and infrastructure. Zero dependencies — pure agent skill. --- ## Phase 1: Data Architecture Assessment Before building anything, understand the landscape. ### Architecture Brief ```yaml project_name: "" business_context: "" data_consumers: - team: "" use_case: "" # analytics | ML | operational | reporting | reverse-ETL latency_requirement: "" # real-time (<1s) | near-real-time (<5min) | batch (hourly+) query_pattern: "" # ad-hoc | scheduled | API | dashboard current_state: sources: [] # list every system producing data storage: [] # where data lives today pain_points: [] # what's broken, slow, unreliable data_volume: current_gb_per_day: 0 growth_rate_percent: 0 retention_months: 0 constraints: budget_monthly_usd: 0 team_size: 0 skill_level: "" # junior | mid | senior | mixed compliance: [] # GDPR, HIPAA, SOX, PCI, none cloud_provider: "" # AWS | GCP | Azure | multi | on-prem ``` ### Architecture Pattern Decision Matrix | Signal | Pattern | When to Use | |--------|---------|-------------| | All consumers need data hourly+ | **Batch ETL** | Reporting, warehousing, most analytics | | Some need <5 min latency | **Micro-batch** | Dashboard freshness, near-real-time analytics | | Events need <1s processing | **Streaming** | Fraud detection, real-time pricing, alerts | | Need both batch + streaming | **Lambda** | When batch accuracy + real-time speed both matter | | Want to simplify Lambda | **Kappa** | When you can reprocess from stream replay | | Data lake + warehouse combined | **Lakehouse** | When you need both cheap storage + fast SQL | | Sources change independently | **Data Mesh** | Large orgs, domain-owned data, >5 teams | | ML is primary consumer | **Feature Store** | ML-heavy orgs with feature reuse needs | ### Technology Selection Guide #### Orchestration | Tool | Best For | Avoid When | |------|----------|------------| | **Airflow** | Complex DAGs, Python-native teams, mature ecosystem | Simple pipelines (<5 tasks) | | **Dagster** | Software-defined assets, strong typing, dev experience | Legacy team resistant to new paradigms | | **Prefect** | Dynamic workflows, cloud-native, Python-first | Need on-prem with no cloud dependency | | **dbt** | SQL transformations, ELT, analytics engineering | Non-SQL transforms, streaming | | **Temporal** | Long-running workflows, retry-heavy, microservices | Simple ETL, small teams | | **Cron + scripts** | <3 pipelines, solo engineer, simple schedules | Anything with dependencies or retries | #### Processing | Tool | Best For | Avoid When | |------|----------|------------| | **Spark** | >100GB, complex transforms, ML pipelines | <10GB (overkill), real-time streaming | | **DuckDB** | Local analytics, <100GB, SQL on files | Distributed processing, production streaming | | **Polars** | Single-node, Rust-speed, <50GB, DataFrames | Distributed, need Spark ecosystem | | **Pandas** | <1GB, quick analysis, prototyping | Production pipelines, anything >5GB | | **Flink** | True streaming, event-time processing | Batch-only, small team (steep learning curve) | | **SQL (warehouse)** | ELT in Snowflake/BigQuery/Redshift | Complex ML transforms, binary data | #### Storage | Tool | Best For | Avoid When | |------|----------|------------| | **Snowflake** | Analytics, separation of compute/storage, multi-cloud | Tight budget, real-time OLTP | | **BigQuery** | GCP-native, serverless, large-scale analytics | Multi-cloud, need fine-grained cost control | | **Redshift** | AWS-native, existing AWS ecosystem | Elastic scaling needs, multi-cloud | | **Databricks** | ML + analytics unified, Spark-native, lakehouse | Pure SQL analytics, small data | | **PostgreSQL** | OLTP + light analytics, <500GB, budget-conscious | >1TB analytics, real-time dashboards on large data | | **S3/GCS/ADLS** | Raw data lake, cheap storage, any format | Direct SQL queries (need compute layer) | | **Delta Lake/Iceberg** | Table format on data lake, ACID on files | Simple file storage, no lakehouse need | --- ## Phase 2: Data Modeling ### Modeling Methodology Decision | Approach | Best For | Key Concept | |----------|----------|-------------| | **Kimball (Dimensional)** | BI/reporting, star schemas | Facts + Dimensions, business-process-centric | | **Inmon (3NF)** | Enterprise data warehouse, single source of truth | Normalized, subject-area-centric | | **Data Vault 2.0** | Agile warehousing, auditability, multiple sources | Hubs + Links + Satellites, insert-only | | **One Big Table (OBT)** | Simple analytics, few joins, dashboard performance | Pre-joined, denormalized, fast queries | | **Activity Schema** | Event analytics, product analytics | Entity + Activity + Feature columns | ### Dimensional Model Template ```yaml fact_table: name: "fact_[business_process]" grain: "" # one row = one [what]? grain_statement: "One row per [transaction/event/snapshot] at [time grain]" measures: - name: "" type: "" # additive | semi-additive | non-additive aggregation: "" # SUM | AVG | COUNT | MIN | MAX | COUNT DISTINCT business_definition: "" degenerate_dimensions: [] # IDs stored in fact (order_number, invoice_id) foreign_keys: [] # links to dimension tables dimensions: - name: "dim_[entity]" type: "" # Type 1 (overwrite) | Type 2 (history) | Type 3 (previous value) natural_key: "" # business key from source surrogate_key: "" # warehouse-generated key attributes: - name: "" source: "" scd_type: "" # 1 | 2 | 3 hierarchy: [] # e.g., [country, region, city, store] ``` ### SCD Type Decision Guide | Scenario | SCD Type | Implementation | |----------|----------|----------------| | Don't care about history | **Type 1** | UPDATE in place | | Need full history | **Type 2** | New row + valid_from/valid_to + is_current flag | | Only need previous value | **Type 3** | Add previous_[column] | | Track changes with timestamps | **Type 4** | Mini-dimension (history table) | | Hybrid: some attrs Type 1, some Type 2 | **Type 6** | Combine 1+2+3 in one table | **Default recommendation:** Type 2 for anything business-critical (customer status, product price, employee department). Type 1 for everything else. ### Naming Conventions | Object | Convention | Example | |--------|-----------|---------| | Raw/staging tables | `raw_[source]_[table]` | `raw_stripe_payments` | | Staging models | `stg_[source]__[entity]` | `stg_stripe__payments` | | Intermediate models | `int_[entity]_[verb]` | `int_orders_pivoted` | | Mart/fact tables | `fct_[business_process]` | `fct_orders` | | Dimension tables | `dim_[entity]` | `dim_customers` | | Metrics/aggregates | `mrt_[domain]_[metric]` | `mrt_sales_daily` | | Snapshots | `snp_[entity]_[grain]` | `snp_inventory_daily` | | Columns: boolean | `is_[state]` or `has_[thing]` | `is_active`, `has_subscription` | | Columns: timestamp | `[event]_at` | `created_at`, `shipped_at` | | Columns: date | `[event]_date` | `order_date` | | Columns: ID | `[entity]_id` | `customer_id` | | Columns: amount | `[thing]_amount` | `order_amount` | | Columns: count | `[thing]_count` | `line_item_count` | --- ## Phase 3: Pipeline Design Patterns ### Universal Pipeline Template ```yaml pipeline: name: "" owner: "" schedule: "" # cron expression sla_minutes: 0 # max acceptable runtime tier: "" # 1 (critical) | 2 (important) | 3 (nice-to-have) extract: source_system: "" connection: "" strategy: "" # full | incremental | CDC | log-based incremental_key: "" # column for incremental (e.g., updated_at) watermark_storage: "" # where to persist last-extracted position transform: engine: "" # SQL | Spark | Python | dbt stages: - name: "clean" operations: [] # dedupe, null handling, type casting, trimming - name: "conform" operations: [] # standardize codes, currencies, timezones - name: "enrich" operations: [] # lookups, calculations, derived fields - name: "aggregate" operations: [] # rollups, pivots, window functions load: target_system: "" strategy: "" # append | upsert | merge | truncate-reload | partition-swap merge_keys: [] partition_key: "" clustering_keys: [] quality_gates: pre_load: [] # checks before writing post_load: [] # checks after writing error_handling: strategy: "" # fail-fast | dead-letter | retry | skip-and-alert max_retries: 3 retry_delay_seconds: 300 alert_channels: [] ``` ### Extraction Strategy Decision Tree ``` Is the source database? ├── Yes → Does it support CDC? │ ├── Yes → Use CDC (Debezium, AWS DMS, Fivetran) │ │ Best for: high-volume, low-latency, minimal source impact │ └── No → Does it have a reliable updated_at column? │ ├── Yes → Incremental extraction on updated_at │ │ ⚠️ Won't catch hard deletes — add periodic full reconciliation │ └── No → Full extraction │ Only viable for small tables (<1M rows) ├── Is it an API? │ ├── Supports webhooks? → Event-driven ingestion │ ├── Has cursor/pagination? → Incremental with cursor bookmark │ └── No pagination? → Full pull with rate-limit handling ├── Is it files (S3, SFTP, email)? │ └── Event-triggered (S3 notification, file watcher) │ Validate: schema, completeness, filename pattern └── Is it streaming (Kafka, Kinesis, Pub/Sub)? └── Consumer group with offset management Key decisions: at-least-once vs exactly-once, consumer lag alerting ``` ### Load Strategy Decision | Strategy | When | Trade-off | |----------|------|-----------| | **Append** | Event/log data, immutable facts | Simple but grows forever — partition + retain | | **Upsert/Merge** | Dimension updates, SCD Type 1 | Handles updates but slower on large tables | | **Truncate-Reload** | Small tables (<1M), reference data | Simple but window of missing data | | **Partition Swap** | Large fact tables, daily loads | Atomic, fast, but needs partition alignment | | **Soft Delete** | Need audit trail of deletions | Adds complexity to every downstream query | ### Idempotency Rules (NON-NEGOTIABLE) Every pipeline MUST be re-runnable without side effects: 1. **Use MERGE/UPSERT, never blind INSERT** for mutable data 2. **Partition-swap for immutable data** — drop partition + reload 3. **Store watermarks externally** — not in the pipeline code 4. **Dedup at ingestion** — use source natural keys 5. **Test by running twice** — output must be identical both times --- ## Phase 4: Data Quality Framework ### Quality Dimensions | Dimension | Definition | Example Check | |-----------|-----------|---------------| | **Completeness** | No missing values where required | `NOT NULL` on required fields, row count within range | | **Uniqueness** | No unexpected duplicates | Primary key uniqueness, natural key uniqueness | | **Validity** | Values within expected domain | Enum checks, range checks, regex patterns | | **Accuracy** | Data matches real-world truth | Cross-system reconciliation, manual spot checks |
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen