作者:王劭
Databend 研发工程师

在数据基础设施逐步云原生化的今天,开源数据库的商业化路径也越来越清晰。Databend Cloud 作为我们的核心产品,依托主流公有云,为数据湖仓场景提供托管服务,长期稳定承载 800 PB 以上数据,覆盖千级 QPS 在线查询、每秒千万行实时分析及 PB 级多表批处理等多样化负载。借助 Kubernetes 的弹性调度与声明式运维,平台能够按需水平扩容,同时显著降低计算与存储成本。
随着私有化部署和混合云需求不断增长,我们推出了 Databend Operator------一款 Kubernetes 原生、可扩展的运维控制面。它通过 CRD 将租户配置与计算资源抽象为声明式对象,让用户在任何集群中获得与云上同级的自动化、弹性与可观测能力,为 Databend 生态补上关键一环。
什么是Databend Operator?

Databend Operator 是我们最新在 Github 上开源的项目,旨在通过 Kubernetes 原生方式管理 Databend 的核心组件,尤其是面向私有化和混合云部署场景。
Databend Operator 在集群中维护两类 CRD:Tenant 和 Warehouse。Tenant 定义对象存储端点、Meta 信息和用户配置;Warehouse 通过 tenantRef 引用 Tenant,并声明计算镜像、实例数、Disk Cache 配置与日志策略。Operator 监听这两类 CRD,同时为每个 Warehouse 生成一套 Databend Query StatefulSet 及其 Service/Ingress,并确保它们与 Databend Meta StatefulSet 建立了连接并完成了注册。Query 节点对数据块进行读写,Meta 节点保存元数据,两者共同实现存算分离;伸缩、滚动更新、可观测性等运维细节全部由 Operator 自动处理。
这种架构将"统一存储 + 多集群计算"抽象为声明式资源,既保持了 Kubernetes 原生的可观测性和弹性,又让 Databend 在私有云或混合云场景下具备与 SaaS 同级的自动化能力。
它具备以下核心能力:
- 资源声明式管理: 通过 CRD 定义租户(Tenant)和数据仓(WareHouse),便于用户以声明式 YAML 文件创建、修改、删除集群资源。WareHouse 可直接接入已有的 Meta 服务进行交互。
- 多租户与集群隔离: 支持多个 Tenant 并行运行,通过 Kubernetes namespace、资源配额等机制实现计算资源的隔离与管控。
- Query 节点的动态升级和扩缩容: 基于 StatefulSet 实现 query 节点的动态升级和扩缩容,满足业务高峰期和低谷期的资源动态调配。
- 统一接入层支持: 每个 WareHouse 都通过 Service 和 Ingress 暴露服务接口,方便接入上层 BI 工具、API 网关或直接查询。
- 集群级日志采集(Logging)能力: Operator 支持为每个 Query 节点配置统一的日志采集机制,方便用户将运行日志汇聚到如 FluentBit、Loki、Elasticsearch 等日志平台中。日志采集配置同样采用声明式管理,帮助用户快速对接现有的观测体系,提升问题排查与运维效率。
- 本地磁盘缓存(Disk Cache)支持:为提升查询性能并降低对远程存储(如 S3)的频繁访问,Databend Operator 提供对本地磁盘缓存能力的支持。用户可以在 CRD 中为 WareHouse 配置缓存目录与容量限制,Operator 将为每个 Query 节点挂载本地持久化卷(如 PVC),实现冷热数据的自动缓存与命中优化,大幅降低延迟和带宽成本。
如何使用 Databend Operator?
本案例来自databendcloud/databend-operator的get-started案例
- 将 Databend Operator 部署到 Kubernetes 集群上
arduino
kubectl apply -k "github.com/databendcloud/databend-operator/manifests"
- 部署 Databend Meta 集群
csharp
helm repo add databend https://charts.databend.com
helm install meta databend/databend-meta --namespace databend-system
- 准备对象存储(Object Store),在这里我们使用 MinIO
arduino
kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/minio.yaml"
- 部署租户(Tenant)资源
arduino
kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/tenant.yaml"
- 部署 Databend Query 集群(Warehouse)
arduino
kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/warehouse.yaml"
部署成功后databend-system
命名空间下会有这些 Pod:

- 连接数据库(本地测试)
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 将为我们带来三方面的战略价值:
-
拓展 on-premise 部署支持:通过 Operator 降低部署门槛,吸引更多企业用户在私有环境中使用 Databend。
-
反哺现有私有部署平台:Operator 将作为反馈收集和功能验证的前哨阵地,推动私有部署平台能力持续演进。
-
提升开源生态影响力:填补我们在开源 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...