【互联网金融湖仓一体建设实践】

1. 案例背景

客户是一家互联网金融公司,2015年成立,曾获“2019年度竞争
力金融科技创新实力公司”奖。从国外某厂商迁移到阿里云后,持续
进行平台的迭代升级,建设和改造数据湖架构,构建围绕数仓的数据
中台。

客户对数仓基础功能、安全、Serverless 云原生能力都有较高要
求,并且基于数仓有OLAP分析服务的需求。客户原有Hadoop技术
栈的多套业务系统,也有基于 OSS 存储,上面多套开源引擎共享数
据的需求。

2. 拟解决的痛点、难点

1) 用户的数据湖不能满足数仓的多租户、安全隔离、Serverless、
免运维等要求。例如Atlas只能做表示层功能无法在引擎层统一元数
据;Ranger 的安全管控能力无法让多个部门共享一套Hadoop平台实
现多租安全隔离,并通过权限快速共享;Presto联邦分析引擎可以交
互式查询但不能做可靠的联邦数据处理。且互联网金融客户关注业务,
不愿投入太多成本修改补充开源短板。

2)客户认为湖的能力不满足数仓要求,于是引入云原生数仓
MaxCompute 构建数据中台,MC 与原有开源体系异构,如果不能融
合,也将成为湖上的一个组件,可能带来存储冗余、元数据不统一、
权限不统一、湖仓计算不能自由流动等问题。

3. 解决方案

在这里插入图片描述

湖仓一体联邦方案 ,经过以下步骤,将湖仓进行打通。

1)将云网络和客户部署Hadoop的VPC网络进行了打通,并提
供高速缓存和网络链接对象,可以快速建立、维护、共享网络链接。

2)创建OSS和VPC中的Hadoop实例的外部服务对象,将数据
湖实例自动映射为仓中的逻辑实例。

OSS外部服务对象包括DLF元数据服务、权限和读写接口, DLF
将OSS目录数据识别为表的结构,MC可以读取DLF探查的OSS元
数据,按照DataBase、Table层次读写OSS数据。

Hadoop 外部服务对象包括 Hive 的 HMS 元数据存储,Kerberos
认证信息、HDFS 读写服务,可以读取 HMS 的 Hive 表元数据,将
Hive 的DataBase、Table 映射为MC相同结构的外部项目。

以上的元数据自动映射方法免去了逐个表创建外表的繁琐工作,
不冗余存储DLF或HMS的元数据,不冗余存储OSS或HDFS的数
据,按照计算任务实时读取元数据,再访问数据。

3)日常联邦计算使用数仓中治理过的数据和 OSS、HDFS 中的
外部数据直接关联分析,或从OSS、HDFS向数仓同步数据,实现湖

4)基于数仓加工的数据,通过交互式分析引擎Hologres直读MC
数仓Pangu文件,进行高效灵活的OLAP分析。

5)湖中的元数据信息通过外部服务自动映射,数仓元数据生产
链路按周期抽取、同步给Dataworks数据地图,实现从湖倒仓的全链
路血缘。

6)外部引擎如果需要数仓的数据,还可以通过MC的开放数据
存储MaxStorageAPI 和面向Spark、Flink、Presto 等优化的Connector
获取数据,保持了数据架构的灵活性和开放性。

4. 价值与效果

数仓向外部、低价值密度、弱管理的数据平台延伸管理能力是湖
仓一体的一个基本形态,虽然弱于仓内强管控带来的完整数仓能力,
但是也对湖数据管理能力进行了增强和统一。基于
MC+DLF+EMR+OSS的湖仓一体架构具体效果有:

1)实现湖仓统一管理。通过自动映射元数据和数据读写能力简
化了人工参与外部系统元数据在数仓中重新定义的工作和对联邦数
据源的兼容适配工作。数据流转不需要创建外表或配置 ETL 流程,
研发效率提升50%以上。

2)实现湖仓数据分层存储。EMR存储原始数据,数据中台对数
据湖数据抽取构建ODS和DW层存储在MC上,其他引擎消费ADS
层,数据存储比预期降低50%。

3)实现数仓高性能计算。MC 数仓对外表的计算效率虽然低于内表,但是湖到仓的数据抽取只需要执行一次,后续仓内计算效率是Hive 的5倍以上,仓内建模加工效率也是Spark的2倍左右。

来源:CCSA TC601大数据技术标准推进委员会

相关推荐

  1. Hologres + Flink 流式建设

    2024-07-12 12:24:02       52 阅读
  2. “存算分离“和“一体

    2024-07-12 12:24:02       18 阅读
  3. 数据一体(二) 安装kafka

    2024-07-12 12:24:02       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 12:24:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 12:24:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 12:24:02       58 阅读
  4. Python语言-面向对象

    2024-07-12 12:24:02       69 阅读

热门阅读

  1. 【Go系列】 array、slice 和 map

    2024-07-12 12:24:02       22 阅读
  2. 浅层神经网络示例

    2024-07-12 12:24:02       19 阅读
  3. 【9-2:代码规范】

    2024-07-12 12:24:02       21 阅读
  4. 运维开发小白学习之路

    2024-07-12 12:24:02       20 阅读
  5. 监控团队的建立与管理:优化流程与工具选型

    2024-07-12 12:24:02       18 阅读
  6. 使用任务表,实现两个数据库表数据迁移

    2024-07-12 12:24:02       30 阅读
  7. 【C语言】《回调函数》详细解析

    2024-07-12 12:24:02       25 阅读