您现在的位置是:首页 > 文章详情

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

日期:2025-04-22点击:10

作者:王劭

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 集群上

    kubectl apply -k "github.com/databendcloud/databend-operator/manifests"

  2. 部署 Databend Meta 集群

    helm repo add databend https://charts.databend.com helm install meta databend/databend-meta --namespace databend-system

  3. 准备对象存储(Object Store),在这里我们使用 MinIO

    kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/minio.yaml"

  4. 部署租户(Tenant)资源

    kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/tenant.yaml"

  5. 部署 Databend Query 集群(Warehouse)

    kubectl apply -f "github.com/databendcloud/databend-operator/examples/get-started/warehouse.yaml"

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

  1. 连接数据库(本地测试)

    配置端口转发

    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,为你的平台部署带来更高的自由度与可控性。

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

📌 开源项目地址https://github.com/databendcloud/databend-operator

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

关于 Databend

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

👨‍💻‍ Databend Cloud:databend.cn

📖 Databend 文档:docs.databend.cn

💻 Wechat:Databend

✨ GitHub:github.com/databendlab...

原文链接:https://my.oschina.net/u/5489811/blog/18219272
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章