The interface is localized. Skill descriptions and documents are machine-translated by AI into your language; code, commands, paths and technical terms stay in the original, and the author's document governs.
Explore skills
Design & creative · SKILL.md

tech-data-pipeline

tech-data-pipeline

Design data pipelines covering ETL vs ELT architectures, data source integration, scheduling, quality checks, and warehouse design. Use this skill when the user needs to move data between systems, build a data warehouse, automate data processing, or improve data reliability — even if they say 'move data from X to Y', 'build an ETL pipeline', 'our data is a …

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill documentation

GitHub

name: "tech-data-pipeline" description: "Design data pipelines covering ETL vs ELT architectures, data source integration, scheduling, quality checks, and warehouse design. Use this skill when the user needs to move data between systems, build a data warehouse, automate data processing, or improve data reliability — even if they say 'move data from X to Y', 'build an ETL pipeline', 'our data is a mess', or 'set up a data warehouse'." metadata: category: "WP-11 通用技術" tags: ["technology", "data-pipeline", "etl", "data-engineering"]

Data Pipeline Design

Framework

IRON LAW: Data Quality Checks at Every Stage

A pipeline that moves bad data fast is worse than no pipeline — it
corrupts downstream analytics and decisions. Every pipeline stage
(extract, transform, load) must have data quality checks:
row counts, null checks, schema validation, freshness checks.

"Garbage in, garbage out" is not a warning — it's a guarantee.

ETL vs ELT

AspectETL (Extract, Transform, Load)ELT (Extract, Load, Transform)
Transform where?Before loading (in pipeline)After loading (in warehouse)
Best forStructured data, compliance-heavyCloud warehouses (BigQuery, Snowflake)
FlexibilityLess (transform logic is fixed)More (transform in SQL after loading)
CostCompute in pipelineCompute in warehouse
TrendLegacy/on-premModern/cloud-native

Pipeline Architecture

[Sources] → [Extract] → [Stage] → [Transform] → [Load] → [Serve]
   ↑                                                          ↓
   |              [Quality Checks at every stage]        [Dashboard]
   |              [Monitoring & Alerting]                [API]
   └──────────────── [Orchestrator (Airflow/Prefect)] ──────┘

Data Source Types

SourceExtraction MethodChallenges
DatabaseCDC (Change Data Capture), bulk query, replicationSchema changes, performance impact on source
APIREST/GraphQL polling, webhooksRate limits, pagination, auth token refresh
FilesS3/GCS pickup, SFTP, email attachmentFormat inconsistency, encoding issues
StreamingKafka, Kinesis, Pub/SubOrdering, exactly-once processing
SaaS toolsPre-built connectors (Fivetran, Airbyte)API changes, data model complexity

Orchestration Tools

ToolTypeBest ForComplexity
AirflowPython DAGsComplex pipelines, team of engineersHigh
PrefectPython, modern APISimpler than Airflow, good DXMedium
dbtSQL transforms onlyTransform layer in ELTLow-Medium
CronSimple schedulingSingle script, low complexityLow
Fivetran/AirbyteManaged connectorsExtract + Load (no transform)Low

Data Quality Framework

CheckWhat It ValidatesWhen
Row countExpected number of rows (within ±10% of prior run)After extract, after load
Null checkCritical columns have no unexpected nullsAfter extract
Schema validationColumn names, types match expectedAfter extract
FreshnessData is recent (not stale)After load
UniquenessNo duplicate primary keysAfter load
Range checkValues within expected boundsAfter transform
Referential integrityForeign keys match parent tablesAfter load

Pipeline Design Steps

  1. Map sources and destinations: What data, from where, to where?
  2. Define freshness requirements: Real-time? Hourly? Daily?
  3. Choose architecture: ETL or ELT based on tools and team
  4. Build incrementally: Start with one source, one destination, one schedule
  5. Add quality checks: At minimum: row count + null check + freshness
  6. Set up monitoring: Alert on failure, quality check violations, latency
  7. Document: Data dictionary, pipeline diagram, SLAs

Output Format

# Data Pipeline Design: {Project}

## Sources & Destinations
| Source | Type | Destination | Freshness | Volume |
|--------|------|-----------|-----------|--------|
| {source} | DB/API/File | {dest} | {daily/hourly} | {rows/day} |

## Architecture
- Pattern: ETL / ELT
- Orchestrator: {tool}
- Transform: {tool/SQL}
- Quality: {tool/custom checks}

## Pipeline Diagram
{Source} → {Extract} → {Stage} → {Transform} → {Load} → {Serve}

## Quality Checks
| Stage | Check | Threshold | Alert |
|-------|-------|-----------|-------|
| Extract | Row count | ±10% of prior | Slack alert |
| Load | Freshness | < 6 hours old | PagerDuty |

## Schedule
| Pipeline | Frequency | Start Time | SLA |
|----------|-----------|-----------|-----|
| {name} | {daily/hourly} | {time} | Data ready by {time} |

Gotchas

  • Idempotency is essential: A pipeline that runs twice should produce the same result as running once. Use upsert (not insert) and date-partitioned loads.
  • Schema drift: Source systems change schemas without warning. Build schema detection and alerting.
  • Backfill capability: When a pipeline fails for 3 days, can you rerun for those days without duplicating data? Design for this from day 1.
  • Don't build what you can buy: Fivetran/Airbyte handle 200+ source connectors. Writing a custom Salesforce extractor is rarely worth the engineering time.
  • Data warehouse vs data lake: Warehouse (BigQuery, Snowflake) = structured, SQL-queryable. Lake (S3, GCS) = raw, any format. Most modern stacks use both (lakehouse pattern).

References

  • For dbt project structure, see references/dbt-guide.md
  • For data warehouse modeling (star schema), see references/dimensional-modeling.md
Saved skills