Skip to content

Platform Comparison Matrix

This matrix compares BenchBox platform families and links exact platform counts back to runtime registry metadata.

Platform Overview

BenchBox supports platforms across registry categories and editorial documentation groups. Exact counts below are generated from PlatformRegistry.get_platform_count_summary() and checked by unit tests; the later sections remain human-oriented groupings for choosing a platform.

Platform registry: 52 metadata entries; 48 SQL-capable; 18 DataFrame-capable; 14 dual-mode; support status counts: stable=5, beta=28, experimental=18, deprecated=1.

Registry categoryPlatformsNotes
analytical8Local and engine-native analytical platforms
cloud23Managed warehouses, cloud Spark, and SaaS surfaces
dataframe5DataFrame-only metadata entries
distributed6Federated, cluster, and distributed SQL engines
embedded1Built-in embedded runtime
olap4PostgreSQL extension, embedded OLAP, and DuckLake lakehouse variants
relational1General relational database support
timeseries3Time-series engines with SQL/query support

Quick Decision Guide

1. Local development or testing?
└── Yes → DuckDB (default) or DataFusion (Arrow-native)
└── No → Continue to #2
2. Need DataFrame API (not SQL)?
└── Yes → Polars-df (single-node) or PySpark-df (distributed)
└── No → Continue to #3
3. Already using Snowflake and want DataFrame API?
└── Yes → snowpark-connect (PySpark-compatible)
└── No → Continue to #4
4. Cost is primary concern?
└── Yes → DuckDB, ClickHouse, or PostgreSQL (self-hosted)
└── No → Continue to #5
5. Data > 100GB?
└── No → DuckDB, ClickHouse, or DataFusion
└── Yes → Continue to #6
6. Which cloud provider?
└── AWS → Redshift, Athena, or EMR Serverless
└── GCP → BigQuery or Dataproc Serverless
└── Azure → Azure Synapse Analytics, Microsoft Fabric Warehouse, or Microsoft Fabric Spark
└── Multi-cloud → Snowflake or Databricks

Deployment Modes

BenchBox supports multiple deployment modes for platforms, enabling the same benchmark to run against local, self-hosted, and cloud-managed instances. Use the colon syntax to specify deployment modes: --platform platform:mode.

Platforms with Multiple Deployment Modes

PlatformDefault ModeAvailable ModesSyntax Examples
ClickHouselocallocal, serverclickhouse-local, clickhouse-server
Fireboltcorecore, cloudfirebolt:core, firebolt:cloud
TimescaleDBself-hostedself-hosted, cloudtimescaledb, timescaledb:cloud
PySparklocallocalpyspark
LakeSaillocallocal, distributedlakesail (+ lakesail-df for DataFrame mode)
Veloxlocallocal, remotevelox:local, velox:remote
DuckLakelocallocal, postgres_catalog, cloud_storageducklake with --platform-option catalog=...

First-Class Cloud Platforms (Dialect Inheritance)

PlatformInherits Dialect FromCLI NameNotes
ClickHouse CloudClickHouseclickhouse-cloudManaged ClickHouse service
MotherDuckDuckDBmotherduckServerless DuckDB cloud
DuckLakeDuckDBducklakeLocal DuckDB lakehouse (Parquet + SQL catalog)
StarburstTrinostarburstStarburst Galaxy managed Trino

Deployment Mode Characteristics

ModeCredentialsNetworkCloud StorageExamples
localNoNoNoDuckDB, chDB, Firebolt Core
self-hostedYesYesNoClickHouse Server, Trino, TimescaleDB, SingleStore
managedYesYesSometimesMotherDuck, ClickHouse Cloud, Starburst Galaxy

Local/Embedded Platforms

Zero-infrastructure platforms that run in-process. Ideal for development, testing, and medium-scale analytics.

Architecture Comparison

FeatureDuckDBDataFusionSQLitePolarsClickHouse
CLI Nameduckdbdatafusionsqlitepolars-dfclickhouse-local
ArchitectureEmbedded ColumnarIn-memory ColumnarEmbedded Row-basedIn-memory ColumnarEmbedded/Server Columnar
Storage FormatNative/ParquetArrow/ParquetB-tree PagesArrow/ParquetMergeTree
Query EngineVectorizedVectorized (Rust)B-treeVectorized (Rust)Vectorized
ConcurrencyRead-heavyIn-memory OnlyLimited WriteRead-heavyHigh Concurrent
ACID SupportLimitedNoneFullNoneLimited
SQL SupportFullFullFullDataFrame onlyFull

Relative Performance Characteristics

Performance varies based on workload, query complexity, data size, and hardware. The following are general architectural characteristics:

FeatureDuckDBDataFusionSQLitePolarsClickHouse
Storage TypeColumnarIn-memory ArrowRowIn-memory ArrowColumnar
ParallelismMulti-threadedMulti-threadedSingleMulti-threadedMulti-threaded
Data LoadingCSV/ParquetParquet/CSVCSVParquetMultiple
Memory ModelDisk + RAMIn-memoryDiskIn-memoryConfigurable
Max Recommended SF10050+1100100+

Use Cases

Use CaseRecommendedAlternatives
Development/TestingDuckDBDataFusion, SQLite
CI/CD ValidationDuckDB, SQLiteDataFusion
PyArrow WorkflowsDataFusionDuckDB
Research/AcademiaDuckDBClickHouse
Cost-SensitiveDuckDBClickHouse
DataFrame API PreferredPolars (-df)PySpark, DataFusion

Installation

Terminal window
uv add duckdb
uv add datafusion
uv add polars
uv add benchbox --extra clickhouse-local
uv add benchbox --extra clickhouse-server

In order, these commands install:

  • DuckDB, the default, which is included with BenchBox.
  • DataFusion.
  • Polars, for the DataFrame API only. Use the polars-df platform.
  • ClickHouse Local (chDB), which needs no configuration.
  • ClickHouse Server, which is self-hosted and requires a running instance.

SQLite is built into Python and needs no installation.


Cloud Data Warehouses

Managed cloud platforms with enterprise features, auto-scaling, and petabyte-scale capacity.

Architecture Comparison

FeatureBigQuerySnowflakeDatabricksRedshiftSynapseFabric DWAthenaFirebolt
CLI Namebigquerysnowflakedatabricksredshiftsynapsefabric-dwathenafirebolt
CloudGCPMulti-cloudMulti-cloudAWSAzureAzureAWSMulti-cloud
ArchitectureColumnar MPPColumnar MPPColumnar MPP (Spark)Columnar MPPColumnar MPPColumnar MPPColumnar MPP (Trino)Columnar MPP (Trino)
StorageCapacitorMicro-partitionsDelta LakeColumnar BlocksDistributedOneLake/DeltaS3/ParquetProprietary
Compute ModelServerlessVirtual WarehousesClusters/ServerlessProvisioned/ServerlessDedicated PoolsCapacity UnitsServerlessEngines

Managed PostgreSQL / Time-Series Service

PlatformCLI NameProtocolAuthenticationSSLStorageManaged
TimescaleDB / TigerDatatimescaledb:cloudPostgreSQLPasswordRequiredTigerData managed PostgreSQL storageYes

Cost Analysis

Pricing as of January 2026. Verify current rates with providers.

PlatformCompute PricingStorage PricingData TransferFree Tier
BigQuery$6.25/TiB queried$20/TB/month$0.12/GB1TB/month queries
Snowflake$2-40/credit/hourIncluded in compute$0.023/GB30-day trial
Databricks$0.15-0.65/DBUCloud storage$0.087/GB14-day trial
Redshift$0.25-16/hour$0.024/GB SSD$0.02/GB2-month trial
Synapse$1.33+/DWU/hour$0.023/GB$0.05/GB30-day trial
Fabric DWCapacity UnitsIncludedIncluded60-day trial
Athena$5/TB scannedS3 pricingS3 pricingNone
FireboltPer-engine pricingIncludedIncludedFree local mode
TigerDataService tiersIncludedIncludedFree trial tiers

Cost estimate context: Monthly costs assume SF=10 workload (~10GB), 100 queries/day, standard configurations. Actual costs vary significantly based on query complexity, concurrency, and data volume.

Security & Compliance

FeatureBigQuerySnowflakeDatabricksRedshiftSynapseFabric DWAthenaFirebolt
Encryption at RestDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefault
Encryption in TransitHTTPSTLSHTTPSTLSTLSTLSHTTPSTLS
AuthenticationIAM/OAuthUsers/SSOUsers/SSOIAM/UsersEntra IDEntra IDIAMUsers/SSO
SOC 2YesYesYesYesYesYesYesYes
HIPAAYesYesYesYesYesYesYesContact
FedRAMPYesYesYesYesYesPendingYesNo

TigerData (timescaledb:cloud) security profile:

  • Encryption at rest: Default
  • Encryption in transit: TLS (SSL required by adapter)
  • Authentication: Username/password (TIGERDATA_* primary, TIMESCALE_* fallback)

Installation

Terminal window
uv add google-cloud-bigquery google-cloud-storage
uv add snowflake-connector-python
uv add databricks-sql-connector
uv add redshift-connector boto3
uv add pyodbc azure-storage-blob azure-identity
uv add pyodbc azure-identity azure-storage-file-datalake
uv add pyathena boto3
uv add firebolt-sdk

In order, these commands install the drivers for BigQuery, Snowflake, Databricks (SQL mode), Redshift, Azure Synapse Analytics, Fabric Warehouse, Amazon Athena, and Firebolt.


Distributed SQL Engines

Federated and distributed query engines for multi-source analytics.

Architecture Comparison

FeatureTrinoPrestoDBSpark SQLClickHouseSingleStore
CLI Nametrinoprestosparkclickhouse-serversinglestore
ArchitectureDistributed MPPDistributed MPPDistributed (Spark)Distributed ColumnarDistributed Columnar
Query EngineVectorizedVectorizedSpark CatalystVectorizedVectorized + Code Gen
FederationNativeNativeVia connectorsLimitedLimited
ConcurrencyHighHighJob-basedVery HighVery High
Execution ModelInteractive MPPInteractive MPPBatch-orientedInteractiveInteractive

Architectural Characteristics

FeatureTrinoPrestoDBSpark SQLClickHouseSingleStore
Execution ModelInteractive MPPInteractive MPPBatch/micro-batchInteractive columnarInteractive HTAP
OptimizationCost-basedCost-basedCatalyst optimizerColumnar vectorizedCost-based + code gen
Max Scale Factor1000+1000+10000+1000+1000+
Memory ModelDistributedDistributedDistributedDistributedDistributed
Typical Use CaseAd-hoc federationAd-hoc federationLarge-scale batch ETLAnalytical queriesReal-time analytics/HTAP

Use Cases

Use CaseRecommendedNotes
Data Lake AnalyticsTrino, Spark SQLS3/GCS/ADLS support
Multi-source FederationTrino, PrestoDBNative connector ecosystem
Real-time AnalyticsClickHouseSingleStore, Firebolt
HTAP (Analytics + OLTP)SingleStoreTimescaleDB
Batch ETLSpark SQLNative Spark integration
Starburst EnterpriseTrinoCommercial Trino distribution

Installation

Terminal window
uv add trino
uv add presto-python-client
uv add pyspark
uv add benchbox --extra clickhouse-server
uv add singlestoredb

In order, these commands install the drivers for Trino, PrestoDB, Apache Spark SQL, ClickHouse (server mode, which requires a running instance), and SingleStore.


Spark-Compatible Engines

Native-code engines that accept Spark SQL / DataFrame workloads without running Apache Spark’s JVM execution path. Both speak the Spark Connect protocol, so the standard pyspark client is the only client library required.

Architecture Comparison

FeatureLakeSail SailApache Gluten + Velox
CLI Namelakesail (+ lakesail-df)velox
EngineRust (DataFusion core)C++ (Velox) offloaded from Spark
Spark relationshipDrop-in replacement - no JVMPlugin - retains JVM scheduler
Execution ModeSQL and DataFrameSQL (Spark SQL dialect)
ProtocolSpark ConnectSpark Connect (remote) / in-process SparkSession (local)
Platform SupportLinux, macOSLinux only (Docker on macOS/Windows)
Fallback BehaviorNative-only (no JVM path)Unsupported operators fall back to JVM
Headline Speedup~4x faster than Spark, TPC-H SF100~3.3x faster than Spark, TPC-H (Gluten community)

Deployment Options

FeatureLakeSail SailApache Gluten + Velox
LocalSingle-node multi-threaded serverIn-process SparkSession with Gluten jar
DistributedMulti-worker Rust clusterNot applicable (single-host native)
RemoteSpark Connect endpointPre-started Gluten-enabled Spark Connect server
Docker ImageCommunity imagesbenchbox-velox (linux/amd64 by default; custom arm64 jar required for native arm64)

Use Cases

Use CaseRecommendedNotes
Drop-in Spark replacement (no JVM)LakeSailRust engine, zero-rewrite migration
Accelerate existing Spark deploymentsVeloxKeep Spark scheduler; offload operators
Benchmark DataFrame + SQL on the same engineLakeSaillakesail (SQL) and lakesail-df (DF) share engine
Linux-only native tuningVeloxRequires Gluten bundle jar
macOS / Windows developmentLakeSailRuns natively; Velox requires Docker

Installation

Terminal window
uv add benchbox --extra lakesail
uv add pysail
python -m pysail spark server --port 50051
benchbox run --platform lakesail --benchmark tpch --scale 1.0
uv add benchbox --extra velox
benchbox run --platform velox --benchmark tpch --scale 0.1 \
--platform-option gluten_jar_path=/opt/gluten-velox-bundle-spark4.0_2.13-linux_amd64-1.6.0.jar

Run the pysail server in a separate terminal. LakeSail uses the standard PySpark client through Spark Connect. Velox pulls in pyspark[connect]>=3.5.0 and requires the Gluten bundle jar.

See LakeSail Platform Guide, Velox Platform Guide, and Velox Jar Setup for full setup instructions.


Relational & Time-Series Databases

Traditional relational databases and specialized time-series engines.

Architecture Comparison

FeaturePostgreSQLTimescaleDBInfluxDB
CLI Namepostgresqltimescaledbinfluxdb
TypeRelational RDBMSTime-series (PG extension)Time-series
StorageRow-based (heap)Hypertables + compressionColumnar (Parquet)
Query LanguagePostgreSQL SQLPostgreSQL SQLSQL (FlightSQL)
ACID SupportFullFullLimited
CompressionOptional (TOAST)NativeNative

Performance Characteristics

FeaturePostgreSQLTimescaleDBInfluxDB
Query LatencyLowLowVery Low
Write ThroughputMediumHighVery High
Time-series QueriesManual optimizationNative optimizationNative optimization
Max Recommended SF10100100
Best ForOLTP workloadsTime-series OLAPIoT/metrics

Use Cases

Use CaseRecommendedNotes
OLTP BenchmarkingPostgreSQLTraditional workloads
Time-series AnalyticsTimescaleDBContinuous aggregates
IoT/MetricsInfluxDBHigh-cardinality support
Hybrid OLTP/OLAPTimescaleDBBest of both worlds

Installation

Terminal window
uv add benchbox --extra postgresql
uv add benchbox --extra influxdb

The postgresql extra provides the psycopg 3 driver; the influxdb extra provides influxdb3-python.

In order, these commands install the drivers for PostgreSQL, TimescaleDB (which uses the same driver as PostgreSQL), and InfluxDB.


Managed Spark Services

Cloud-managed Apache Spark environments for distributed processing.

AWS Spark Services

FeatureAWS GlueEMR ServerlessAthena for Spark
CLI Nameglueemr-serverlessathena-spark
TypeManaged ETLServerless SparkInteractive Spark
Startup Time2-5 minutes~30s (warm), 2-3min (cold)~30s (warm), 1-2min (cold)
Pricing$0.44/DPU-hourvCPU + MemoryDPU-hour
Use CaseETL pipelinesBatch processingInteractive analysis
Data CatalogGlue CatalogGlue CatalogGlue Catalog

GCP Spark Services

FeatureDataprocDataproc Serverless
CLI Namedataprocdataproc-serverless
TypeManaged ClustersServerless Batches
Startup Time1-2 minutes30-60 seconds
PricingPer-secondPer-second
Use CaseLong-running clustersAd-hoc batches
MetastoreHive MetastoreHive Metastore

Azure Spark Services

FeatureFabric SparkSynapse Spark
CLI Namefabric-sparksynapse-spark
TypeSaaS SparkEnterprise Spark
StorageOneLakeADLS Gen2
AuthEntra IDEntra ID
PricingCapacity UnitsvCore-hour
Use CaseFabric ecosystemEnterprise analytics

Cross-Cloud Comparison

FeatureGlueEMR ServerlessDataprocDataproc ServerlessFabric SparkSynapse Spark
ServerlessYesYesNoYesYesNo
DataFrame ModeYesYesYesYesYesYes
SQL ModeYesYesYesYesYesYes
Auto-scalingYesYesManualYesYesManual
Spot/PreemptibleNoYesYesNoNoNo

Multi-Cloud Spark Alternatives

FeatureOnehouse QuantonDatabricks
CLI Namequantondatabricks
TypeServerless SparkManaged Spark
Table FormatsHudi, Iceberg, DeltaDelta (native)
XTable SupportYesNo
PricingCompute-hoursDBU-hours
Use CaseMulti-format lakesLakehouse
Cloud SupportAWSAWS, Azure, GCP

Installation

Terminal window
uv add boto3
uv add google-cloud-dataproc google-cloud-storage
uv add azure-identity azure-storage-file-datalake requests
uv add requests boto3

In order, these commands install the dependencies for AWS Spark services (Glue, EMR Serverless, Athena for Spark), GCP Spark services (Dataproc, Dataproc Serverless), Azure Spark services (Fabric Spark, Synapse Spark), and Onehouse Quanton.


DataFrame Platforms

Native DataFrame API libraries for programmatic data manipulation.

Expression Family (Lazy Evaluation)

FeaturePolarsPySparkDataFusionDatabricksSnowpark ConnectLakeSail
CLI Namepolars-dfpyspark-dfdatafusion-dfdatabricks-dfsnowpark-connectlakesail-df
LanguageRust + PythonScala + PythonRust + PythonScala + PythonPythonRust + Python
ExecutionLazyLazyLazyLazyLazy (pushdown)Lazy
ParallelismMulti-threadedDistributedMulti-threadedDistributedSnowflake computeMulti-threaded / distributed
Memory ModelIn-memory + streamingCluster-boundIn-memoryCluster-boundSnowflake-managedIn-memory + streaming
Arrow NativeYesYesYesYesNo (Snowflake types)Yes

Pandas Family (Eager/Lazy)

FeaturePandasDaskcuDF
CLI Namepandas-dfdask-dfcudf-df
ExecutionEagerLazyEager
ParallelismSingle-threadedDistributedGPU
API CompatibilityReferenceNear drop-inNear drop-in
Best ForSmall datasetsDistributedGPU acceleration

Performance Characteristics

PlatformQuery LatencyThroughputMemory UsageMax SF
PolarsVery LowVery HighEfficient100
PySparkMediumVery HighCluster-bound1000+
DataFusionVery LowHighEfficient50
DatabricksMediumVery HighCluster-bound1000+
Snowpark ConnectMediumHighSnowflake-managed1000+
LakeSailLowVery HighEfficient100+
PandasLowMediumHigh10
DaskMediumHighDistributed1000+
cuDFVery LowVery HighGPU VRAM50

GPU Acceleration

FeaturecuDFPySpark (RAPIDS)
HardwareNVIDIA GPUNVIDIA GPU
PlatformLinux onlyLinux only
APIPandas-likeSpark DataFrame
MemoryGPU VRAMGPU + Host
Use CaseSingle-node GPUDistributed GPU

Installation

Terminal window
uv add polars
uv add pyspark
uv add datafusion
uv add databricks-connect
uv add "snowflake-snowpark-python[pandas]"
uv add pyspark pyarrow
uv add pandas
uv add dask[distributed]
pip install cudf-cu12 --extra-index-url=https://pypi.nvidia.com

The commands install, in order:

  • The expression-family libraries: Polars, PySpark (requires Java 17 or 21), and DataFusion.
  • Databricks DataFrame, which requires Databricks Connect.
  • Snowpark Connect, which is PySpark-compatible on Snowflake.
  • LakeSail DataFrame, which uses Spark Connect through the standard PySpark client.
  • The Pandas family: Pandas and Dask.
  • cuDF, which needs an NVIDIA GPU and Linux. It uses pip because of its CUDA dependencies.

Hybrid Platforms (SQL + DataFrame)

These platforms support both SQL and native DataFrame execution modes. Use the appropriate CLI name based on your preferred execution paradigm.

PlatformSQL ModeDataFrame ModeDefault ModeNotes
DataFusiondatafusiondatafusion-dfSQLArrow-native both modes
PySparksparkpyspark-dfDataFrameSparkSQL vs DataFrame API
Databricksdatabricksdatabricks-dfSQLSQL Warehouse vs Databricks Connect
Snowpark ConnectN/Asnowpark-connectDataFramePySpark-compatible API on Snowflake
LakeSaillakesaillakesail-dfSQLRust/DataFusion engine, Spark Connect

Usage Example:

Terminal window
benchbox run --platform polars-df --benchmark tpch --scale 1
benchbox run --platform datafusion --benchmark tpch --scale 1
benchbox run --platform datafusion-df --benchmark tpch --scale 1
benchbox run --platform databricks --benchmark tpch --scale 10
benchbox run --platform databricks-df --benchmark tpch --scale 10
benchbox run --platform snowpark-connect --benchmark tpch --scale 10

Polars supports DataFrame mode only. DataFusion supports SQL mode (datafusion) and DataFrame mode (datafusion-df). Databricks runs against a SQL Warehouse (databricks) or through Databricks Connect (databricks-df). Snowpark Connect runs DataFrame workloads on Snowflake.


Benchmark Support Matrix

TPC Benchmarks

BenchmarkLocalCloud DWDistributedTime-SeriesDataFrame
TPC-HAllAllAllPostgreSQL, TimescaleDBAll
TPC-DSDuckDB, ClickHouseAllAllN/APolars, PySpark, Databricks
SSBAllAllAllN/AAll

Analytics Benchmarks

BenchmarkLocalCloud DWDistributedTime-SeriesDataFrame
ClickBenchDuckDB, ClickHouseAllClickHouseN/APolars
H2O.aiDuckDBAllSparkN/AAll
AMPLabDuckDBAllSpark, DatabricksN/APySpark, Databricks

Time-Series Benchmarks

BenchmarkPostgreSQLTimescaleDBInfluxDB
TSBS DevOpsLimitedFullNative
TSBS IoTLimitedFullNative

Scale Factor Recommendations

Scale FactorDataset SizeRecommended Platforms
0.001-0.011-10MBDuckDB, DataFusion, SQLite
0.1-1100MB-1GBDuckDB, DataFusion, ClickHouse, Polars
1-101-10GBDuckDB, ClickHouse, BigQuery, All DataFrame
10-10010-100GBDuckDB, ClickHouse, All Cloud DW, PySpark
100-1000100GB-1TBBigQuery, Snowflake, Databricks, Redshift
1000+1TB+BigQuery, Snowflake, Databricks, Spark

Cost Comparison (All Categories)

All cost estimates as of January 2026. Based on SF=10 workload (~10GB data), 100 queries/day.

Free/Open Source

PlatformTypeCost
DuckDBLocalFree
DataFusionLocalFree
SQLiteLocalFree
PolarsLocal/DataFrameFree
ClickHouseLocal/ServerFree (self-hosted)
PostgreSQLRelationalFree (self-hosted)
Trino/PrestoDistributedFree (self-hosted)
SparkDistributedFree (self-hosted)

Cloud Pay-Per-Use

PlatformTypical Monthly CostBest ForCost Basis
BigQuery$50-5000GCP workloads$6.25/TiB queried
Athena$50-2000S3 data lake$5/TB scanned
Firebolt$100-3000High-performance analyticsPer-engine

Cloud Provisioned

PlatformTypical Monthly CostBest ForCost Basis
Snowflake$100-10000Multi-cloud enterpriseCredits/hour
Databricks$200-5000ML/LakehouseDBU/hour
Redshift$100-5000AWS enterpriseNode-hours
Synapse$200-5000Azure enterpriseDWU-hours
FabricCapacity-basedMicrosoft ecosystemCapacity Units

Use Case Recommendations

By Team Size

Team ProfileRecommendedAlternatives
Individual DeveloperDuckDBDataFusion, Polars
Small Team (2-5)DuckDB, ClickHousePostgreSQL
Medium Team (5-20)BigQuery, SnowflakeDatabricks
EnterpriseSnowflake, DatabricksRedshift, Synapse

By Workload

WorkloadRecommendedAlternatives
Ad-hoc AnalyticsDuckDB, BigQueryAthena, Snowflake
Production DashboardsSnowflake, BigQueryRedshift, Databricks
ML/Data ScienceDatabricks, PySparkSnowflake, BigQuery
Real-time AnalyticsClickHouseFirebolt
Time-series IoTTimescaleDB, InfluxDBClickHouse
Data LakeDatabricks, AthenaTrino, Spark

By Cloud Provider

CloudData WarehouseSpark ServiceServerless
AWSRedshiftEMR ServerlessAthena
GCPBigQueryDataproc ServerlessBigQuery
AzureSynapse, Fabric DWFabric SparkFabric DW
Multi-cloudSnowflake, DatabricksDatabricksSnowflake

Migration Complexity

From \ ToDuckDBBigQuerySnowflakeDatabricks
DuckDB-MediumMediumHard
BigQueryMedium-EasyMedium
SnowflakeMediumEasy-Medium
DatabricksHardMediumMedium-
RedshiftMediumMediumEasyMedium

Summary by Category

Local/Embedded

  • DuckDB: Default choice for development, testing, and medium-scale analytics
  • DataFusion: Arrow-native, ideal for PyArrow workflows
  • SQLite: Lightweight testing and CI/CD
  • Polars: High-performance DataFrame library (DataFrame API only, use polars-df)
  • ClickHouse: High-throughput analytics (local or server mode)

Cloud Data Warehouses

  • BigQuery: GCP serverless, pay-per-query
  • Snowflake: Multi-cloud enterprise, elastic scaling
  • Databricks: Lakehouse, ML/data science
  • Redshift: AWS-native, provisioned or serverless
  • Synapse: Azure enterprise, T-SQL compatible
  • Fabric DW: Microsoft ecosystem, OneLake integration
  • Athena: AWS serverless, S3 data lake
  • Firebolt: High-performance vectorized analytics

Distributed SQL

  • Trino: Federated SQL, data lake analytics
  • PrestoDB: Meta’s fork, similar to Trino
  • Spark SQL: Batch processing, Spark ecosystem
  • ClickHouse: Real-time OLAP, high concurrency
  • SingleStore: Distributed HTAP, columnstore analytics (MySQL protocol)

Spark-Compatible Engines

  • LakeSail Sail: Rust drop-in Spark replacement (DataFusion core), SQL + DataFrame via Spark Connect
  • Apache Gluten + Velox: Native C++ acceleration plugin for Spark SQL (Linux-only local mode; Docker on macOS/Windows)

Relational & Time-Series

  • PostgreSQL: Traditional RDBMS baseline
  • TimescaleDB: Time-series on PostgreSQL
  • InfluxDB: IoT and metrics workloads

Managed Spark

  • AWS: Glue, EMR Serverless, Athena for Spark
  • GCP: Dataproc, Dataproc Serverless
  • Azure: Fabric Spark, Synapse Spark

DataFrame

  • Expression Family: Polars (single-node), PySpark (distributed), DataFusion (Arrow-native), Databricks (managed), Snowpark Connect (Snowflake-native), LakeSail (Rust/DataFusion via Spark Connect)
  • Pandas Family: Pandas (reference), Dask (distributed), cuDF (GPU-accelerated)

Resources