Databend Operator: 打造开源的数据仓库部署利器

作者:王劭

Databend 研发工程师

在数据基础设施逐步云原生化的今天,开源数据库的商业化路径也越来越清晰。Databend Cloud 作为我们的核心产品,依托主流公有云,为数据湖仓场景提供托管服务,长期稳定承载 800 PB 以上数据,覆盖千级 QPS 在线查询、每秒千万行实时分析及 PB 级多表批处理等多样化负载。借助 Kubernetes 的弹性调度与声明式运维,平台能够按需水平扩容,同时显著降低计算与存储成本。

随着私有化部署和混合云需求不断增长,我们推出了 Databend Operator------一款 Kubernetes 原生、可扩展的运维控制面。它通过 CRD 将租户配置与计算资源抽象为声明式对象,让用户在任何集群中获得与云上同级的自动化、弹性与可观测能力,为 Databend 生态补上关键一环。

什么是Databend Operator?

Databend Operator 是我们最新在 Github 上开源的项目,旨在通过 Kubernetes 原生方式管理 Databend 的核心组件,尤其是面向私有化和混合云部署场景。

Databend Operator 在集群中维护两类 CRD:TenantWarehouse。Tenant 定义对象存储端点、Meta 信息和用户配置;Warehouse 通过 tenantRef 引用 Tenant,并声明计算镜像、实例数、Disk Cache 配置与日志策略。Operator 监听这两类 CRD,同时为每个 Warehouse 生成一套 Databend Query StatefulSet 及其 Service/Ingress,并确保它们与 Databend Meta StatefulSet 建立了连接并完成了注册。Query 节点对数据块进行读写,Meta 节点保存元数据,两者共同实现存算分离;伸缩、滚动更新、可观测性等运维细节全部由 Operator 自动处理。

这种架构将"统一存储 + 多集群计算"抽象为声明式资源,既保持了 Kubernetes 原生的可观测性和弹性,又让 Databend 在私有云或混合云场景下具备与 SaaS 同级的自动化能力。

它具备以下核心能力:

  1. 资源声明式管理: 通过 CRD 定义租户(Tenant)和数据仓(WareHouse),便于用户以声明式 YAML 文件创建、修改、删除集群资源。WareHouse 可直接接入已有的 Meta 服务进行交互。
  2. 多租户与集群隔离: 支持多个 Tenant 并行运行,通过 Kubernetes namespace、资源配额等机制实现计算资源的隔离与管控。
  3. Query 节点的动态升级和扩缩容: 基于 StatefulSet 实现 query 节点的动态升级和扩缩容,满足业务高峰期和低谷期的资源动态调配。
  4. 统一接入层支持: 每个 WareHouse 都通过 Service 和 Ingress 暴露服务接口,方便接入上层 BI 工具、API 网关或直接查询。
  5. 集群级日志采集(Logging)能力: Operator 支持为每个 Query 节点配置统一的日志采集机制,方便用户将运行日志汇聚到如 FluentBit、Loki、Elasticsearch 等日志平台中。日志采集配置同样采用声明式管理,帮助用户快速对接现有的观测体系,提升问题排查与运维效率。
  6. 本地磁盘缓存(Disk Cache)支持:为提升查询性能并降低对远程存储(如 S3)的频繁访问,Databend Operator 提供对本地磁盘缓存能力的支持。用户可以在 CRD 中为 WareHouse 配置缓存目录与容量限制,Operator 将为每个 Query 节点挂载本地持久化卷(如 PVC),实现冷热数据的自动缓存与命中优化,大幅降低延迟和带宽成本。

如何使用 Databend Operator?

本案例来自databendcloud/databend-operator的get-started案例

  1. 将 Databend Operator 部署到 Kubernetes 集群上
arduino 复制代码
kubectl apply -k "github.com/databendcloud/databend-operator/manifests"
  1. 部署 Databend Meta 集群
csharp 复制代码
helm repo add databend https://charts.databend.com
helm install meta databend/databend-meta --namespace databend-system
  1. 准备对象存储(Object Store),在这里我们使用 MinIO
arduino 复制代码
kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/minio.yaml"
  1. 部署租户(Tenant)资源
arduino 复制代码
kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/tenant.yaml"
  1. 部署 Databend Query 集群(Warehouse)
arduino 复制代码
kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/warehouse.yaml"

部署成功后databend-system命名空间下会有这些 Pod:

  1. 连接数据库(本地测试)
bash 复制代码
# 配置端口转发
kubectl port-forward svc/query-svc-test-test 8000:8000 -n databend-system
# 使用bendsql连接Databend Query Cluster
bendsql -h localhost -u root -p root

结果如下图所示:

为什么要做 Databend Operator?

参考 ClickHouse 和 Presto 等成功项目的发展经验,我们认为,推出 Databend Operator 将为我们带来三方面的战略价值:

  1. 拓展 on-premise 部署支持:通过 Operator 降低部署门槛,吸引更多企业用户在私有环境中使用 Databend。

  2. 反哺现有私有部署平台:Operator 将作为反馈收集和功能验证的前哨阵地,推动私有部署平台能力持续演进。

  3. 提升开源生态影响力:填补我们在开源 Operator 方面的空白,提升在云原生数据基础设施社区的能见度和技术影响力。

如果你是平台工程师、云原生架构师或数据基础设施爱好者,不妨试一试 Databend Operator,为你的平台部署带来更高的自由度与可控性。

欢迎关注我们,后续将分享更多技术细节与最佳实践!

📌 开源项目地址github.com/databendclo...

📬 加入我们:欢迎社区开发者共建,共同完善 Databend 云原生部署生态!

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式湖仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

👨‍💻‍ Databend Cloud:databend.cn

📖 Databend 文档:docs.databend.cn

💻 Wechat:Databend

✨ GitHub:github.com/databendlab...

相关推荐
哈哈幸运10 分钟前
MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
linux·运维·数据库·mysql·性能优化
愚公搬代码31 分钟前
【愚公系列】《Python网络爬虫从入门到精通》055-Scrapy_Redis分布式爬虫(安装Redis数据库)
数据库·爬虫·python
pwzs42 分钟前
深入浅出 MVCC:MySQL 并发背后的多版本世界
数据库·后端·mysql
大熊猫今天吃什么1 小时前
【一天一坑】空数组,使用 allMatch 默认返回true
前端·数据库
双叶8361 小时前
(51单片机)LCD显示数据存储(DS1302时钟模块教学)(LCD1602教程)(独立按键教程)(延时函数教程)(I2C总线认识)(AT24C02认识)
c语言·数据库·单片机·嵌入式硬件·mongodb·51单片机·nosql
XY.散人1 小时前
初识Redis · C++客户端list和hash
数据库·redis·缓存
码上飞扬2 小时前
深入 MySQL 高级查询:JOIN、子查询与窗口函数的实用指南
数据库·mysql
海洋与大气科学3 小时前
【matlab】地图上的小图
开发语言·数据库·matlab
Geek__19923 小时前
Sqlite3交叉编译全过程
jvm·数据库·sqlite
·云扬·3 小时前
【技术派后端篇】 Redis 实现用户活跃度排行榜
数据库·redis·缓存