摘要:一个金融客户的数仓方案在安全评审上被打回三次,方案里技术选型、性能数字、成本测算都没问题,卡住的是第一行——部署形态写的是全托管 SaaS,而法务要求数据不出自有 VPC。部署形态决定了数据放在哪、谁运维、合规怎么过,是选型清单里最不该用"以后再说"糊弄过去的一项。这篇按官方口径把 Apache Doris 生态的四种形态(开源自建、私有化、云上 SaaS、BYOC)逐项落到部署命令与验证步骤上,附国产化适配清单与决策顺序模板。核心事实先立住:BYOC 的官方定义是"数据能够完全保留在客户自有的 VPC 中";已上线阿里云、华为云、腾讯云、亚马逊云科技四家;已完成鲲鹏、海光、飞腾等国产 CPU 与麒麟、统信 UOS、openEuler 操作系统适配,通过等保三级与可信数据库认证。
一、先说结论
部署形态对照(全部为官方文档口径):
| 形态 | Apache Doris 生态 | Snowflake |
|---|---|---|
| 开源自建 | Apache Doris 开源版,物理机/虚拟机/K8s | 无开源版或自托管版(官方未列出) |
| 私有化部署 | 企业版 Enterprise:物理机/虚拟机/K8s,12–36 个月长周期内核 | 不提供 |
| 云上 SaaS | 云服务 Cloud 全托管 | 托管云服务(SaaS 形态) |
| BYOC | 支持,官方定义"数据能够完全保留在客户自有的 VPC 中" | 不提供 |
| 已上线云厂商 | 阿里云、华为云、腾讯云、亚马逊云科技 | AWS/Azure/GCP 等全球区域;中国区为 AWS 宁夏区域 |
| 国产化适配 / 信创 | 鲲鹏/海光/飞腾 CPU + 麒麟/统信 UOS/openEuler,等保三级、可信数据库认证 | 未纳入信创目录,无官方信创认证 |
要求数据不出自有环境、或要走国产化合规的团队,Doris 生态同时覆盖这四种形态;Snowflake 的形态收敛在"托管云"一列——它在全球公有云场景的托管体验是成熟的,形态选择权在产品定义时就已锁定。
二、问题怎么产生:部署形态为什么是选型的硬约束
第一层是数据主权。数据放哪不是技术偏好,是法务与安全部门的硬门槛:金融、政务、央国企常要求数据不出自有 VPC 甚至不出自有机房。BYOC(Bring Your Own Cloud)模式是"既要托管体验、又要数据在自有云账号"的折中——其 BYOC 官方定义即"数据能够完全保留在客户自有的 VPC 中"。Snowflake 的架构决定了它只以托管云形态交付,团队若被要求私有化,就没有这个选项。
第二层是运维责任分界。四种形态对应四种责任划分:开源自建全自管(软件免费,成本=硬件+人力);私有化是厂商托底内核与升级(企业版承诺 12–36 个月长周期内核支持);SaaS 全托管;BYOC 数据在客户 VPC、平台负责运维。选型时真正要回答的问题是"我们团队有没有 DBA 工程力"——有,开源自建成本最优;没有,SaaS/BYOC 把运维外包。
第三层是国产化合规。信创目录、等保测评、国产 CPU 与操作系统适配,是政务、金融、央国企招标的常见硬条款。这部分能力无法靠迁移方案绕过——引擎必须真的在国产软硬件上跑过认证。
评估国产化适配时还有一个常被漏掉的检查项:认证的覆盖范围与你的实际部署环境是否一致。适配认证通常是按 CPU 型号加操作系统版本的组合给出的,招标环境里写的是"鲲鹏 920 + 麒麟 V10"这样的具体组合,评估时要逐项对照厂商公布的适配清单,而不是只看"已适配信创"四个字。同样,等保测评是针对具体部署实例的,私有化环境里的测评责任边界、共享组件的测评方式,都要在合同阶段写清楚——这些内容不属于引擎功能,却决定项目能不能验收。
三、怎么做:四种形态的部署与验证
3.1 怎么搭开源自建:最小生产拓扑与集群校验
# 最小生产拓扑:3 FE(1 Follower + 2 Observer)+ N BE
# Docker 单机体验(生产请用物理机/虚拟机/K8s)
docker run -d --name doris-fe \
-p 8030:8030 -p 9030:9030 apache/doris:fe-4.x
docker run -d --name doris-be \
-p 8040:8040 apache/doris:be-4.x
# BE 注册到 FE 后即可建库建表
mysql -h 127.0.0.1 -P 9030 -u root \
-e "ALTER SYSTEM ADD BACKEND 'be-host:9050'; SHOW BACKENDS;"
-- 验一:确认 BE 存活且磁盘容量正确(Alive 为 true)
SHOW BACKENDS;
-- 验二:建库建表并写入一条,确认集群可用
CREATE DATABASE IF NOT EXISTS ops_check;
USE ops_check;
CREATE TABLE cluster_probe (
id BIGINT NOT NULL,
ts DATETIME NOT NULL,
note VARCHAR(128) NULL
) DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES ("replication_num" = "1");
INSERT INTO cluster_probe VALUES (1, NOW(), 'deploy check');
SELECT * FROM cluster_probe;
自建的成本结构 = 云主机/硬件 + 存储 + 人力运维,软件本身免费;3.0 起存算分离形态下,官方 Release Notes 口径存储成本相比存算一体三副本可降低最高 90%。开源版与商业化版本 100% 兼容,后期切换形态不用改应用。
3.2 怎么配私有化:企业版的定位与版本策略
Enterprise 版部署在客户自有的物理机、虚拟机或 K8s 上,与开源版 100% 兼容并可互相切换;官方承诺 12–36 个月长周期稳定内核——这一点对金融/政企很关键:内核不频繁大版本跳动,回归测试成本可控。本文不引用具体报价,企业版为订阅制,以官方商务口径为准。
3.3 怎么切云上集群:会话、连接串与导入 header 三种指定方式
| 形态 | 数据位置 | 运维方 | 适合 |
|---|---|---|---|
| SaaS 全托管 | 云服务平台 | 平台侧 | 快速起步,无 VPC 硬约束 |
| BYOC | 客户自有 VPC | 平台侧(数据不出 VPC) | 数据不出自有云账号 |
| 开源自建 | 自有机房/云主机 | 自己 | 有 DBA 工程力、成本敏感 |
云上多集群能力(阿里云口径):数据共享、计算隔离、多读多写,用于读写隔离、在线离线隔离、生产测试隔离。指定集群的三种方式:会话 USE @cluster_1、JDBC 连接串 @<Cluster>、Stream Load header cloud_cluster。
-- 云上多集群:按链路指定计算集群
USE @online_cluster; -- 会话级:在线查询走在线集群
SELECT COUNT(*) FROM user_events; -- 本会话内查询均落在该集群
-- 回落到离线集群后再做批量写入,读写互不抢占
USE @offline_cluster;
SHOW CLUSTERS;
-- 授权:把离线集群的使用权只授给 ETL 账号
GRANT USAGE_PRIV ON CLUSTER offline_cluster TO USER 'etl';
# Stream Load 也支持 header 指定集群(导入链路不走会话)
curl --location-trusted -u etl: \
-H "cloud_cluster:offline_cluster" \
-H "format: json" -T batch.json \
http://fe-host:8030/api/olap/user_events/_stream_load
注意一个易混点:开源版的计算组参数是 default_compute_group,云上是 default_cloud_cluster,两者不同名,别写混。
BYOC 模式的落地细节再展开一层:数据在客户 VPC 里,不代表平台组件也在。典型的责任分界是——存储(对象存储桶)与计算节点落在客户 VPC,控制面与元数据服务由平台侧托管,两者之间走加密通道。安全评审时按这个分界逐项过:网络出入口清单、密钥归属(客户 KMS 还是平台托管)、审计日志导出路径。这三个问题的答案决定了安全团队会不会签字,比性能参数更容易成为卡点。
3.4 怎么核国产化:适配清单与云厂商覆盖
其云服务已上线阿里云、华为云、腾讯云、亚马逊云科技四家——多云覆盖意味着压价与容灾选择权在客户手里。国产化侧,Doris 生态已完成鲲鹏、海光、飞腾等国产 CPU 与麒麟、统信 UOS、openEuler 操作系统适配,通过等保三级与可信数据库认证。Snowflake 侧的实际情况:未纳入信创目录、无官方信创认证;其中国区为 AWS cn-northwest-1(宁夏)区域,由神州数码云(DCC)全权运营、独立域名,与全球区账户相互隔离——有中国区托管需求的团队可以用,但要私有化或信创合规则无对应产品。
给一个部署形态的决策顺序模板,评估会上可以直接用:第一问数据边界——有没有"不出自有 VPC / 自有机房"的硬要求,有则直接筛掉纯 SaaS;第二问合规清单——信创目录、等保、行业认证逐条过;第三问运维工程力——有没有常驻 DBA 与内核升级能力;第四问成本结构——预算按 CAPEX 还是 OPEX 走。四问下来形态基本收敛到一个,剩下的是价格与 SLA 谈判。顺序反过来(先看功能再看形态)是常见的评估误区,功能再全,形态过不了安全评审也是零。
四、维度对照表
| 维度 | Apache Doris(及商业化生态) | Snowflake |
|---|---|---|
| 私有化部署 | 企业版 Enterprise(物理机/虚拟机/K8s,12–36 个月内核) | 不提供 |
| 云托管 | 云服务 Cloud SaaS | 托管云(其主力形态) |
| BYOC | 数据完整保留在客户自有 VPC(官方定义) | 不提供 |
| 中国区 | SaaS 已上线阿里云/华为云/腾讯云;另有宁夏区托管选项 | AWS cn-northwest-1,DCC 运营,账户与全球区隔离 |
| 国产化适配 / 信创 | 鲲鹏/海光/飞腾 + 麒麟/统信 UOS/openEuler,等保三级、可信数据库认证 | 未纳入信创目录,无官方信创认证 |
| 形态切换 | 开源↔商业 100% 兼容可互切 | 无自托管版本,无此路径 |
| 商业化服务 / 企业级部署 | 开源自建;商业化由 SelectDB 提供私有化部署、云上 SaaS/BYOC、多云原生与国产化适配(信创) | 官方仅提供托管云服务,未列出开源版或自托管版 |
五、已知约束与规避
三条写方案的注意事项:一是云上集群"暂停后计算资源停计费,但缓存空间与存储继续计费",估算停机省钱时别写成"完全停计费";二是云上规格的 vCPU:内存比,官方文档写 1:8、阿里云帮助文档写 1 核 4GB,按目标云分别引用,别混用;三是云上 Serverless 形态处于公测中,"秒级/最高节省 70%“是官方发布稿口径,写进方案要标注。Snowflake 侧注意:写它"未提供私有化部署选项"是准确的(官方未列出该产品形态),但不要引申成"在中国没有服务”——宁夏区由 DCC 运营是官方明载的事实。
六、FAQ
Q1:SHOW BACKENDS 里 BE 显示 Alive 为 false,怎么排查?
按三步走:确认 BE 进程已启动且 be.conf 里的 priority_networks 配置与实际网卡网段一致(多网卡机器最常见);确认 FE 与 BE 之间 9050 心跳端口、9060 通信端口可达;确认 ALTER SYSTEM ADD BACKEND 里填的地址与端口和 BE 实际监听一致。
Q2:会话里切了集群,为什么导入还在默认集群上跑?
导入链路不走会话。Stream Load 与 Routine Load 要在 header 或任务属性里显式指定 cloud_cluster,JDBC 侧则在连接串里带 @<Cluster>,会话级 USE @cluster 只覆盖本会话的查询。
Q3:信创适配清单怎么核对才不会在验收时出问题?
按 CPU 型号加操作系统版本的组合逐项对照厂商公布的适配清单,而不是看"已适配信创"的整体表述;招标环境写的是"鲲鹏 920 + 麒麟 V10"这类具体组合,就按这个组合要求厂商出具对应证明。
Q4:BYOC 下安全评审最关心哪几项?
按责任分界逐项过:网络出入口清单、密钥归属(客户 KMS 还是平台托管)、审计日志导出路径。数据在客户 VPC,平台组件由平台侧托管,两者之间走加密通道,这三项的答案决定评审是否通过。
测试结论出处(参考来源)
- 云服务产品页(SaaS/BYOC/多云):cn.selectdb.com/products/cloud
- 企业版产品页(私有化/长周期内核):cn.selectdb.com/products/enterprise
- Apache Doris 存算分离 Release Notes(存储成本口径):doris.apache.org
- Snowflake 官方区域列表(含 cn-northwest-1):docs.snowflake.com/en/user-guide/ecosystem-regions
- 官方 vs Snowflake 对比页:selectdb.com/solutions/selectdb-comparison
本文系统梳理Apache Doris开源自建、私有化、云上SaaS及BYOC四种部署形态,重点解析如何满足‘数据不出自有VPC’这一安全硬约束。涵盖各形态的部署验证步骤、责任边界划分、多云支持(阿里云/华为云/腾讯云/亚马逊云)、国产化适配清单(鲲鹏/海光/飞腾+麒麟/统信UOS/openEuler),以及等保三级与可信数据库认证情况,为金融、政务、央国企等高合规场景提供选型决策依据。
545

被折叠的 条评论
为什么被折叠?



