前言:东方证券是一家综合类证券公司,成立于 1998 年,总部设在上海。经过 20 多年的发展,东方证券现有分支机构 177 家、管理 3200 亿资产,服务上亿客户。与一个大型金融机构相匹配的,正是东方证券当前管理的海量数据。
一、案例背景
2013 年起,东方证券陆续引入数据仓库平台、大数据应用平台、资讯中心大数据平台,以实现对业务运行提供数据支撑,由这三个数据平台组成的数据平台体系是东方证券金融科技战略规划的重要组成。
数据仓库平台和大数据平台因数据割裂、业务发展和技术迭代等原因,与战略规划所要求的数据平台服务能力存在较大差距。长期来看需要构建一个统一的数据平台,支撑公司经营管理中各类数据的全面有机融合。考虑到自身业务模式、组织架构和现有系统建设现状,东方证券将以数据仓库平台为核心,将全业务数据盘活和打通,用数据指导运营,赋能业务,支撑决策。
东方证券数据仓库建设于 2013 年,采用基于 MPP 架构的关系型数据库 Netezza,经过扩容已接近 30T 容量。数据仓库承载着东方证券的核心业务数据,目前整合处理了包含零售业务端数据、公司自营数据和市场金融工具数据。
然而,现有的 Netezza 一体机数据库已经形成数据管理的瓶颈,因此东方证券迫切需要新平台来更好地进行数据的管理、运营和服务,以实现金融科技既定数据平台目标。
二、需求分析
1.平台扩展
东方证券原有的数据仓库是基于 Netezza 一体机构建的。当一体机容量趋于饱和,如果不迁移存量数据的话,便只能删除部分历史数据来维持其正常的数据应用需求,潜在的数据丢失和损坏即将对业务侧造成严重的影响。
2.系统性能
跟所有一体机一样,Netezza 通过特殊硬件来提升性能,但是可扩展性一般。随着数据量的增加,一体机的数据处理性能下降,部分复杂报表跑批耗时显著增加,已经对数据应用产生了实质影响。
3.持续运维
平台扩展能力受限除了对业务应用、系统性能造成影响,还对备份和恢复等运维工作带来巨大挑战。然而,IBM 在全球范围内停止了对 Netezza 所有支持,外资厂商的可持续运维问题在当下自主可控的背景下显得格外突兀。
因此,东方证券新建和替换数据仓库除了考虑数仓的可拓展性、系统性能,还重点关注国产软件的自主可控和本土厂商的持续运维能力。此外,项目建设实施要在不中断业务的情况下进行,因此还需要确保整个数仓平台提供安全可靠、连续稳定的对外服务,确保对上下游业务完全兼容。同时,需要对新数据仓库的加工能力、数据精度、加工效率进行全面验证,为从Netezza 平台的平稳迁移提供全面可靠的技术评估并夯实平台基础。
三、产品选型
东方证券对多个主流数据库产品进行了对比测试,测试包括标准化测试,以及基于现有业务应用设计的场景化测试,共涉及 300 多张表以及 200 多个存储过程。在经过一系列复杂测试后,利用专有硬件的 Netezza 需要 60 分钟的处理任务,OushuDB 仅用 22 分钟,效率大幅领先。OushuDB 极致的性能远超技术专家预期。除了性能,OushuDB 相较 Netezza 在并发、扩展能力、存储等方面也有着显著的技术优势,详见下表。
基于 OushuDB 出色的产品能力,东方证券决定将 Netezza 平台的数据及应用全部迁移到偶数的 OushuDB, 同时将原来由于 Netezza 容量受限而在转移到大数据平台的数据及应用迁移至 OushuDB。
四、方案设计
2022 年 3 月,东方证券的数据迁移工作正式启动。偶数科技专家与东方证券的技术人员合作,确定了数据迁移方案,OushuDB 集群与原 Netezza 集群在外部应用接口、作业、数据表等方面保持一致。将在保证业务连续性的同时,对数仓的历史数据、增量历史数据、日常加载数据等进行迁移,充分利用新平台的物理特性。迁移过程按照物理模型迁移、ETL 脚本、SQL 脚本、历史数据和应用接口的顺序进行实施。
数据架构
东方证券数据仓库逻辑架构分层包含:数据源层、数据交换层、数据存储层、数据服务层、数据应用层,横向管理套件包含:数字化管理、DataOps、数据管控。
国产数仓平台迁移规划不仅是单一的数仓平台替换,而是技术架构升级。在本项目中,主要包含将现有 Netezza 库内对象(表、视图、存储过程等)迁移至 OushuDB,支持日常数据采集、数据 ETL 处理、数据服务、新增业务开发、应用访问等的平滑过渡。平台替换基于 OushuDB 数据库特性提供最佳应用实践,涉及库内规划设计的原则性调整。未来,将进行数据架构融合、数据服务融合、一体化数据管理生态等数据的长期运营规划。
五、项目实施
在完成了方案的详细设计后,启动了从 Netezza 到 OushuDB 的整体迁移工作。
1.环境部署
东方证券数仓平台系统项目共部署 17 节点(包括 ETL 节点和 OushuDB 主节点),使用海光芯片的国产服务器,运行在 KyLin 操作系统上,打造满足信创生态的纯国产数仓平台。
2.脚本开发
针对该项目数据的格式转换、映射和验证等环节,以及数据预处理、数据清洗和数据转换等工作,并结合过往项目实践,偶数为客户提供了全套数据迁移工具,以及 SQL、DDL 和 ETL 转换脚本。针对应用迁移,偶数还为客户设计开发 Netezza 存储过程到 Perl 脚本的转换工具。通过工具和脚本可以完成 90% 以上的工作,大大缩短了项目迁移时间,保障了数据迁移的高效完成。
3.数据迁移
完成用户权限和库表结构共计 3000 多个对象迁移,其中包含 200 多张视图以及其他对象迁移,2400 多张 ODS 表的历史数据迁移及其增量数据加载迁移,600 多张模型层的表的历史数据迁移。同时,还进行了 ODS 表与模型表的分区分析,以及数据结果验证。
4.应用迁移
完成了零售业务约 700 个存储过程与自营业务约 400 个存储过程的应用迁移。此外,为了保证数据质量,还进行了空表脚本运行测试、带数表脚本运行测试,调试优化脚本,字段级验证 OushuDB 数据处理结果与 Netezza 结果。在脚本验证的基础上进行日常数据加载、模型加工和常态化部署。
在系统平台数据迁移与应用迁移试运行阶段,偶数工程师提供了全面的运维技术支持,包括系统故障排错、系统性能调优、系统监控、故障点排查、集群节点故障迁移等,同时完成了东方证券数仓平台性能测试、非功能测试,平台试运行阶段全程保障。
六、项目总结
经过几个月的努力,系统顺利上线。OushuDB 在完成国产数仓平台迁移的基础上还在拓展能力和性能方面实现了升级,同时还提供了超出预期的三大能力——实时查询、超高并发、弹性扩容,随着数据化转型的升级,这几类能力变得越来越重要,是未来各行业 IT 建设的必选项。
随着数据库国产化替代进程加速,范围扩大,金融信创率先成为各行业信创推进的先行者,而东方证券使用国产数据库 OushuDB 替代 Netezza 的最佳实践,也使东方证券成为了证券行业国产数据库替代的先行者。在该项目中,OushuDB 保证数仓平台承载更多业务应用的同时,还提升了平台的性能和扩展能力,也探索出了湖仓双重能力替代与整合的新思路。