Stream data from Azure Cosmos DB to Apache Iceberg
Move data from Azure Cosmos DB to Apache Iceberg in minutes using Estuary. Stream, batch, or continuously sync data with control over latency from sub-second to batch.
- No credit card required
- 30-day free trial


- 200+Of connectors
- 5500+Active users
- <100msEnd-to-end latency
- 7+GB/secSingle dataflow
How to integrate Azure Cosmos DB with Apache Iceberg in 3 simple steps
Connect Azure Cosmos DB as your data source
Set up a source connector for Azure Cosmos DB in minutes. Estuary supports streaming (including CDC where available) and batch data capture through events, incremental syncs, or snapshots — without custom pipelines, agents, or manual configuration.
Configure Apache Iceberg as your destination connector
Estuary supports intelligent schema handling, with schema inference and evolution tools that help align source and destination structures over time. It supports both batch and streaming data movement, reliably delivering data to Apache Iceberg.
Deploy and Monitor Your End-to-End Data Pipeline
Launch your pipeline and monitor it from a single UI. Estuary guarantees exactly-once delivery, handles backfills and replays, and scales with your data — without engineering overhead.

Azure Cosmos DB connector details
The Azure Cosmos DB connector captures documents from your Cosmos DB collections into Flow collections. It supports both real-time streaming via change streams and batch modes for collections that don’t support change streams.
- Supports multiple capture modes: Change Stream Incremental (real-time), Batch Snapshot, and Batch Incremental
- Automatically detects time series collections and uses optimal cursor fields for efficient polling
- Captures inserts, updates, and deletes when using change streams
- Batch modes enable flexible scheduled scans for collections without change stream support
- Works securely within Estuary’s Private and BYOC environments for compliance and governance
💡 Tip: For best performance, ensure your cursor field (such as _id or timeField) is indexed to optimize incremental captures.

Apache Iceberg connector details
The Apache Iceberg connector materializes Flow collections into Iceberg tables for large-scale analytics and lakehouse architectures. It orchestrates Spark jobs on AWS EMR Serverless (or another configured compute backend) to merge incoming changes, ensuring tables stay continuously up to date.
- Materializes Flow collections into Apache Iceberg tables for open table formats
- Orchestrates Spark jobs on AWS EMR Serverless to process updates
- Supports hard deletes for accurate CDC replication or soft deletes for cost savings
- Compatible with AWS Glue, S3 Tables, and Snowflake Open Catalogs via REST APIs
- Configurable sync schedules to balance performance and cost
Spend 2-5x less
Estuary customers not only do 4x more. They also spend 2-5x less on ETL and ELT. Estuary's unique ability to mix and match streaming and batch loading has also helped customers save as much as 40% on data warehouse compute costs.

Azure Cosmos DB to Apache Iceberg pricing estimate
Estimated monthly cost to move 800 GB from Azure Cosmos DB to Apache Iceberg is approximately $1,000.
Data moved
Choose how much data you want to move from Azure Cosmos DB to Apache Iceberg each month.
GB
Choose number of sources and destinations.
Why pay more?
Move the same data for a fraction of the cost.



Estuary in action
See how to build end-to-end pipelines using no-code connectors in minutes. Estuary does the rest.
What customers are saying
Why Estuary is the best choice for data integration
Estuary combines streaming and batch data movement capabilities into a unified modern data pipeline. This approach simplifies building and operating pipelines like Azure Cosmos DB to Apache Iceberg without custom code or orchestration.

Increase productivity 4x
With Estuary companies increase productivity 4x and deliver new projects in days, not months. Spend much less time on troubleshooting, and much more on building new features faster. Estuary decouples sources and destinations so you can add and change systems without impacting others, and share data across analytics, apps, and AI.
Getting started with Estuary
Free account
Getting started with Estuary is simple. Sign up for a free account.
Sign upDocs
Make sure you read through the documentation, especially the get started section.
Learn moreCommunity
I highly recommend you also join the Slack community. It's the easiest way to get support while you're getting started.
Join Slack CommunityEstuary 101
I highly recommend you also join the Slack community. It's the easiest way to get support while you're getting started.
Watch

Frequently Asked Questions
Is this integration suitable for production workloads?
Yes. Estuary pipelines are designed for production use, with exactly-once delivery semantics, automated backfills, and continuous operation at scale.
Can I control where my data runs and is processed?
Yes. Estuary offers multiple deployment options, including fully managed SaaS, private deployments, and bring-your-own-cloud (BYOC). This allows teams to control where their data plane runs and meet security, compliance, and networking requirements. Learn more about Estuary's security and deployment options.
Can I build this Azure Cosmos DB to Apache Iceberg integration manually?
Yes, it's possible to build a manual pipeline using custom scripts, scheduled jobs, or open-source tools. However, manual approaches typically require ongoing maintenance, custom error handling, schema management, and operational overhead. Estuary simplifies this by providing a managed pipeline with built-in reliability, scaling, and monitoring.
Related integrations with Azure Cosmos DB
DataOps made simple
Add advanced capabilities like schema inference and evolution with a few clicks. Or automate your data pipeline and integrate into your existing DataOps using Estuary's rich CLI.




































