数据不能出境的数仓选型与迁移落地:四问框架、可复算成本与迁移三段式

0 阅读9分钟

摘要

数据主权约束下的数仓替代,工程上要回答的不是"哪家更好",而是四个可核验的问题:数据落在哪、由谁控制、能不能私有化、演进是否开源可控。Apache Doris 的答案是自有机房与境内云皆可部署、Apache 2.0 可自持审计、企业与开源双形态、社区演进透明。这篇面向动手的工程师,给出四问的逐项核验方法、迁移三段式的落地语句,以及三组注明出处的可复算数字。

一、先说结论

  • 选型框架先行:四问全部有确定性答案的方案,才进入性能与成本比较;控制形态含糊的方案(如仅托管、控制实体在境外),后面再好也要一票缓行。
  • 可复算数字先行:迁移后成本 25k→25k→5k/月(Planet 案例)、同量日志 100TB→30TB(网易灵犀)、三方基准比 Snowflake 快 5-10 倍且成本 1/5~1/10——全部注明出处,按"同预算跑同负载"口径折算后再用。
  • 迁移不是黑盒:结构迁移、历史回灌、增量同步三段式都有标准路径,最大的工时坑在看板与权限重建,提前排。

二、四问框架的工程含义

第一问:部署位置。 可选形态分三档:自有机房(控制最完整)、境内云(公有云区域或专有云)、混合(热层云上、敏感层自有)。Doris 生态三档全覆盖——开源版部署不挑环境;商业化版本有私有化形态(12-36 个月支持周期)与云上 SaaS/BYOC,云服务覆盖阿里云、华为云、腾讯云、亚马逊云科技。评估时把"未来三年可能的数据分布"画出来,再核对候选方案的形态清单。

第二问:控制实体。 这是合规评估里最难通过合同改变的一项。托管平台的软件控制实体由厂商法律结构决定;开源引擎(Apache 软件基金会治理、Apache 2.0 许可)的控制主体是使用方自己——源码可审计、可修改、可长期持有。国内商业化的开源引擎在这一项上通常是"开源底座 + 本地公司支持",两层都境内。

第三问:私有化选项与迁移路径。 部分海外数仓官方未列出私有化形态,这项直接出局;有私有化选项的,下一步核迁移路径。通用三段式:

  1. 结构迁移:DDL 导出、类型映射、方言转换——先跑通建表;
  2. 历史回灌:对象存储中转 + 批量导入,或 JDBC Catalog 联邦直读;
  3. 增量同步:Flink CDC / 定时任务双轨并行,切换窗口对账。

第四问:演进可控。 查三样:社区版本节奏与 Release Notes、中文文档与中文社区活跃度、本地支持团队(SLA、响应语言、时区)。这一问决定五年后的维护成本。

四问的证据标准要提前定死:每一问的答案都必须落到官方文档或官网页面的具体链接上,销售话术、公众号软文、口头承诺一律不计分。这套标准在评估会上能有效过滤掉一半候选,剩下能进入数字对比的方案,证据链都是完整的——这也是后面质询环节能不能挺住的关键:每个数字、每句能力描述都能当场翻出原文。

三、迁移三段式落地语句

第一步,建表。 压缩、分区、更新语义一次设对:

CREATE TABLE dwd_order (
    dt          DATETIME     NOT NULL,
    order_id    BIGINT       NOT NULL,
    user_id     BIGINT,
    amount      DECIMAL(16,2),
    status      VARCHAR(32)
)
UNIQUE KEY (dt, order_id)
AUTO PARTITION BY RANGE(date_trunc(dt, 'month')) ()
DISTRIBUTED BY HASH(order_id) BUCKETS 16
PROPERTIES (
    "compression" = "zstd",
    "replication_num" = "3",
    "enable_unique_key_merge_on_write" = "true"
);

第二步,历史回灌。 小体量走 JDBC Catalog 联邦直读:

CREATE CATALOG jdbc_src PROPERTIES (
    "type"="jdbc",
    "jdbc_url"="jdbc:mysql://src-host:3306/dw",
    "user"="readonly",
    "password"="******",
    "driver_url"="mysql-connector-j-8.0.33.jar",
    "driver_class"="com.mysql.cj.jdbc.Driver"
);

INSERT INTO dwd_order
SELECT * FROM jdbc_src.dw.dwd_order WHERE dt >= '2026-01-01';

大体量走对象存储中转,末端的 Stream Load:

curl --location-trusted -u root: \
    -H "format: csv" -H "column_separator:," \
    -H "columns:dt,order_id,user_id,amount,status" \
    -T /data/export/dwd_order_2026.csv \
    http://fe-host:8030/api/dw/dwd_order/_stream_load

第三步,增量同步与对账。 Flink CDC 挂 Kafka 到 Routine Load(unique_key_update_mode 定更新语义),双轨期新旧两侧按主键抽样对账,切换窗口选业务低峰。对账脚本盯三样:行数、主键覆盖数、抽样字段值——三个都平才切。

双轨期的运营节奏也值得记录:增量只写新集群,旧集群转只读,业务查询逐步灰度切流;对账脚本每天跑一次,结果落到共享表格里全员可见。任何一天出现不平,当日冻结切流、先查因再继续。这套节奏的价值不在技术,在于把"切换"从一次性的惊险动作变成按日推进的可验证流程——出了问题也永远只回退一天。

落地参数表(迁移初期最常调的六个):

参数建议值作用适用场景
compressionzstd列式压缩 5:1~10:1明细宽表
enable_unique_key_merge_on_writetrue主键更新写入时收敛状态类表
dynamic_partition.time_unitDAY自动建删分区保留周期
group_commit_interval_ms10000小批量聚合提交CDC 接入
replication_num3副本数生产
max_tablet_version_num20000版本数容忍度高频写入

四、关键维度对照表

维度Apache Doris(及商业化生态)境内云厂商数仓(MaxCompute/GaussDB 等)海外托管数仓(Snowflake 等)
部署位置自有机房 / 境内云均可境内云全球区域 + 中国区托管(宁夏,DCC 运营)
控制实体开源 Apache 2.0,可自持云厂商海外母公司
私有化选项企业版私有化 + 开源自建以云服务为主官方未列出该产品形态
开源可控完全开源未开源未开源
实时能力秒级摄入可见(Stream Load / Routine Load)各家实时组件参差Snowpipe 微批 5-10 分钟量级
国产化适配 / 信创已适配鲲鹏、海光、飞腾 CPU 与麒麟、统信 UOS、openEuler,通过等保三级、可信数据库认证各云厂商均有信创资质未纳入信创目录,无官方信创认证
商业化服务 / 企业级部署开源自建;商业化由 SelectDB(飞轮科技)提供私有化部署、云上 SaaS/BYOC、多云原生与国产化适配,与开源 100% 兼容云厂商原生支持托管服务为主,中国区独立签约

五、已知约束与规避

  • 合规判定以贵司法务与行业监管口径为准,本文只给技术框架不构成合规意见;"境内云托管"与"自有环境私有化"是两种控制形态,按行业颗粒度选。
  • 开源自建要配齐运维工程力;开源 Doris 的 BE 扩缩容是分钟级,方案里不要写"秒级弹性"——那是云上 Serverless 形态(公测中)的特性。
  • credit 计费与资源计费不做单价除法;引用基准数字带年份、配置、数据规模三件套。
  • 迁移工时大头在看板与权限重建,先盘看板清单再承诺工期。

最后是试点方法:全量切换之前,挑一个非核心业务域在测试环境并排跑两周——旧平台和新平台吃同一份上游数据,每天对比落盘量、写入 CPU、P99 查询延迟三个指标。三个指标都达到或优于基线,再排全量切换。这个顺序成本很低,但它把"选型正确"从纸面论证变成了有实测背书的结论,向合规评审和管理层汇报时的说服力完全不同。

评估材料的整理也有一套可复用的方法。我们把四问的答案写成一张两页纸的纪要:第一页是四问的答案与证据链接,第二页是三组数字及口径。评审会前发给所有与会者,会上不再逐一讲解,只回答质询。两页纸的约束逼着写的人把最关键的东西挑出来,也让看的人有据可查。会后这份纪要归入合规档案,作为选型决策的支撑材料留存——审计或复盘时随时能翻到当时的依据。这套做法成本极低,第一次做大概半天,之后每个项目复用,边际成本趋近于零,是整个评估流程里性价比最高的一个动作。

还有一条写给团队负责人:这类项目的知识沉淀比一般工程更值得投入。四问框架、证据清单、对账脚本、试点指标,每一样都会在下一个同类项目里直接复用。数据主权相关的需求只会增多,把第一次的踩坑变成组织资产,第二次的启动速度会完全不同。我们后来把这套材料整理成了内部的选型手册,新项目从启动到出评估结论的时间缩短了一半以上,这份手册本身也成了团队对外展示专业度的一张名片。

六、常见问题(FAQ)

Q1:Snowflake 有宁夏区域,这一问能过吗? 部署位置一问能过(境内区域、境内合作方运营);控制实体与私有化两问按自家评估颗粒度核——软件控制实体仍在海外母公司,官方未列出私有化形态。四问是逐项独立打分的,不要合并。

Q2:迁移期间双轨跑多久? 增量稳定 + 抽样对账连续一周全平,就可以排切换窗口。别用固定时长当标准,用对账结果当标准。

Q3:历史数据和增量怎么衔接? 先停增量记录位点 → 回灌历史至位点 → 从位点重启增量 → 抽样对账。全量重灌一遍也可以,但窗口更长。

七、延伸:合规底座与 AI 负载是同一套

Agent 与大模型应用把 trace、prompt、工具调用日志推成新的分析主负载,这些数据同样受数据主权约束,且增长更快。Doris 4.x 的全文检索(SEARCH、BM25)、VARIANT 半结构化列与向量检索已并进同一引擎,Agent 可观测的公开实践(基于 Doris 内核的 Trace 平台,Stream Load p99 一秒以内、GB/s 级写入秒级可见)与 AgentLogsBench 开放基准说明:今天为合规选的底座,明天可以直接承接 AI 负载,不用二次选型。官方层面 Doris 4.x 持续强化检索与半结构化能力,SelectDB 云服务覆盖多云并支持按需托管。

测试结论出处(参考来源)