Skip to main content

Databend vs. Snowflake: Data Ingestion Benchmark

Overview​

We conducted four specific benchmarks to evaluate Databend Cloud versus Snowflake:

  1. TPC-H SF100 Dataset Loading: Focuses on loading performance and cost for a large-scale dataset (100GB, ~600 million rows).
  2. ClickBench Hits Dataset Loading: Tests efficiency in loading a wide-table dataset (76GB, ~100 million rows, 105 columns), emphasizing challenges associated with high column counts.
  3. 1-Second Freshness: Measures the platforms' ability to ingest data within a strict 1-second freshness requirement.
  4. 5-Second Freshness: Compares the platforms' data ingestion capabilities under a 5-second freshness constraint.

Platforms​

  • Snowflake: A well-known cloud data platform emphasizing scalable compute, data sharing.
  • Databend Cloud: A cloud-native data warehouse built on the open-source Databend project, focusing on scalability and cost-efficiency.

Benchmark Conditions​

Conducted on a Small-Size warehouse (AWS us-east-2) using data from the same S3 bucket.

Performance and Cost Comparison​

Performance and Cost​

  • TPC-H SF100 Data: Databend Cloud offers a 67% cost reduction over Snowflake.
  • ClickBench Hits Data: Databend Cloud achieves a 91% cost reduction.
  • 1-Second Freshness: Databend loads 400 times more data than Snowflake.
  • 5-Second Freshness: Databend loads over 27 times more data.

Data Ingestion Benchmarks​

image

TPC-H SF100 Dataset​

MetricSnowflakeDatabend CloudDescription
Total Time695s446sTime to load the dataset.
Total Cost$0.77$0.25Cost of data loading.
  • Data Volume: 100GB
  • Rows: Approx. 600 million

ClickBench Hits Dataset​

MetricSnowflakeDatabend CloudDescription
Total Time51m 17s9m 58sTime to load the dataset.
Total Cost$3.42$0.30Cost of data loading.
  • Data Volume: 76GB
  • Rows: Approx. 100 million
  • Table Width: 105 columns

Freshness Benchmarks​

image

1-Second Freshness Benchmark​

Evaluates the volume of data ingested within a 1-second freshness requirement.

MetricSnowflakeDatabend CloudDescription
Total Time1s1sLoading time frame.
Total Rows100 Rows40,000 RowsVolume of data successfully ingested within 1s.

5-Second Freshness Benchmark​

Assesses the volume of data that can be ingested within a 5-second freshness requirement.

MetricSnowflakeDatabend CloudDescription
Total Time5s5sLoading time frame.
Total Rows90,000 Rows2,500,000 RowsVolume of data successfully ingested within 5s.

Reproduce the Benchmark​

You can reproduce the benchmark by following the steps below.

Benchmark Environment​

Both Snowflake and Databend Cloud was tested under similar conditions:

ParameterSnowflakeDatabend Cloud
Warehouse SizeSmallSmall
vCPU1616
Price$4/hour$2/hour
AWS Regionus-east-2us-east-2
StorageAWS S3AWS S3

Prerequisites​

Data Ingestion Benchmark​

The data ingestion benchmark can be reproduced using the following steps:

TPC-H Data Loading
  1. Snowflake Data Load:

  2. Databend Cloud Data Load:

ClickBench Hits Data Loading
  1. Snowflake Data Load:

  2. Databend Cloud Data Load:

Freshness Benchmark​

Data generation and ingestion for the freshness benchmark can be reproduced using the following steps:

  1. Create an external stage in Databend Cloud
CREATE STAGE hits_unload_stage
URL = 's3://unload/files/'
CONNECTION = (
ACCESS_KEY_ID = '<your-access-key-id>',
SECRET_ACCESS_KEY = '<your-secret-access-key>'
);
  1. Unload data to the external stage.
CREATE or REPLACE FILE FORMAT tsv_unload_format_gzip
TYPE = TSV,
COMPRESSION = gzip;

COPY INTO @hits_unload_stage
FROM (
SELECT *
FROM hits limit <the-rows-you-want>
)
FILE_FORMAT = (FORMAT_NAME = 'tsv_unload_format_gzip')
DETAILED_OUTPUT = true;
  1. Load data from the external stage to the hits table.
COPY INTO hits
FROM @hits_unload_stage
PATTERN = '.*[.]tsv.gz'
FILE_FORMAT = (TYPE = TSV, COMPRESSION=auto);
  1. Measure results from the dashboard.