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...

相关推荐
ClouGence23 分钟前
CloudDM 新增支持 GaussDB 与 openGauss:国产数据库管理更高效
数据库·sql·ci/cd
sukalot1 小时前
window显示驱动开发—在混合系统中使用跨适配器资源
数据库·驱动开发·音视频
洛卡卡了1 小时前
数据库加密方案实践:我们选的不是最完美,但是真的够用了。
数据库·后端·面试
幽络源小助理1 小时前
MySQL实战优化高手教程 – 从架构原理到生产调优
数据库·mysql·架构
Runing_WoNiu2 小时前
Redis主从架构、哨兵模式及集群比较
数据库·redis·架构
考虑考虑3 小时前
postgressql更新时间
数据库·后端·postgresql
甄超锋3 小时前
python sqlite3模块
jvm·数据库·python·测试工具·django·sqlite·flask
HMBBLOVEPDX4 小时前
MySQL的锁:
数据库·mysql
数据皮皮侠5 小时前
最新上市公司业绩说明会文本数据(2017.02-2025.08)
大数据·数据库·人工智能·笔记·物联网·小程序·区块链
小云数据库服务专线5 小时前
GaussDB数据库架构师修炼(十六) 如何选择磁盘
数据库·数据库架构·gaussdb