人类游乐园
106.63M · 2026-04-16
瓴岳科技是一家以大数据与人工智能为核心的数字科技集团,旗下拥有国内产品洋钱罐与印尼市场产品 Easy Cash,致力于为全球用户提供卓越的金融科技服务。截至 2025 年,公司已服务全球超 114 家金融机构,拥有逾 1.81 亿注册用户,累计交易额突破 5400 亿元。
原数据平台采用 Hive 数据湖与多计算引擎(StarRocks / Spark)协同模式,其中 StarRocks 在部分场景中承担查询加速的能力。随着业务全球化与数据规模的迅猛增长,对查询体验及查询性能提出更高要求,原有架构在易用性、查询性能和扩展性方面逐渐暴露出瓶颈。
因此,团队目前亟需构建一个能够兼容现有 Hive 生态的统一查询入口(即屏蔽底层多引擎差异,统一以 Hive SQL 作为访问方式),又能提供较 StarRocks 更优的极速查询体验,以支持洋钱罐团队从数据探索到可视化分析的全球一体化探索分析平台演进。
2025 年 3 月,在评估多个技术方案后,瓴岳科技团队最终将SelectDB 全新湖仓一体架构确定为核心破局方案。其不仅在查询加速能力上更胜于 StarRocks,更从架构层面实现统一查询入口与数据湖能力的全面释放,提供了面向数据湖的统一分析能力。其核心能力主要体现在:
基于以上优势,团队正式立项引入 SelectDB。在落地过程中,为确保平滑过渡,我们构建了完整的线上 SQL 回放与结果一致性验证体系,并与 SelectDB 技术团队紧密协作,针对 Hive Catalog 的查询性能与兼容性进行了深度优化。历经两个月开发与两周灰度测试,新平台已在国内和印尼两地全面上线。
新平台的核心是基于 SelectDB 云服务搭建的存算分离架构。计算层由 SelectDB 替换原有 StarRocks,作为统一的高性能查询引擎,存储层则继续沿用 Hive。通过 SelectDB 的 Hive Catalog 功能,实现了对 Hive 数据的“所见即所得”查询,无需复杂的数据同步。
新平台架构清晰覆盖数据全生命周期,具体可分为以下三层:
INSERT INTO SELECT 方式高效写入 Hive,实现服务与物理机解耦,并支持 K8s 弹性伸缩。OUTFILE 功能,将原先需要创建临时表、手动拆分文件、补全文件头等多步复杂操作,简化为一步到位的导出指令,导出 P95 时间从 300 秒优化至 20 秒。总而言之,该架构下无需数据迁移即实现资源的弹性伸缩,且数据只在 Hive 中存储一份,省掉耗时且冗余的数据同步过程,极大简化了数据流转链路。目前,SelectDB 集群计算资源超 1000 Core,缓存数据量超 100 TB,日均查询量超 500 万次,P95 响应时间相比之前的 StarRocks 降低 90%+ 至 20 秒。
该方案提供了一种面向 Hive 数据湖的统一分析平台升级路径,可为具备类似数据架构的企业提供参考借鉴。尤其适用于已构建 Hive 数据湖、存在多引擎协同且平台复杂度较高,并面临数据规模持续增长的数据团队,具备良好的通用性与可复制性。
为确保用户无需改变查询习惯,平滑无感迁移至 SelectDB,我们在 Hive 方言兼容性上实施了一套完整方案。
在 Hive 方言兼容性方面,我们采取了多项措施,实现了 98% 的 Hive 方言兼容性,为业务无感迁移奠定了基础。
SelectDB 通过sql_dialect与serde_dialect核心参数控制方言转换。流程如下:
SQL dialect发送到sqloglot(一款开源 SQL 转换器)进行方言改写。serde_dialect参数控制结果集的展示格式(如小数位数、布尔值形式等),确保输出符合预期。通过这两个参数,SelectDB 实现了完整的方案转换逻辑,确保了查询的兼容性和执行效率。
在统一入口下,我们设计了三层智能路由策略,在提升性能的同时保障集群稳定:
兼容性判断:优先判断 SQL 中使用的函数或语法是否被 SelectDB 支持。得益于 98%的兼容率,绝大多数查询可直达 SelectDB。不兼容时将进行回退至 Hive on Spark。
资源监控:实时感知 SelectDB 集群负载。在集群繁忙时,将查询自动回退,避免过载。
过载保护:当单表扫描量预估超过 5TB 时,查询将被回退,以保障 SelectDB 集群资源稳定运行。
这些回退策略将在查询日志中明确记录,用户可据此判断当前的集群资源状态或识别不兼容的函数,并进行相应的修改。
通过以上策略的实施,自动路由的上线使我们的路由比例从原先的 60% 提升至 95%。
在 SelectDB on Hive 架构下,我们通过多层缓存机制实现了查询性能的数量级提升,核心场景查询从分钟级缩短至秒级。
目前,集群缓存总容量超过 100TB,命中率长期保持在 90% 以上,这意味着大多数场景都能有效利用缓存资源。而关键配置在于 Hive Catalog 的精细化缓存控制:通过设置不同的 TTL,我们平衡了数据新鲜度与缓存效率。用户也可通过REFRESH命令主动刷新缓存。
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"
);
以 LDFI 数据为例,我们首先将 Parquet 文件拆分为多个块(Block)。查询时,系统首先在本地磁盘的 LRU 缓存中寻找这些数据块。若命中,则直接返回;若未命中,则从 HDFS 读取,并在查询完成后异步缓存至本地 LRU,供后续使用。
除此之外,SelectDB 的引入使文件上传、数据导出、DQC 等方面的性能都得到巨大的性能提升,具体来看:
INSERT INTO hive_table SELECT * FROM OSS_FILE 命令,可将 CSV 经 OSS 直接高效写入 Hive 表,导入 P95 时间从 200 秒优化至 30 秒。OUTFILE功能,将此前繁琐的导出流程(涉及创建临时表、手动拆分文件、补全表头等)简化为一步指令,使导出P95 时间从 300 秒降至 20 秒。通过引入阿里云 SelectDB 构建新一代探索分析平台,不仅实现了性能的显著提升,更完成了从“多引擎协同 + 查询加速”到“湖仓一体 + 统一分析平台”的关键演进。成功构建了一个兼容现有生态、查询极速、体验流畅的全球一体化探索分析平台。未来,瓴岳科技将会进一步探索 SelectDB 的能力: