随着国内银行业数字化转型进程的加快,以及数据驱动战略在银行的落地实践,中原银行围绕分布式数据仓库和大数据技术,以自主研发架构为主,构建了一套满足一站式数据集成、存储、整合、计算与开发的数据技术中台,解决了海量数据存储与分析的问题,并有效支撑了行内商业决策与各类应用规模化交付。近年来,全行数字化转型步入深水区,业务线上化、移动化和场景化比例越来越高,相应地也带来了数据规模爆发式增长和数据类型多样性等问题。

为了解决这些问题,中原银行开始探索行业湖仓一体的建设方案。通过对比数据湖和数据仓库作为大数据体系架构下两条不同的技术演进路线,具有各自的优势和局限性。具体表现在以下几个方面:

一是在数据处理和存储能力方面,数据湖支持结构化、半结构化、非结构化数据的存储与加工,而数据仓库基本上只支持结构化数据;

二是数据仓库在处理数据之前要先进行数据梳理、定义数据结构后才可以进行入库操作,而数据湖按照原样存储数据,无需事先对数据进行结构化处理,这也造成数据湖缺乏像数据仓库的数据管理能力,数据质量较差;

三是数据湖在灵活性上具备天然优势,开源大数据引擎只需遵循相对宽松的兼容协议就能够读写数据湖中的数据;而数据仓库只对特定引擎开放,并作了深度定制优化,进而换取更高的存储与计算性能。

不难看出, 数据湖与 数据仓库两者虽然能力互补但却很难直接合并成一套系统。有没有一种更好地架构可以将二者的能力相互统一?Gartner在2011年提出逻辑数据仓库的概念,推测企业数据分析将会转向一种更加逻辑化的架构,实现逻辑统一物理分开的协同体系。借助逻辑数据仓库的架构理念,各大云厂商陆续推出自己的“湖仓一体”。

技术方案,采用湖仓协同工作的方式,将数据湖、数据仓库与数据类服务连接成为一个整体,数据在其间按需自由移动,以逻辑统一的方式为用户提供服务。

融合数据湖建设思路:在数据仓库已经建设完善的前提下,数据湖可以作为数据仓库的补充,位于数据仓库的后端,主要用于卸载数据仓库的部分重载,如历史数据的存储与查询;

- 数据湖扩展其他场景下的数据探索与AI分析能力,原有数据仓库对外服务保持不变,依然以整合层、集市层、应用层批处理任务加工和报表查询等应用场景为主;

- 在逻辑层面,采用湖仓任务一体化开发、元数据统一管理以及联邦查询等技术将数据湖、数据仓库与数据类服务连接成为一个整体,满足用户的一体化使用需求。

您好,冷热数据存储方案是指将数据分为热数据和冷数据两部分进行存储。热数据是指经常被访问和修改且需要快速访问的数据,而冷数据是指不经常访问,对当前项目价值较低,但需要长期保存的数据。

在大数据领域,HBase作为一款分布式列式数据库,因其高并发、低延迟和可扩展性等特性,被广泛应用于海量数据的存储与处理。HBase支持冷热分离功能,可以将冷热数据存储在不同的介质上。冷存储的存储类型为容量型存储,热存储的存储类型为标准型存储、性能性存储、本地SSD盘或本地HDD盘。

数据建模板块提供了标准建表功能,用户使用标准建表功能产生的元数据信息会统一注册到数据建模板块的元数据中心。对于实现冷热分层存储的表,元数据中心则会根据用户配置的存储策略,精确关联湖仓中的热表信息与冷表信息,在逻辑层面将其作为一张表,并详细展示这张表在数据仓库中以及在数据湖中的表结构与日期范围,方便用户查看。

全域数据联邦分析是另一个需要解决的问题。为了实现跨湖仓的高效数据分析以及高性能的数据湖查询,我们选择Openlookeng作为全域数据联邦查询引擎。Openlookeng继承了Presto的优势,包括存算分离、全内存并行处理、索引能力、分布式流水线等,能够实现高效的数据分析。同时,Openlookeng在高可用、缓存加速、动态catalog加载以及可扩展的连接器等方面做了加强,有效满足了企业级场景应用的需求。

通过对接BI工具,用户能够轻松使用标准SQL直接分析湖仓中的数据,避免不必要的ETL。在使用过程中,结合具体应用场景,我们也对OpenLooKeng的部分功能进行了性能优化与二次开发。例如:

- 湖仓查询性能优化:在实际湖仓联邦查询场景中,OpenLooKeng 的查询性并没有达到预期。这是因为 OpenLooKeng 的 connector 端未实现 GaussDB 数据源的算子下推功能,导致源端所有数据直接加载到 OpenLooKeng 计算引擎侧,造成严重的数据传输延迟。为了解决这个问题,我们实现了 GaussDB 的算子下推与动态过滤功能,并以插件包形式通过 SPI 机制注册到 OpenLooKeng 服务内。同时为解决存算分离场景下,数据读取本地性的问题,我们引入了开源数据编排技术组件 Alluxio。通过将 OpenLooKeng 的 worker 节点和 Alluxio 的 worker 节点混合部署以及根据用户对数据湖中数据的访问频次进行统计分析,提前将湖中频繁访问的数据预加载到 Alluxio 中,以此实现数据本地拉取的功能,在有效降低网络传输 IO 的前提下提高湖仓分析 SQL 的执行效率。

- 兼容 GaussDB 函数和中文语法:我们还对 OpenLooKeng 进行了兼容性优化工作。具体来说就是针对 GaussDB 支持的函数进行了适配和兼容性修复。同时为了支持中文语法和字符集,我们也对 OpenLooKeng 进行了相应的调整和优化。

您好!根据我所查到的信息,GaussDB(DWS)作为行内主要的数据仓库,数据工程师已经熟练掌握了其语法规则。引入Openlookeng后,虽然两者均支持ANSI SQL2003语法,但对用户在GaussDB中高频使用的函数以及中文字段,Openlookeng是存在兼容性差异的。为此在Openlookeng引擎端,我们以plugin形式新增了函数插件包,扩展了to_date、instr、to_char的使用场景。对于decode、nvl这类多参数函数,通过对源代码中的动态字节码生成函数方案进行优化,扩展了不同参数的生成策略,满足了参数类型和返回值类型不确定的使用场景。

针对Openlookeng不支持中文字段的问题,我们则是通过对源码中antlr4定义的语法规则进行重构,在SqlBase.g4文件中扩展identifier,定义中文匹配规则,支持了中文的词法匹配。

融合数据湖方案从2021年年初开始建设到最终落地,历时1年左右时间。目前整体方案已在行内应用,并取得一定效果。该方案支持多类型数据管理,PB级海量数据存储,数据湖分析与计算服务。通过采用湖仓一体的数据智能分层存储策略,有效降低行内数据单位存储成本20%以上。同时也与行内模型管理平台、反欺诈平台完成对接,支撑了各类平台对图片数据的存储与使用需求。

通过Openlookeng提供的湖仓协同分析能力,在保持现有数仓业务模型和数据分析人员使用习惯的前提下,有效避免不必要的ETL,减少50%以上的数据搬迁,同时基于算子下推、元数据缓存、数据缓存等技术,支持数据湖查询秒级响应。

通过构建湖仓与数据类服务的一体化方案,实现数据高效自由流转与统一管理,支持湖仓任务的协同开发与调度,为全行60多个项目组提供稳定高效的数据开发服务。截至目前,已累计承接行内2万余个数据集成与交换任务,3万余个跑批任务,每月完成20多万sql代码质量审核。

以上是根据您提供的内容重构后的结果。