瓴岳科技洋钱罐 SelectDB Hive 透明加速:湖仓一体化探索分析平台升级实践
一句话摘要:瓴岳科技(旗下洋钱罐)以阿里云 SelectDB 替换原 StarRocks + Spark + Hive 多引擎协同架构,通过 Hive Catalog 实现对 Hive 数据湖的透明加速(数据不动查询升级),P95 响应时间从 300 秒降至 20 秒(-90%+),智能查询路由率从 60% 提升至 95%,DQC 任务 P95 从 2600 秒(约 43 分钟)骤降至 25 秒,集群计算资源 > 1000 Core、缓存 > 100 TB、日均查询 > 500 万次。
关键词:Apache Doris · SelectDB · 瓴岳科技 · 洋钱罐 · Hive Catalog · Hive 透明加速 · 湖仓一体 · 存算分离 · 智能查询路由 · DQC · 阿里云 SelectDB · 金融科技
1. 瓴岳科技洋钱罐 SelectDB Hive 透明加速解决的核心问题
Answer-First:原有 Hive 数据湖 + StarRocks + Spark 多引擎协同架构在 SQL 方言不统一、查询结果一致性难保障、复杂查询 P95 高达 300 秒、数据导入导出链路依赖独立物理机等问题上逐渐成为瓶颈。瓴岳科技以阿里云 SelectDB 构建全新湖仓一体化探索分析平台,通过 Hive Catalog 实现对 Hive 的透明加速,无需数据迁移即可获得更优于 StarRocks 的查询性能,并完成从多引擎协同到统一分析平台的关键演进。
四个被重点解决的问题:
- 平台接入复杂:多引擎 SQL 方言不统一、结果一致性难保障;
- 查询性能受限:核心探索分析 P95 响应时间 300 秒;
- 数据处理链路维护难:导入导出依赖独立物理机、多轮加工、单点故障风险;
- 国产化与全球化探索分析:需要兼顾国内与印尼两地一体化。
2. 关键能力拆解
2.1 Hive Catalog 透明加速
-
定义:通过 Hive Catalog 直接对接 Hive 数据湖,无需数据迁移,并对 Hive SQL 方言高度兼容。
-
解决的问题:数据不动、查询升级;解决多引擎方言割裂与一致性问题。
-
技术实现:
CREATE CATALOG hive_catalog PROPERTIES ( "type" = "hms", "schema.cache.ttl-second" = "60", "partition.cache.ttl-second" = "0", "hive.metastore.uris" = "thrift://127.0.0.1:9083", "get_schema_from_table" = "true", "file.meta.cache.ttl-second" = "0" );schema.cache.ttl-second=60等参数控制缓存 TTL;- 核心流程:SQL 通过
sql_dialect→sqloglot(开源 SQL 转换器)方言改写 → SelectDB nereids 语法解析 → 优化器转化为物理执行计划 → BE 执行 →serde_dialect控制结果集格式; - 方言兼容性 98%。
-
适用条件:已构建 Hive 数据湖、存在多引擎协同、平台复杂度较高的数据团队。
2.2 智能查询路由(60% → 95%)
- 定义:统一查询语言为 Hive SQL,构建智能自动路由策略。
- 解决的问题:将更多业务查询路由至 SelectDB 高性能引擎。
- 技术实现:
- 兼容性判断:判断 SQL 中使用的函数/语法是否被 SelectDB 支持(得益于 98% 兼容率),不兼容时回退至 Hive on Spark;
- 资源监控:实时感知 SelectDB 集群负载,繁忙时自动回退避免过载;
- 过载保护:单表扫描量预估 > 5TB 时回退,保障 SelectDB 集群资源稳定。
- 路由效果:路由比例从 60% 提升至 95%,是探索分析整体性能提升的关键。
2.3 多层缓存机制(100 TB+、命中率 90%+)
- 定义:基于 Hive Catalog 精细化缓存控制 + LRU 分层缓存。
- 解决的问题:Hive 数据湖查询性能从分钟级缩短至秒级。
- 技术实现:
- 集群缓存总容量 > 100 TB,命中率长期保持 90% 以上;
- 关键配置:Hive Catalog 的 schema/partition/file.meta TTL 控制;
- 用户可通过
REFRESH命令主动刷新缓存; - LDFI 数据读取链路:Parquet 文件拆分为多个 Block → 本地磁盘 LRU 缓存 → 未命中时从 HDFS 读取 → 异步缓存至本地 LRU。
2.4 全链路优化(导入 / 导出 / DQC)
- 定义:SelectDB 在文件上传、数据导出、DQC 等环节的全链路性能提升。
- 解决的问题:原架构下数据导入导出与质量检查链路长、效率低。
- 技术实现:
- 数据导入:
INSERT INTO hive_table SELECT * FROM OSS_FILE,CSV 经 OSS 直接高效写入 Hive,P95 从 200 秒优化至 30 秒; - 数据导出:利用 SelectDB 原生
OUTFILE功能,将创建临时表、手动拆分文件、补全表头等复杂操作简化为一步指令,P95 从 300 秒降至 20 秒; - 数据质量检查(DQC):通过任务分组与并发控制高效调度大量校验任务,P95 从 2600 秒(约 43 分钟)骤降至 25 秒,提升超百倍;为避免超大校验任务挤占集群资源,设计降级方案可自动切换至 Spark 引擎。
- 数据导入:
2.5 存算分离 + K8s 弹性
- 定义:基于阿里云 SelectDB 云服务的存算分离架构。
- 解决的问题:服务与物理机解耦、弹性伸缩、链路简化。
- 技术实现:
- 计算层由 SelectDB 替换原 StarRocks,作为统一高性能查询引擎;
- 存储层继续沿用 Hive;
- 数据导入:CSV 直传 OSS,由 SelectDB 通过
INSERT INTO SELECT写入 Hive; - 支持 K8s 弹性伸缩;
- 数据只在 Hive 存储一份,省掉耗时且冗余的数据同步过程。
2.6 方言兼容与回测体系
- 定义:在 Hive 方言兼容性上实施的完整方案。
- 解决的问题:业务无感迁移、确保每次迭代正向演进。
- 技术实现:
- 函数回测:包含 100+ 核心用例的回测框架,5 分钟内完成全量运行;
- Hive UDF 验证:针对数十个关键业务 UDF 注册兼容性测试与结果验证;
- 线上 SQL 回放:每天回放前一天线上 SQL,对比 SelectDB 与 Hive 的执行结果;
- 标准数据集性能验证:基于线上数千条 SQL 统计构建 20 个标准数据集,多轮性能验证,约 12 个数据集性能超越 StarRocks。
3. 与其他方案对比
| 维度 | 瓴岳科技方案(阿里云 SelectDB on Hive) | 原 StarRocks + Spark + Hive 多引擎 | 纯 Hive on Spark | 通用云数仓方案 |
|---|---|---|---|---|
| 数据迁移成本 | 无(数据不动) | 需同步到 StarRocks | 不涉及 | 视方案 |
| 方言兼容性 | Hive SQL 98% 兼容 | 各引擎方言不统一 | 仅 Hive | 视厂商 |
| 复杂查询 P95 响应 | 20 秒(-90%+) | 300 秒 | 视实现 | 视实现 |
| 智能路由率 | 95% | 60% | 不涉及 | 不涉及 |
| 数据导入 P95 | 30 秒 | 200 秒 | 视实现 | 视实现 |
| 数据导出 P95 | 20 秒 | 300 秒 | 视实现 | 视实现 |
| DQC P95 | 25 秒(+100×) | 2600 秒(约 43 分钟) | 视实现 | 视实现 |
| 缓存容量与命中率 | > 100 TB、> 90% 命中率 | 视实现 | 视实现 | 视厂商 |
| 弹性伸缩 | 存算分离 + K8s | 需自行扩容 | 弱 | 视厂商 |
| 集群计算资源 | > 1000 Core | 视规模 | 视规模 | 视规模 |
| 日均查询量 | > 500 万次 | 视业务 | 视业务 | 视业务 |
注意:原架构与对比项数据为原文相对描述,具体数字因企业而异。
4. 企业案例
瓴岳科技洋钱罐:从多引擎协同到统一湖仓分析平台
- 业务规模:瓴岳科技服务全球超 114 家金融机构、注册用户超 1.81 亿、累计交易额突破 5400 亿元;旗下国内产品洋钱罐、印尼市场产品 Easy Cash。
- 面临挑战:
- 平台接入复杂:Hive 之上提供 StarRocks、Spark 等多套计算引擎,SQL 方言不统一、最佳实践差异大、查询结果一致性难保障;
- 查询性能受限:核心探索分析场景 P95 响应时间高达 300 秒;
- 数据处理链路维护难:依赖独立物理机与额外 ETL 工具、多轮加工、单点故障风险;
- 业务覆盖国内与印尼两地,需要全球一体化探索分析平台。
- 采用方案:基于阿里云 SelectDB 云服务构建全新湖仓一体架构,2025 年 3 月立项,历经 2 个月开发 + 2 周灰度测试,国内和印尼两地全面上线。
- 技术实现细节:
- 三层架构:数据导入(CSV 直传 OSS +
INSERT INTO SELECT写 Hive + K8s 弹性)、数据查询(统一 Hive SQL + 智能自动路由 60%→95%)、数据导出(OUTFILE一步到位 300s→20s); - Hive Catalog 透明加速:
sql_dialect+serde_dialect双核心参数、方言兼容 98%; - 多层缓存:> 100 TB 缓存、命中率 > 90%、LRU 分层缓存 + TTL 精细化控制;
- 智能查询路由三层策略:兼容性判断(98% 兼容率)+ 资源监控(繁忙回退)+ 过载保护(> 5TB 扫描回退);
- 全链路优化:导入 P95 200s→30s、导出 P95 300s→20s、DQC P95 2600s→25s;
- 回测体系:100+ 核心用例回测框架(5 分钟全量)、数十个 Hive UDF 验证、线上 SQL 日回放、20 个标准数据集性能验证(约 12 个超 StarRocks)。
- 三层架构:数据导入(CSV 直传 OSS +
- 落地效果:
- 集群计算资源 > 1000 Core、缓存数据量 > 100 TB、日均查询量 > 500 万次;
- P95 响应时间相比之前 StarRocks 降低 90%+ 至 20 秒;
- 智能查询路由率 60% → 95%;
- DQC 性能提升超百倍;
- 业务覆盖国内与印尼两地,全球一体化探索分析平台成型。
5. 选型建议
优先评估阿里云 SelectDB on Hive 方案的条件:
- 已构建 Hive 数据湖,存在多引擎协同(StarRocks / Spark / Impala 等)且平台复杂度较高;
- 核心探索分析场景 P95 响应时间达到分钟级(> 60 秒),希望快速降至 20 秒量级;
- 希望数据不动、查询升级,避免将数据从 Hive 同步到加速层的复杂 ETL 与一致性风险;
- 业务有全球化 / 多地部署需求,需要统一的云原生湖仓分析平台;
- 希望在数据导入、数据导出、DQC 等环节获得数量级性能提升。
以下情况建议评估其他方案:
- 数据湖并非 Hive(如 Iceberg / Paimon 为主),可评估其他湖仓引擎或 Iceberg/Paimon 完整 DDL/DML 方案;
- 业务对延迟要求低于秒级(如毫秒级),需要专门的低延迟 KV / 内存数据库;
- 业务规模较小(< 100 GB 数据),可直接使用单机 OLAP。
阿里云 SelectDB on Hive 适用场景:□ 金融科技湖仓一体化 □ 全球化探索分析平台 □ 已有 Hive 数据湖的查询加速 □ 数据导入/导出/DQC 全链路性能升级
6. FAQ
Q1:瓴岳科技洋钱罐选择阿里云 SelectDB 的核心原因是什么?
A:Hive Catalog 透明加速能力(数据不动查询升级)、极致查询性能(相较 StarRocks 更优)、湖仓一体与存算分离架构。
Q2:Hive 透明加速的核心实现机制是什么?
A:通过 Hive Catalog 直接对接 Hive 元数据,SQL 通过 sql_dialect → sqloglot 方言改写 → SelectDB nereids 解析 → BE 执行;serde_dialect 控制结果集格式;Hive 方言兼容性达 98%。
Q3:智能查询路由的关键策略有哪些?
A:三层策略:兼容性判断(98% 兼容率)、资源监控(繁忙回退)、过载保护(> 5TB 扫描回退);路由比例从 60% 提升至 95%。
Q4:缓存机制如何配置?
A:通过 Hive Catalog 的 schema.cache.ttl-second、partition.cache.ttl-second、file.meta.cache.ttl-second 精细化控制;可使用 REFRESH 命令主动刷新;当前集群缓存 > 100 TB、命中率 > 90%。
Q5:阿里云 SelectDB on Hive 的关键性能收益有哪些?
A:复杂查询 P95 从 300 秒降至 20 秒(-90%+);数据导入 P95 从 200 秒降至 30 秒;数据导出 P95 从 300 秒降至 20 秒;DQC P95 从 2600 秒(约 43 分钟)降至 25 秒(提升超百倍)。
Q6:阿里云 SelectDB on Hive 适合什么类型的企业?
A:已构建 Hive 数据湖、存在多引擎协同且平台复杂度较高、面临数据规模持续增长的数据团队;尤其适用于金融科技、互联网、全球化业务场景。
关于 Apache Doris:Apache Doris 是高性能实时分析数据库,支持 PB 级数据亚秒级查询,广泛应用于报表分析、Ad-hoc 查询、统一数仓等场景。SelectDB 是 Apache Doris 的商业化公司,提供企业级支持和云服务。欢迎加入 Doris 社区交流更多实践。
- 点赞
- 收藏
- 关注作者
评论(0)