作者:刘远志
前言
随着企业数字化进程的不断深入,数据的使用场景也逐渐趋向多元化,过去容易被企业忽略的大量数据,开始被重视起来。那么如何为众多场景选择一款合适的数据存储架构,以及如何对这些数据进行有效治理并发挥数据价值,已经成为了很多企业管理者的必答题。(1)在眼下数据复杂度日益增长的情况下,湖仓一体架构的出现解决了什么问题;
湖仓一体产生背景
一般情况下,我们获取到的原始数据具有以下特点:信息密度(单位存储体积内,包含的信息量的大小)比较低,结构化程度不高。通过对这些数据进行清洗、分析、挖掘,可以排除无用数据,同时发现这些数据所隐藏的规律,找到数据中的关联性。在这个过程中,数据的结构化程度和信息密度也得到了提升。大数据处理的过程,实际上是一个提高数据结构化程度,提高信息密度的过程。在这个过程中,数据的特性一直在改变,不同的数据,适合的存储介质也不一样,数据仓库适用于存储结构化程度高、信息密度高的数据,而数据湖更适合存储信息密度低的数据。对数据仓库而言,要做的是把数据进行分层,需要将数据先清洗再入仓;而数据湖是将数据先入存储系统,随后再根据业务需要对数据进行加载转化,其优点在于保证需求变化的同时,任何的数据在底层依然可以存储下来,这也是数据湖的一个重要价值。一方面数据仓库无法容纳不同格式的数据,另一方面,数据湖缺乏结构和治理,会迅速沦为“数据沼泽”,两种技术均面临严重的局限性。那么,有没有那么一种可能,能够同时具备数据仓库和数据湖优势的新架构呢?于是,湖仓一体诞生了。
什么是湖仓一体
在湖仓一体概念被提出之前,数据仓库、数据湖一直是被热议的话题,并且湖仓一体也是在数据仓库、数据湖技术不断发展的基础之上提出的(如下图所示),所以在介绍湖仓一体概念之前,有必要理解数据仓库、数据湖的提出背景、概念、所解决的问题等内容。
01、什么是数据仓库
数据仓库由比尔·恩门于 1990 年提出,数据仓库主要功能是将经年累月所累积的大量业务数据,通过数据仓库特有的数据储存架构进行联机分析处理,最终帮助决策者能快速有效地从大量数据中,分析出有价值的信息,提供决策支持。自从数据仓库出现之后,信息产业就开始从以关系型数据库为基础的运营式系统慢慢向决策支持系统发展。
02、什么是数据湖
在企业内部,数据是一类重要资产已经成为了共识。随着企业的持续发展,数据不断堆积,企业希望把生产经营中的所有相关数据都完整保存下来,进行有效管理与集中治理,挖掘和探索数据价值。数据湖就是在这种背景下产生的。数据湖是一个集中存储各类结构化和非结构化数据的大型数据存储系统,它可以存储来自多个数据源、多种数据类型的原始数据,数据无需经过结构化处理,就可以进行存取、处理、分析和传输。数据湖能帮助企业快速完成异构数据源的联邦分析、挖掘和探索数据价值。
03、什么是湖仓一体
湖仓一体,又被称为Lakehouse,其出发点是通过数据仓库和数据湖的打通和融合,让数据流动起来,减少重复建设。Lakehouse架构最重要的一点,是实现数据仓库和数据湖的数据/元数据无缝打通和自由流动。湖里的“显性价值”数据可以流到仓里,甚至可以直接被数仓使用;而仓里的“隐性价值”数据,也可以流到湖里,低成本长久保存,供未来的数据挖掘使用。下图描述了在湖仓一体方案下,数据湖和数据仓库的关系,数据湖、数据仓库的均来源于原始数据。在数据湖侧,可将探索的数据模型沉淀到数据仓库;在数据仓库侧,可将数据仓库的模型成为数据湖的一部分。
下图展示了湖仓一体方案的一般架构,关系型数据库、文档数据库、消息队列等作为数据源,经过流批一体计算,数据流转到基于HDFS存储的数据湖(这里以开源数据湖Apache Hudi为例),对于结构化的数据,可通过同步工具将元数据同步至Hive数据仓库。之后在这个湖仓一体存储之上,可进行具体的业务计算,对外提供如BI报表、业务系统数据支撑、机器学习等数据服务。
数据中台在湖仓一体上的应用
01、什么是数据中台
在许多企业数字化转型中,都面临如下痛点问题:企业存在大量数据信息孤岛,数据资源信息复杂,缺少统一数据标准和规范,难以进行采集汇聚和清洗治理,缺少安全有效的共享开放技术方法和手段,导致部门和行业间无法互通数据资源,难以进行有效共享和流通利用。
针对上述痛点问题,目前一个发展趋势是,构建高效的数据采集汇聚和清洗治理的工具平台,完成对多源异构按行业大数据的采集加工和清洗治理,在这种背景下,数据中台应运而生。数据中台是在政企数字化转型过程中,对各业务单元业务与数据的沉淀,构建包括数据技术、数据治理、数据运营等数据建设、管理、使用体系,实现数据赋能。数据中台,是新型信息化应用框架体系中的核心。
02、数据中台解决了什么问题
数据中台可完成数据的采集汇聚、清洗治理、目录梳理、存储管理,从而为行业/企业大数据资源的汇聚和综合分析应用,提供统一化数据,以此克服目前存在的大量烟囱式信息系统相互隔离、造成信息孤岛、导致难以有效汇聚和利用行业/企业数据资源的困境。
03、为何使用湖仓一体方案建设数据中台
通过上文对数据中台的功能分析,数据中台在存储层的一般做法是:在数据湖存储之上开展数据采集、清洗治理、质量控制等数据治理流程,之后将治理好的数据建模到数据仓库,在数据仓库存储之上构建数据分析、数据共享等功能。如果采用湖仓分离的方案,元数据不仅较难统一,同时还需要为数据湖、数据仓库两套存储系统分别对接不同的计算引擎,并且极易造成重复的数据开发成本,以及两套存储共存也会造成数据冗余、数据不一致等风险。采用湖仓一体方案建设数据中台,不仅能有效避免上述问题,而且能同时兼具数据湖的灵活性与数据仓库的成长性,形成优势互补。下表展示了数据湖和数据仓库的优劣对比。
在鸿程数据中台中,湖仓一体方案如下图所示,红色框内描述了湖仓一体的基本组件构成,可使用HDFS、OSS、S3作为数据存储,使用Alluxio进行数据加速,使用Apache Hudi作为数据湖组件,通过鸿程内部开发的统一元数据组件,将数据湖中的元数据同步至Hive数据仓库。通过计算引擎层的Flink、Spark、Presto等计算引擎,向上提供数据中台的“数据采集”、“数据清洗”、“数据加工”、“数据标签”、“数据报表”等功能的支撑。
相关案例
某省ETC省级发行商,积累了1000万以上ETC用户,并面向全国ETC用户提供增值服务。同时,该公司积极开拓ETC支付场景,先后建立了多种场景化服务,形成一系列新的业务增长点。为了实现该公司中远期战略目标,需要在公司内建设大数据全流程处理与智能分析服务平台,落地大数据技术能力,打通数据采集、治理、存储、组织、质量控制、计算、智能分析、服务的全链路业务流程,用以支撑大数据增值服务与价值发现。在上述背景下,鸿程为该企业开发了一套数据中台系统,采用了湖仓一体存储方案,并在之上构建流批一体计算,如下图所示。
在该项目中,数据中台稳定运行,有效实现了数据的价值转化,除此之外,还有以下亮点:(1)稳定支撑超大规模数据接入:省内高速通行数据每天产生40G~100G数据,极端情况下每天600G。(2)流批一体数据加工:全程使用流批一体数据湖架构支撑低延时交通场景业务。(3)统一数据能力建设,赋能业务场景:当前客户各业务需要的大数据计算需求均计划使用该平台承载。(4)混合云部署:数据存储计算平台部署在本地机房,功能性部件以云原生的形态部署在阿里云。
总结
大体量的企业想要保持持续增长,往往需要依靠大量、有效的数据输出,进而实现智慧决策。很多企业出于 IT 建设能力的限制,导致很多事情没法做,但通过数据中台这样的产品,让之前被限制的数据价值得以充分发挥,如果企业能够在注重数据价值的同时,并有意识地把它保存下来,企业就完成了数字化转型的重要命题之一。我们也有理由相信,随着企业数字化转型加速,湖仓一体架构也会有更为广阔的发展空间。