客户简介
诺亚控股有限公司以“诺亚财富”为品牌,源起于中国,是首家在港美两地上市的中国独立财富管理机构,首家开创了财富管理和资产管理的双轮驱动业务模式,同时也是国内首家获得标准普尔“投资级”评级的财富管理公司,公司业务涵盖财富管理、资产管理和其他业务。诺亚数据智能部门负责公司大数据体系框架建设,主要工作是支撑日常的BI分析,数据看板,人群画像,自助分析等场景。
在公司数字化转型的背景下,业务增长带来了数据量的激增,不同的数据需求衍生出各种数据服务,不同的数据服务选择不同的数据库和数仓技术,比如MySQL,Impala, Greenplum,ElasticSearch等。为了最大化的降低运维成本,提供高性能的数据服务,做到真正的极速统一,从2021年上半年开始,诺亚数据智能部门开始上云,将自建CDH替换成阿里云统一大数据平台,同时正式引入Hologres,替换核心的Impala OLAP分析部分,提升数据查询效率,全面打造金融数字化分析平台。因此在本文中,我们将会详细介绍诺亚从CDH迁移阿里云大数据平台的前因后果,以帮助更多的业务更加方便快捷的建设实时数仓。
业务挑战
为了支持业务,诺亚原大数据架构采用Impala和CDH构架构建,架构图如下:
在最初的架构中,我们从Cloudera购买了License 基于CDH 搭建了一套数据服务平台:上游的源数据库主要是 MySQL,Oracle,Mongo等 ,业务相关的数据和部分日志数据都记录在里面。我们通过 DataX 和 Sqoop 将数据库中的数据导入到 HDFS,通过 Hive的元数据映射生成 Schema,并接入 Impala 实现数据的即席查询。数据仓库的分层和建模全部都在 Hive 中完成,借助 LDAP 和 Sentry 进行用户权限管理,分析师在HUE中进行查询。
对于实时指标,我们通过Debezium 采集 MySQL 的 Binlog 日志,解析到Flink中对数据进行处理建模,并关联Kafka中的埋点日志数据,生成实时指标写入到 MySQL 中。该流程适用于大部分的报表需求,但是由于 MySQL 对于 OLAP 的任务执行效率较低,在单日报表超过50万记录的情况下,一些多维分析结果可能需要8+秒以上才能返回,非常影响报表查看体验。同时我们也提供了相应的数据服务,分析师通过 JDBC 的连接方式对数仓数据进行查询,数仓数据通过数据API直接应用于一线业务,相应的 BI 报表展示也基于 Impala 计算实现。
随着业务的增长,此架构面临如下挑战:
1、业务方面:
2、技术方面:
技术选项多维对比
为了解决上面的痛点,我们想要对架构进行升级,在寻求解决方案的过程中,OLAP分析是我们非常看重的一个部分,因此我们根据业务需求评估了四个维度:
功能 | Hologres | Starrocks | Clickhouse |
---|---|---|---|
标准SQL | 支持 | 支持,兼容Mysql协议 | 不完全支持 |
高并发查询 | 端到端的全异步处理框架,可以避免高并发系统的瓶颈,充分利用资源,并且最大可能地避免存储计算分离系统带来的读数据延迟的影响。 | 有限支持 | 不支持高并发,官方建议QPS 为 100 |
运维 | 完善的dashboard,包括查询日志,慢SQL等都可以查询 | 社区版不提供dashboard,需要自己实现自动化部署 | 依赖zookeeper,运维成本高 |
性能 | Hologres支持行存储、列存储和行列共存多种存储模式, 可以根据业务场景选择合适的存储类型 | 大宽表和多表join性能比ck更好 | 单机性能强悍,但是单表查询效率快。 |
社区(技术支持) | 响应时间较快,版本迭代快。 | 较快 | 较慢,社区活跃度较低 |
解决方案
自建CDH迁移上云,Hologres助力统一OLAP分析
经过4个维度的充分考虑和论证,我们决定将自建CDH迁移成阿里云大数据平台。迁移后诺亚基于阿里云大数据平台架构图如下:
诺亚数据智能中心在2021年进行了上云的计划,全面实现数据中台的云原生,抛弃掉原来的CDH那套数据架构,我们花了一年的时间进行了整个数据中台的改造和迁移,原来的数仓基于impala的表大概有1w+ 张,烟囱式开发,老架构的数仓是DL层 + DH 层,没有对于数据进行分层和沉淀 ,导致数据冗余严重,任务之间互相依赖严重,没有很好的进行对于业务模块的划分。
整个数据中台依托于DataWorks,离线部分在MaxCompute中进行,通过DataWorks的数据同步模块把离线部分同步到MaxCompute和实时部分同步到Hologres,然后利用Flink的把神策埋点的Kafka数据清洗同步到Hologres中,同时也通过Hologres的外表把MaxCompute的数据迁移到Hologres中,保证统一OLAP分析引擎。
在迁移的过程中,我们是两套中台并行,新的业务我们直接依赖阿里云进行开发,老的任务,我们根据业务线对于数仓进行了重构和分层,ODS , CDM (DIM,DWD,DWS) ,ADS 层,对于表进行了梳理和整合,计算资源和任务减少了一半,任务之间的依赖关系通过DAG图清晰明了,不要再为了改一个脚本,进行俄罗斯套娃式的改造脚本,大大节省了人力成本。
业务价值
通过将将技术架构从自建CDH全面上云后,对我们以及业务来说,都带来了非常多的好处,主要有以下几点: