Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Comprehensive Cloudflare platform skill covering Workers, D1, R2, KV, AI, Durable Objects, and security.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/pipelines/README.md
1# Cloudflare Pipelines23ETL streaming platform for ingesting, transforming, and loading data into R2 with SQL transformations.45## Overview67Pipelines provides:8- **Streams**: Durable event buffers (HTTP/Workers ingestion)9- **Pipelines**: SQL-based transformations10- **Sinks**: R2 destinations (Iceberg tables or Parquet/JSON files)1112**Status**: Open beta (Workers Paid plan)13**Pricing**: No charge beyond standard R2 storage/operations1415## Architecture1617```18Data Sources → Streams → Pipelines (SQL) → Sinks → R219↑ ↓ ↓20HTTP/Workers Transform Iceberg/Parquet21```2223| Component | Purpose | Key Feature |24|-----------|---------|-------------|25| Streams | Event ingestion | Structured (validated) or unstructured |26| Pipelines | Transform with SQL | Immutable after creation |27| Sinks | Write to R2 | Exactly-once delivery |2829## Quick Start3031```bash32# Interactive setup (recommended)33npx wrangler pipelines setup34```3536**Minimal Worker example:**37```typescript38interface Env {39STREAM: Pipeline;40}4142export default {43async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {44const event = { user_id: "123", event_type: "purchase", amount: 29.99 };4546// Fire-and-forget pattern47ctx.waitUntil(env.STREAM.send([event]));4849return new Response('OK');50}51} satisfies ExportedHandler<Env>;52```5354## Which Sink Type?5556```57Need SQL queries on data?58→ R2 Data Catalog (Iceberg)59✅ ACID transactions, time-travel, schema evolution60❌ More setup complexity (namespace, table, catalog token)6162Just file storage/archival?63→ R2 Storage (Parquet)64✅ Simple, direct file access65❌ No built-in SQL queries6667Using external tools (Spark/Athena)?68→ R2 Storage (Parquet with partitioning)69✅ Standard format, partition pruning for performance70❌ Must manage schema compatibility yourself71```7273## Common Use Cases7475- **Analytics pipelines**: Clickstream, telemetry, server logs76- **Data warehousing**: ETL into queryable Iceberg tables77- **Event processing**: Mobile/IoT with enrichment78- **Ecommerce analytics**: User events, purchases, views7980## Reading Order8182**New to Pipelines?** Start here:831. [configuration.md](./configuration.md) - Setup streams, sinks, pipelines842. [api.md](./api.md) - Send events, TypeScript types, SQL functions853. [patterns.md](./patterns.md) - Best practices, integrations, complete example864. [gotchas.md](./gotchas.md) - Critical warnings, troubleshooting8788**Task-based routing:**89- Setup pipeline → [configuration.md](./configuration.md)90- Send/query data → [api.md](./api.md)91- Implement pattern → [patterns.md](./patterns.md)92- Debug issue → [gotchas.md](./gotchas.md)9394## In This Reference9596- [configuration.md](./configuration.md) - wrangler.jsonc bindings, schema definition, sink options, CLI commands97- [api.md](./api.md) - Pipeline binding interface, send() method, HTTP ingest, SQL function reference98- [patterns.md](./patterns.md) - Fire-and-forget, schema validation with Zod, integrations, performance tuning99- [gotchas.md](./gotchas.md) - Silent validation failures, immutable pipelines, latency expectations, limits100101## See Also102103- [r2](../r2/) - R2 storage backend for sinks104- [queues](../queues/) - Compare with Queues for async processing105- [workers](../workers/) - Worker runtime for event ingestion106