| Deployment | Self-hosted anywhere, incl. air-gapped | Hosted catalog; local or cloud compute | Self-hosted or ClickHouse Cloud | Hosted service only |
|---|
| Where your data lives | Your disk or object store, under your control | Managed storage or your own bucket | Your disks, or their cloud | Their account, or external tables |
|---|
| Accounts, SSO, permissions | OIDC browser login, scoped API tokens, three roles, and client-token administration; no row policies | Accounts, SSO, org roles | Users, roles, row policies | Mature RBAC, SSO, lineage |
|---|
| Table format | DuckLake — plain Parquet + SQL catalog | DuckLake — same open format | MergeTree, proprietary on disk | Delta / Iceberg, now genuinely open |
|---|
| Read data without the product | Yes — tested, see exit path | Yes, DuckLake is open | Export required | Yes, via Iceberg / Delta readers |
|---|
| Other engines read it live | Eject or export today; Iceberg REST planned | Direct with BYO compute; catalog remains hosted | Its own protocols; export for others | Yes — via their catalog endpoints |
|---|
| Time travel | Yes — query your data from an earlier point in time | Yes | No first-class equivalent | Yes, mature |
|---|
| Verified, signed export | One call — row-count attested and signed | Manual export; nothing attests it | Manual export | Manual unload; nothing attests it |
|---|
| Change data capture | Built in — typed feed + signed webhooks | Limited; not exposed directly | Kafka engine or external tooling | Yes — CDF / streams, mature |
|---|
| AI / MCP | Authenticated MCP; read tools + operator-gated writes | Managed MCP with sandboxed compute | Open-source and managed remote MCP | Managed AI and agent platforms with MCP |
|---|
| BI tools (Power BI, Tableau) | Postgres wire protocol; Power BI blocked on type loading | Postgres endpoint; connector for older tools | Native connectors and JDBC/ODBC | First-class connectors everywhere |
|---|
| Maintenance control | Explicit, dry-run by default | Automatic, not exposed | Explicit merges and TTLs | Automatic, partly exposed |
|---|
| .NET / EF Core | One model for app and lake; client package pending | Community drivers; Python/JS first | Solid ADO.NET client, no ORM story | JDBC/ODBC; .NET is second-class |
|---|
| Scale ceiling | Scale out workers; each query stays on one node | Elastic, scales past a node | Clustered, petabyte-scale | Effectively unlimited |
|---|
| Concurrent writers | PostgreSQL-backed DuckLake metadata; worker-local execution | Managed | High concurrency | High concurrency |
|---|
| Operational burden | You run it | None | High if self-hosted | Low |
|---|
| Licence | Apache-2.0 | Proprietary | Apache-2.0; Cloud proprietary | Proprietary |
|---|
| Cost shape | A VM and a bucket | Free Lite; Business $250/org/mo + usage | Free self-hosted; Cloud pay-as-you-use | Usage / credit based; enterprise spend varies |
|---|