📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

TiDB Cloud Lake vs. Snowflake: 数据摄取基准测试



概览

我们进行了四项具体的基准测试,以评估 TiDB Cloud Lake 与 Snowflake:

  1. TPC-H SF100 数据集加载:重点比较大规模数据集(100GB,约 6 亿行)的加载性能和成本。
  2. ClickBench Hits 数据集加载:测试宽表数据集(76GB,约 1 亿行,105 列)的加载效率,重点关注高列数带来的挑战。
  3. 1 秒新鲜度:衡量平台在严格的 1 秒新鲜度要求下摄取数据的能力。
  4. 5 秒新鲜度:比较平台在 5 秒新鲜度约束下的数据摄取能力。

平台

  • Snowflake:知名的云数据平台,强调可扩展计算和数据共享。
  • TiDB Cloud Lake:云原生数据仓库,专注于扩展性和成本效益。

基准测试条件

在 Small-Size 计算集群上进行测试,并使用同一个 S3 存储桶中的数据。

性能与成本对比

  • TPC-H SF100 数据:与 Snowflake 相比,TiDB Cloud Lake 可将成本降低 48%。
  • ClickBench Hits 数据:TiDB Cloud Lake 实现了 84% 的成本降低。
  • 1 秒新鲜度:TiDB Cloud Lake 的数据加载量是 Snowflake 的 400 倍。
  • 5 秒新鲜度:TiDB Cloud Lake 的数据加载量超过 27 倍。

数据摄取基准测试

Data loading benchmark

TPC-H SF100 数据集

指标SnowflakeTiDB Cloud Lake描述
Total Time695s446s加载数据集所需的时间。
Total Cost$0.77$0.40数据加载的成本。
  • Data Volume: 100GB
  • Rows: Approx. 600 million

ClickBench Hits 数据集

指标SnowflakeTiDB Cloud Lake描述
Total Time51m 17s9m 58s加载数据集所需的时间。
Total Cost$3.42$0.53数据加载的成本。
  • Data Volume: 76GB
  • Rows: Approx. 100 million
  • Table Width: 105 columns

新鲜度基准测试

Freshness benchmark

1 秒新鲜度基准测试

评估在 1 秒新鲜度要求内成功摄取的数据量。

指标SnowflakeTiDB Cloud Lake描述
Total Time1s1s数据加载时间窗口。
Total Rows100 Rows40,000 Rows在 1 秒内成功摄取的数据量。

5 秒新鲜度基准测试

评估在 5 秒新鲜度要求内可摄取的数据量。

指标SnowflakeTiDB Cloud Lake描述
Total Time5s5s数据加载时间窗口。
Total Rows90,000 Rows2,500,000 Rows在 5 秒内成功摄取的数据量。

复现基准测试

你可以按照以下步骤复现该基准测试。

基准测试环境

该基准测试在相似条件下对 Snowflake 和 TiDB Cloud Lake 进行了测试:

参数SnowflakeTiDB Cloud Lake
计算集群大小小型小型
价格$4/hour$3.2/hour
AWS Regionus-east-2us-east-2
存储AWS S3AWS S3

前提条件

数据摄取基准测试

可以按照以下步骤复现数据摄取基准测试:

TPC-H Data Loading
  1. Snowflake Data Load:

  2. TiDB Cloud Lake Data Load:

ClickBench Hits Data Loading
  1. Snowflake Data Load:

  2. TiDB Cloud Lake Data Load:

新鲜度基准测试

可以按照以下步骤复现新鲜度基准测试的数据生成和摄取过程:

  1. 在 TiDB Cloud Lake 中创建一个 外部 Stage。

    CREATE STAGE hits_unload_stage URL = 's3://unload/files/' CONNECTION = ( ACCESS_KEY_ID = '<your-access-key-id>', SECRET_ACCESS_KEY = '<your-secret-access-key>' );
  2. 将数据卸载到 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;
  3. 将数据从 external stage 加载到 hits 表。

    COPY INTO hits FROM @hits_unload_stage PATTERN = '.*[.]tsv.gz' FILE_FORMAT = (TYPE = TSV, COMPRESSION=auto);
  4. 从仪表板中查看结果。

文档内容是否有帮助?