Skip to main content

Databend 借助对象存储帮你降本增效

本篇文章围绕着:

  • 什么是对象存储
  • 当 Databend 遇到对象存储
  • 2022 年 Databend 利用对象存储降本的案例
  • 国内优秀的对象存储产品
  • 基于对象存储创业的产品

什么是对象存储

对象存储是一种可以非结构化存储和管理数据的技术。可以简单理解为 NoSQL 接口方式存储和访问数据,对象存储最有名的产品是:AWS S3。这样使对象存储原生具备了:持久性,可扩展性,数据可用性,对于对象存储比较核心的也是元数据管理。现在对象存储主要使用场景:

  • 数据归档
  • 备份和恢复
  • 数据湖
  • ML
  • 富媒体

但对象存储也有一些限制,这个限制各个厂家没有统一,使用上需要注意各厂家的指标。

  1. QPS 限制:有的厂家限制到 Bucket,有的是限制到用户,甚至有单文件下载热点控制。
  2. 带宽,现在一般都能达到 10Gbit/s 以上
  3. bucket 限制:每个帐号支持创建 Bucket 的数量有限,每个 Bucket 中对象不限制,bucket 和 地区有绑定关系,创建后不可更改,bucket 名称全局唯一。单个 bukcet 的存储空间容量不限制。
  4. 对象限制:简单上传文件大小不能超过 5GB,分片上传文件最大不能超过 ~48.8T
  5. 支持多副本,支持加密

友情提示:国内的云上对象存储分为国内和非国内的区域,一般是非国内区域性能比较弱,但如果需要较强的能力一般可以联系技术支持进行动态调配资源。

当 Databend 遇到对象存储

Databend 从研发 DayOne 就定义为基于对象存储研发一个 Severless 架构的云原生数仓。

但在这个过程中,我们也怀疑过:

  1. 对象存储是不是可以真正跑大数据计算,我们为了打消顾虑,把研发环境搬到 AWS 用最好的对象存储来验证,AWS 确时强大,对于同一个热点资源访问并发高时会出现一个短暂的 404 后,马上触发他的自动扩容,数据分区的精细控制,原生多区可用,数据加密,一切的写入更新都是 Append, 也让 Databend 也直接具备了: Data time travel Databend 针对对象存储的特性就尽高的对访问进行并发来提升性能。

  2. Parquet 格式是不是最好的存储方案。Databend 研发之初,也考虑到生态的合作,最终选择大数据生态支持比较多的 Parquet 格式做为持久化对象。Databend 是基于 Rust 研发,但 Rust 的 Parquet LZ4 压缩和社区中 python 中实现不兼容,也被受到质疑,我们后来协助 Arrow2 作者进一步兼容社区,最终和社区保持一致。现在 Arrow2 Top 10 活跃贡献者中 Databend 团队成员占了 3 位。

  3. Parquet 是不是不如 Clickhouse 的 MergeTree, 这个问题我们质疑了更久,因为 Databend 在研发中很久一段时间我们的性能都不如 Clickhouse,直到 2022 年末我们在 Parquet 的格式下差不多和 Clickhouse 的性能追平了。

hits 数据集测试

# Databend
MySQL [(none)]> select count(1), max(URL) from hits;
+----------+-----------------------------------------+
| count(1) | max(url) |
+----------+-----------------------------------------+
| 99997497 | https://yugra-advert2792270][to]=&input |
+----------+-----------------------------------------+
1 row in set (0.505 sec)
# ck
select count(1), max(URL) from hits;

SELECT
count(1),
max(URL)
FROM hits2

Query id: b161ca55-8a9a-4605-8e0b-ff1ecc40bd22

┌──count()─┬─max(URL)────────────────────────────────┐
│ 99997497 │ https://yugra-advert2792270][to]=&input │
└──────────┴─────────────────────────────────────────┘

1 row in set. Elapsed: 0.796 sec. Processed 100.00 million rows, 9.94 GB (125.55 million rows/s., 12.48 GB/s.)

Databend 这一切的优化也是借助于开源社的力量,整合百家之长于一身,终于可以在对象存储上提供一个又快又好用的云原生数仓。这也为我们 2022 接的用户奠定了基础并给未来带来了信心。

2022 年 Databend 利用对象存储上降本的案例

Dmall 使用 Databend 归档 TiDB 和 MySQL

2022 年 Databend 属于刚具备商用打磨,初期我们和 Dmall 交流可以利用 腾讯的 COS 来替换他现在的将近 30 台的大容量 MySQL 机器提供归档查询能力。 视频回放: 基于 Databend 的 TiDB 数据归档实践

Dmall 的项目需求比较简单,原来主要是解决 MySQL, TiDB 中数据不断增多,但有一些数据已经不会更改,同时部分数据已经从高频访问到低频访问及汇总分析使用。

Dmall 帮着 Databend 在实际生产中打磨非常多的问题,Databend 团队基本本着问题不过夜的态度在支撑着 Dmall 团队,也让 Dmall 团队对 Databend 有较强的信心,一路携手起来。

原始数据在 MySQL 中 150T+ ,最后迁移到 Databend 后数据量在 30T 左右,现在 Dmall 在 腾讯 COS & 海外微软 Azure 中都有使用。

DigiFinex 使用 Databend 替换部分 Clickhouse 环境

经历了 Dmall 打磨后,Databend 又多了一些成熟度。Databend 联系了 DigiFinex 进行技术交流后,他们用一台 ECS 跑 Databend + 阿里 OSS 替换原来 Clickhouse 主从架构。担任了起了某个业务大数据的 ODS 层,也许是经历了多点的打磨,DigiFinex 使用非常的顺利。全年重大事件:为了使用 Databend Bloom index 做了一次升级,遇到两次内存缓慢溢出,Databend 团队和 DigiFinex 朋友一起通过 core 文件分析定位到问题快速修复。 DigiFinex 使用 Databend 带来的好处:

  1. 架构更加简单,无主从,无 zk, Databend Query 是 Serverless 无状态,随时关停

  2. 数据存储使用 OSS 存储,一份数据随意访问并具备高可用

  3. 不用担心数据备份问题,具备 Time Travel 能力

  4. 在 Databend 中可以利用 join 做数据治理

DigiFinex 在 Databend 使用中数据存储已经突破 100T+

快手 & Databend 共建 Hive 生态

2022 的快手希望找到一个分布式计算引擎来替换现在 Hive 的计算效能低下的问题。在 Databend 上支持 Hive 的 Catalog 可以利用 Databend 把 Hive Catalog 挂上,直接对 Hive 上的数据进行计算分析,目前这个项目 2022 年 12 月已经上线,估计真正稳定和达到生产级可用预计需要到 2023 年 2 月底。

视频回放: 《快手大数据体系架构& Databend 潜在应用场景》

在这个项目中数据写入还是利用 Hive 写入,Databend 直接访问。以前做 OLTP 数据是亿级别行,现在看到是亿级别的分区...

每天 百 T+ 以上的数据进入 Databend

2022 年碰到多个项目都是每天 100T+ 的数据要进入数仓,这种数据更多是写入频率大于读取,但要求低成本实现,数据保存至少要 180 天。 我们在第一个用户合作中计划不分库不分表,一个表搞定最终失败。这块也是 Databend 2023 年重要规划,支持单表 PB 级别。

第二个用户我们双方讨论使用分表的方式,拆分成 100 张表,使用线上对象存储写入不要钱的特性,完美的实现用户的全球多 IDC 日志收集及入库,统一日志湖仓的分析环境。 目前该用户的实际环境,每秒钟大概 1GB+/s,近 10 万行日志通过 3 个 databend-query 节点入库,日志大概实现了 100T 可以压缩到 20T。

2022 年其他用户

  • DTCC 上看到微盟余成真分享在一个数据安全主题中分享,利用 Databend + 腾讯 COS 实现数据审计

Databend 在获知余成真的这边的使用后,也是全力支持余老板这边的需求。

  • 大量的需求来自给 MySQL 和 PosgreSQL 加速数据分析我们 2022 年 12 月和 Addax 合作实现可以实现比较方便从其它数据库非常方便的从其它数据库中抽取数据。

  • 某金融交易公司在云上基于 Databend 存储相关交易使用的数据,用于分析交易决策,该公司也是我们后续比较看好的,希望 Databend 帮他们打造一个 Data Market 生态。

  • 在用户的建议下,我们整合了 ClickViual 和 Grafana 进行日志展示,整合日志组件 vector,简化日志场景。

Databend 本身是一个开源的云原生数仓,用户比较方便自建,也可以使用我们的 Databend Cloud 来一起提升云上资源的利用,从来降低成本。

2023 年如果你有数据方面的降本增效的 KPI 可以 Wx 联系:Databend 我们可以提供 Databend 支持及云上对象存储使用的最佳实践

国内优秀的对象存储

国内对象存储除了大家熟悉的:阿里 OSS,腾讯 COS,华为 OBS 这些大牌子外,今年也看到不少其它同类的产品。

其中有多位用户使用 百度对象存储 BOS,这个是我 2022 年才知道的,为什么使用这个,给的答案,这个太便宜了。跑着还不错。

私有化项目看到更多是:Ceph,XSKY, 也有更利害的利用纯自研的对象存储。

基于对象存储创业产品

也许很多人都是知道 S3 才知道 AWS,S3 也是 AWS 当之无愧的王牌产品。现在 ALL IN 对象存储创业除了 Databend 之外还有:

  • JuiceFS JuiceFS 是基于云的高性能分布式文件系统,百亿级文件存储规模,适用于大数据、人工智能、自动驾驶、基因测序等海量数据存储需求。
  • Alluxio(/əˈlʌksio/)是大数据和机器学习生态系统中的数据访问层。
  • Databend Cloud 基于 Databend 定制完全面向云架构的新式数仓,它提供对象存储 + 分析能力的服务,可以快速弹性扩展,简单易用,低成本。

对象存储天生没有 VPC 概念,全球写入免费,海量数据产生也会给对象存储增长新的机会,这个赛道上,估计会有更多的机会如果你也是在对象存储这个赛道上,我们可以一起合作帮助用户降本增效。