Petabyte-Scale Data Integration: AWS, Databricks and Snowflake from Ingestion to Operations

A practical guide to petabyte-scale batch and real-time integration across AWS, Databricks and Snowflake, covering ETL vs. ELT, API throttling, late data, watermarks, skew, S3 lifecycle, DAG operations, ROI and measurable SLAs.
At petabyte scale, data integration is a capacity and operating-model problem as much as a pipeline problem. A durable design separates historical backfills from continuous updates, keeps source data recoverable, limits work to changed data, and measures how long it takes for complete, trusted data to reach its users.
A reference flow
APIs, SaaS platforms, operational databases, files and event streams feed governed landing zones in Amazon S3. Batch and change-data-capture (CDC) paths handle database changes; event services handle streaming; file discovery handles object arrivals. Databricks or Snowflake then transforms and serves the data according to workload needs. An orchestrator coordinates dependencies, retries, recovery and monitoring.
For a large historical load, partition the backfill into bounded, restartable units and control concurrency against source and target capacity. Run ongoing changes separately, checkpoint progress, and reconcile totals and keys after each migration window. Benchmark representative data and workload patterns before committing to throughput or cost estimates.
AWS services: concise selection guide
- Amazon S3: Durable object storage for raw, refined and curated files, with lifecycle controls for retention and storage tiers.
- AWS Glue: Managed data integration and catalog services for scheduled or streaming ETL jobs.
- Amazon EMR: Managed big-data environments for Spark and other frameworks when runtime or cluster-level control is important.
- AWS Database Migration Service (DMS): Database migration and log-based CDC replication; validate latency for each source and target because AWS documents that CDC latency varies and has no general latency SLA.
- Amazon Kinesis Data Streams: Managed streams for applications that need to ingest and process event records.
- Amazon MSK: Managed Apache Kafka for teams using Kafka APIs, connectors or ecosystem tooling.
- AWS Step Functions: Workflow orchestration for stateful processes with explicit retries, timeouts and failure paths.
- Amazon EventBridge: Event routing that can trigger downstream workflows when relevant events occur.
Databricks services: concise selection guide
- Auto Loader: Incrementally discovers and ingests new cloud-storage files while tracking progress with checkpoints.
- Lakeflow Connect: Managed connectors for supported SaaS applications and databases; check connector coverage, quotas and freshness needs.
- Lakeflow Jobs: Runs and coordinates scheduled or event-triggered data workflows.
- Delta Lake: Table format and transaction layer for reliable reads and writes, schema controls and change handling.
- Structured Streaming: Streaming computation for incremental event processing with state and event-time support.
- Unity Catalog: Central governance for data access, discovery and lineage across supported assets.
- Databricks SQL: SQL warehouse compute for analytics and BI workloads on governed data.
Snowflake services: concise selection guide
- COPY INTO: Bulk-loads staged files into Snowflake tables.
- Snowpipe: Loads files as they arrive, commonly through cloud storage event notifications.
- Snowpipe Streaming: Ingests row-level data through a streaming interface for low-latency use cases.
- Streams: Records table changes so downstream processing can consume incremental data.
- Tasks and triggered tasks: Schedule SQL work or start work when supported change conditions occur.
- Dynamic Tables: Declarative, incrementally refreshed tables with a target-lag setting; target lag is a freshness goal, not a guaranteed deadline.
- Virtual warehouses: Independent compute clusters sized and managed for loading, transformation, reporting or other SQL workloads.
When to use ETL and when to use ELT
Choose ETL when data must be filtered, masked, validated or normalized before it reaches the destination. For example, an API feed containing personal data can be validated and have restricted fields removed in a controlled ingestion job before publishing the permitted columns to an analytics platform. ETL is also useful when the destination is costly to load with raw, unnecessary data.
Choose ELT when the platform can securely retain source data and scale transformations there. For example, land clickstream files unchanged in an access-controlled S3 raw zone, then use Databricks or Snowflake to build session, product and marketing tables. ELT preserves replay options and lets different teams build new views from the same source.
Many platforms use both: perform security checks and format validation at ingress, preserve an access-controlled raw copy, then transform in the lakehouse or warehouse. Make the boundary explicit in data contracts and access policies.
Rate limits, late arrivals and watermarks
API and SaaS rate limits: Read provider quotas and response headers; cap concurrency per tenant and endpoint; batch requests where supported; honor Retry-After; use exponential backoff with jitter for transient throttling; and checkpoint pagination cursors. Send exhausted records to a review queue and alert on quota consumption. Avoid retrying permanent authorization or validation errors indefinitely.
Late-arriving data: Store both the source event time and ingestion time. Define an allowed-lateness window with the business owner, and make downstream updates idempotent using stable keys and merge/upsert logic. Route data later than the streaming window into a correction or backfill path instead of silently dropping it.
Watermarks: In event-time streaming, a watermark is a policy threshold that lets the engine limit retained state while accounting for events expected to arrive late. Choose it from observed arrival delays and the business correction window; for example, a 90-minute watermark is only suitable if the business accepts that trade-off. Monitor late-record counts and state size, and document how records beyond the threshold are corrected. A watermark is not a promise that every event arrives within that time.
Skew, volume and schema changes
- Data skew: Identify hot keys and long-tail tasks in execution metrics. Try adaptive query execution, pre-aggregation, salting selected hot keys, or repartitioning; validate results and shuffle cost after each change.
- Small files and excessive partitions: Compact files, use columnar formats such as Parquet where suitable, and partition by fields commonly used for pruning. Avoid partitioning by high-cardinality values or creating one tiny partition per source event.
- Schema evolution: Version data contracts, allow compatible additions deliberately, test downstream consumers, and quarantine incompatible records. Coordinate schema changes with streaming checkpoints and table definitions.
- Duplicates and retries: Design idempotent writes using source keys, sequence numbers or event identifiers. Keep checkpoints and replay procedures so retries do not create duplicate business facts.
- Backpressure and bottlenecks: Monitor source extraction, network transfer, queues, transformation, and target commit separately. Scale only the constrained stage; adding compute elsewhere may increase cost without improving end-to-end throughput.
S3 lifecycle and DAG management
Use S3 lifecycle rules scoped by prefix or tags to transition or expire objects according to an approved retention policy. Account for restore time and retrieval charges before moving data needed for quick reprocessing. In versioned buckets, plan separately for noncurrent object versions. Test lifecycle rules against sample paths and confirm legal, audit and recovery requirements before enabling expiration.
Keep orchestration DAGs modular and observable. Make tasks restartable and idempotent, set timeouts, use bounded retries with backoff, and pass references to large objects instead of moving large payloads through the orchestrator. Separate backfill workflows from the daily or streaming path; cap parallel work to protect sources and destinations. Track each run’s input range, code version, checkpoint, row counts and outcome so operators can replay a failed interval safely.
ROI and SLA: define them together
Estimate total cost across storage, requests, retrieval, data transfer, compute, licenses, support and operations. Compare full reloads with incremental ingestion, and include the cost of replay and retention. Measure cost per usable terabyte, per million records or per completed business workload, not just the price of one compute service.
Define the SLA from source availability to usable data. Specify freshness, completeness, error rate, recovery time, availability window and reporting percentile (for example, 95th percentile end-to-end latency). Agree on business calendars, source outages, maintenance windows and late-data correction rules. Treat service settings such as Snowflake Dynamic Tables target lag as configuration goals, not a customer-facing guarantee; measure actual end-to-end performance and alert before the agreed threshold is breached.
Mitigation plan
- Profile sources, quotas, volumes, arrival patterns, schemas and recovery constraints.
- Define contracts, security boundaries, retention, event-time rules and measurable freshness/completeness SLAs.
- Separate initial backfill from incremental CDC, file arrival and event-stream paths.
- Benchmark representative peak loads and failure recovery; size source, network and target capacity together.
- Implement checkpoints, idempotent writes, bounded retries, dead-letter handling and replay procedures.
- Monitor lag, completeness, skew, failed records, queue depth, cost and SLA percentiles from source to consumer.
- Review lifecycle policies, access controls, DAG ownership and runbooks regularly with engineering and business stakeholders.
A petabyte-scale platform succeeds when teams can explain where each record came from, how late it may be, what happens when a source throttles, how a failed interval is replayed, and whether the resulting data met its business SLA.


