融合多源异构数据治理的数据湖架构研究
2022-05-12陈氢张治
陈 氢 张 治
(湖北工业大学经济与管理学院 武汉 430068)
移动互联网、物联网、云计算等技术的迅猛发展引起数据量呈指数级增长的同时加剧了数据处理技术与数据资产管理之间的矛盾,导致信息孤岛、数据壁垒、信息过载等问题日益严峻。最初的数据库按照数据结构来组织、存储和管理数据,但不同的数据库之间无法进行数据共享,数据库之间的集成也面临巨大的挑战。随后数据仓库作为大数据管理和处理的一个长期解决方案,在一定程度上通过集成各个独立数据库缓解了这些问题,但是,传统的数据仓库无法满足多元化数据结构的存储和查询以及非结构化和结构化数据的交叉分析,同时其烟囱式建设模式与数据跨业务线广泛连接的需求之间也面临挑战。在此形势下,数据湖以原始格式存储原始数据并提供公共访问接口,借助与用户之间的动态交互支撑数据预测分析、跨领域分析、实时分析以及多元化结构化数据分析的优势成为了存储大数据的一个高效和强大的解决方案,最终实现组织的数据资产价值并加速其数字化转型。然而,现有的关于数据湖的文献却相当模糊和不完整,也没有提供全面的架构设计和实现策略。
为此本文针对学界基于数据湖体系架构研究匮乏及认知不系统实情,分析数据湖与数据仓库之间的差异以及数据湖系统所面临的挑战,基于数据流转维度及业务处理维度的二维思路构建数据湖的架构体系,从架构体系的视角阐述数据湖的主要组成部分及其目标和功能。
1 相关研究
1.1数据湖内涵数据湖最早
是2010年在业界由Dixon提出的一个模拟自然数据湖的概念,数据湖作为一个原始的大型数据集,处理同一个来源的原始数据并支持不同的用户需求[1]。然而以Gartner为代表的另一部分学者认为数据湖只是一个以较低成本存储数据的新方法[2]。
基于这二类关于数据湖的立场,学术界对于数据湖的研究虽然有限但正在增加。Fang将数据湖的创建与Apache Hadoop的环境紧密联系,数据湖作为一个数据管理方法并取代数据仓库,组织的所有数据都以物理方式聚集在一个基于Apache Hadoop平台上[3];在Fang的基础上Russom提出数据湖由单一技术存储向混合模式开放,包括多元存储模式(关系型、NoSQL、Apache Hadoop等)和平台(不同服务器、云),并强调了元数据管理的重要性[4];Pale和Suriaraachchi在学术界最早研究数据湖架构和基础设施,并提出了一个在海量数据背景下管理原始数据可追溯性的参考架构[5];Alrehamy等人基于数据隐私保护研究了查询和分析个人数据的数据湖[6]。
上述业界和学术界对于数据湖的研究主要针对特定的研究问题或某些特定类型的源数据,综合上述国内外研究成果,结合本研究的特点,本文将数据湖定义为一个数据存储和管理系统,它存储大规模的原始数据并借助元数据目录和数据治理规则和方法为用户提供丰富的功能列表。数据湖作为一种新工具,使组织能够定义、组织和管理各种大数据技术的使用。
1.2数据湖与数据仓库针对海量多源异构数据,数据湖与数据仓库面对不同对象的不同形态的数据资产相辅相成,同时二者之间主要存在五个方面的差异。
a.数据结构。数据仓库主要包含来自事务或操作系统的结构化数据。而数据湖允许所有数据被插入,无论其性质和来源如何,因此数据湖包含结构化数据、半结构化数据以及非结构化数据。
b.采集模式。数据湖与决策系统最大的区别在于数据采集阶段的二种模式:读取模式和写入模式(如图 1所示)[7]。写入型模式背后蕴含的逻辑是数据在写入之前,根据业务的访问方式确定一个预定的提取、转换和加载方案,从预期的信息开始,按照既定的模式,在操作系统中找到适当的数据,完成数据的导入。数据湖强调的读取型模式是在数据存储之后定义架构,更适应业务高速发展的状况。
图1 数据湖与数据仓库:读取模式与写入模式
c.数据过程。数据仓库中的异构源数据集需要经过提取/转换/加载(ETL) 过程。加载数据时的转换期间,数据需要结构化以及聚合处理,因此会对细节产生破坏性。在数据湖中,以几乎原始的状态加载数据,并迅速迭代使用,只有在使用时才将结构化应用于数据,即提取、加载和转换(ELT)过程,从而保持了原始数据的全部潜力,使得数据湖中的数据更具有真实性并且可溯源。
d.实时性。数据湖和数据仓库区分的另一个主要因素是与之相关的操作方面。在数据湖中可以实时摄取数据流并对数据做出反应,因此应用程序可以直接与之互动,数据湖中的数据是在没有任何转换的情况下被摄取的,这就避免了从数据源中提取数据的时间滞后,使得数据湖更加灵活,并能够提供实时的数据。而数据仓库则需要同步更新处于ETL过程中可能相互依赖的数据源,
e.用户。数据仓库的用户往往是理想的操作用户,如业务分析师,因为数据是结构化和易于使用的。数据湖的用户往往是理想的高级用户,他们是非常了解计算机技术的使用者,通过元数据目录就知道他们想要搜索的数据,如分析家、数据科学家或开发人员,并且能够使用丰富的集成工具利用数据并结合预测分析过程来建立预测模型。
根据上述结果列出数据湖和数据仓库之间的主要差异(如表 1所示)。
通过上述理论分析数据湖与数据仓库之间的差异性,明确数据仓库的主要限制在于:提供预期的信息。基于传统数据仓库的决策支持系统作为一种信息驱动型系统虽有简单的业务管理、高适应性和高反应性等优势但难以适应海量异构的大数据环境下业务迭代动态化、技术构成多元化、高拓展性等客观需求,导致面临无法满足企业关键竞争差异需求的挑战。数据湖作为一种数据驱动型系统,是对现有决策系统的补充,其主要目标是允许在没有先验的情况下探索组成数据湖的数据集,以期在一个组织的数据增强的背景下发现可利用的新信息途径并满足企业数据资本化以及价值化的需求。
表1 数据湖与数据仓库比较
1.3数据湖面临的挑战企业利用数据湖从消费者数据中提取全面见解以采取战略获得竞争优势,大量数据存储和分析技术的演变和发展对于数据湖的应用实现也具有重要意义。 但数据湖也面临治理策略不一致、数据不可靠(数据沼泽、数据冗余等)、业务不协同(数据孤岛)、技术措施组合智能性弱等挑战[8]。
为此,本文针对当前数据湖应用面临的一系列挑战,基于数据流转和业务处理两个维度构建的数据湖架构旨在将数据标准和治理策略贯穿于数据的收集、存储、分析或消费的全应用流程并行构建应用程序及基础设施技术支持数据治理需求和业务目标。
2 数据湖架构
数据湖系统的开发管理重点是基于组织的战略和业务需求,为了实现这一目标需要确保组织数据湖系统中的所有组件(数据库、应用程序以及服务等)的合理化。本文基于数据流转和业务处理两个维度提出由六个模块组成的数据湖架构,即:数据采集模块、数据湖存储模块、数据分析/消费模块、数据基础设施模块、数据应用软件模块以及数据治理模块(如图2所示)。
图2 数据湖架构
2.1数据湖架构的数据流转维度从数据运行的角度来看,数据流转就是数据驱动。数据在输入、分析处理到输出的过程中形成的数据流转就是一种数据驱动机制。基于大数据环境下数据在组织机构中的数据流转情况构建三个模块:数据采集模块、数据存储模块、数据分析/消费模块。这三个模块按照自左向右的顺序,从多源异构数据源的获取到存储,最后通过数据分析/消费向用户提供企业画像、联邦计算、商业智能分析、推荐系统、预测分析等业务服务。在这个数据流转过程中,三个模块的主要功能为:以数据为导向,通过数据流转交互作用使信息系统与业务相一致并提升用户体验,强化数据流程整体一致性以便适应数据湖按需运行的基本特征,实现业务协同。
2.2数据湖架构的业务处理维度从数据服务的角度来看,业务处理就是业务驱动。面向企业数据湖多模态的业务场景,提升数据服务价值就是一种业务驱动机制。基于业务处理维度面向业务服务并结合数据湖以数据为驱动的特点构建三个模块:基于底层支撑平台的基础设施模块、基于系统应用组件的应用软件模块和基于数据管理的数据治理模块。这三个模块按照自下而上的顺序,基础设施模块支持定义的应用软件模块,基于数据治理模块开发应用软件程序模块。基础设施模块的主要功能为:通过合理部署硬件设施管理业务需求,实现硬件技术措施组合智能性;应用软件模块的主要功能为:通过部署整合技术创新措施提升数据集成共享服务、计算力利用率以及高效能的数据分析能力,实现软件技术措施组合智能性;数据治理模块的主要功能为:通过推进元数据管理、数据生命周期管理、数据质量和数据安全管理的数据治理策略,管理数据的整体一致性以便适应数据湖动态运行的基本特征从而实现治理策略有效性、持续性、可靠性、安全性。
基于两个维度六个模块的数据湖架构通过自左向右流转和自下而上处理的多层次多维度架构的构建,既保证了商业数据价值增长中的数据创建、处理、消费及交换方式,又强调了数据湖IT系统、设备和相关基础设施的实施情况[9],最终实现数据湖资产化及价值化的目标。
3 数据流转维度
数据贯穿信息流动的生命周期,以数据流转为维度可以将数据湖治理策略贯穿于数据采集、存储、分析/消费等各个应用流程,在信息全链条中完成数据从端到端的跟踪和管理服务从而实现业务协同。基于数据流转维度的模块包括:数据采集、数据存储及数据分析/消费。
3.1数据采集考虑到数据的多源异构特性,数据湖采集全部原始数据源并储存在数据湖中适当的存储区域,通过转换这些数据来满足业务需求[10]。不同结构类型的数据在数据采集平台上通过批量写入、消息队列、文件导入、提取生成、加工提取和加工写入等方式并存储在对应的存储系统中(以多存储系统为例,如图 3所示),实现全面高效采集、保证数据源的全面性和及时性,从而为后续的数据存储、数据分析和业务迭代做准备,保证数据流程的完整一致性。
图3 数据湖采集
3.2数据存储数据存储旨在数据分析/消费阶段之前,期间和之后存储所获取和编目的数据,涵盖了为分析工具和用户消费而存储数据的各个区域。依据数据存储的核心作用将数据存储体系作为数据湖体系架构的底座,依靠其可扩展性、高可用性、可伸缩性、数据持久性以及安全性等特征实现数据湖存储体系与其他体系结构之间的交互,以便适应数据湖按需运行的基本特征。根据存储类型将数据湖存储方式分为四类:作为文件、以单一的数据库格式、使用多重存储和云上数据湖。
3.2.1 基于文件的存储系统 Hadoop分布式文件系统(HDFS)是数据湖中最常见的数据存储系统之一。HDFS不仅支持文本和二进制文件,它还支持数据压缩的某些格式。此外,微软的 Azure 数据湖存储库(ADLS)还提供了一个分层的、基于多层文件的存储系统,它是一个完全管理、弹性、可扩展和安全的文件系统 ,应用了针对大型非结构化数据的AzureBlob 存储[11]。
3.2.2 单一的数据库格式存储 数据湖系统针对特定类型的数据使用单一的数据库格式进行存储。例如,个人数据湖将数据存储在Neo4j中,一方面由用户网络交互产生的各种结构化、半结构化及非结构化数据可以存储在单个空间,另一方面用户可以更好的控制数据隐私和共享策略。
3.2.3 多存储系统 数据湖中数据具有多样性特征,与之相关的产生了多范式存储系统,以保证对数据的有效访问[12]。多存储系统具有对异构数据的多个数据存储配置的集成访问权限和灵活可扩展的优点。如图3所示,将数据湖中具有原始数据结构数据的元数据、主数据、管理数据和指标数据存储到关系数据库;将非结构化数据、列式数据、键值数据存储到NoSQL数据库中;将文本、图片、视频、日志等存储到NoSQL文本数据库中;将结构化数据与非结构化数据存储到分布式文件系统中;将空间坐标、地质信息、大气信息、地理数据、天气信息等存储到空间/地图数据库;将物联网数据、实时数据、监测数据等存储到实时-时序数据库;将生产数据监控数据、交易数据等存储到实时-内存数据库;将节点数据、关系数据、标签数据、属性数据等存储到图数据库[13];将全键索引、全文索引、组合索引、查询索引等存储到索引数据库。
3.2.4 云上数据湖 上述数据湖系统中,大多数都是本地的。对于商业数据湖,由于云的数据规模大,在云上构建数据湖是一种更常见的做法。如亚马逊Web服务(AWS数据湖)、阿里云、谷歌云等。在云平台上构建数据湖可动态的扩展存储空间和计算能力,资源价格也比本地的价格低。
3.3数据分析/消费实施数据湖的首要目标是数据的资本化及价值化,数据湖分析/消费体系提供了访问存储在数据湖存储区的数据的功能,并通过分析工具提供给用户进行探索和挖掘海量数据湖数据来获取业务洞见,其中涵盖描述性分析、诊断性分析、预测性分析和规定性分析领域的各种功能。按照用户类型设计分析/消费功能与数据流程并遵循数据治理策略一致性、数据规范标准性以及软硬件设施组合智能性原则,根据不同操作用户,业务用户需要高性能的数据仓库来运行pb级数据上的复杂SQL查询,以返回复杂的输出结果,为此AWS Redshift Spectrum、谷歌BigQuery和Azure SQL Data Warehouse等工具提供了巨大的压缩、区域映射、柱状储存,以及在存储文件上高性能运行复杂查询的能力[14];数据分析师需要运行SQL查询进行交互式查询来分析大量的数据湖数据,为此Apache hive、Apache Presto、Amazon Athena和Impala等工具通过使用数据目录构建模型以查询在选定格式文件中的底层数据[15];数据科学家运行机器学习算法以进行预测,实现高效、自由、基于数据湖的数据探索,使用Dataiku、Tensorflow和Sagemaker等工具,或者在云平台上运行R或Python算法,同时数据湖包含丰富的人工智能服务,以语音技术、智能机器人、人脸识别等AI技术为依托,为图像处理、音频处理、自然语言处理、视频处理等提供强有力的数据支撑。
4 业务处理维度
在致力于执行数据湖的过程中,企业希望提高其敏捷性和灵活性以提升数据价值。以业务处理维度构建的数据湖系统体系应满足业务处理和数据管理需求,旨在以数据湖为数据基础组织和存储形式实现集成式架构规范、整体式管理流程、迭代式并行构建、推进式技术创新以提升和改善所提供服务的能力。这种构建方法一定程度上可以避免数据沼泽或数据未充分利用的可能性。基于业务处理维度的体系结构包括:数据基础设施、数据应用软件及数据治理。
4.1数据基础设施数据基础设施体系提供了支持数据应用程序架构的所有硬件组件。通过合理部署硬件设施、高效利用软件基础设施以满足数据管理从而实现硬件设施组合智能化,这些组件包括服务器、工作站、存储设备(存储托架,SAN,文件管理器等)、备用设备、网络设备(路由器,防火墙,交换机,负载平衡器, SSL加速器等)。
4.2数据应用软件数据应用软件体系为各个体系结构提供软件技术集成资源。作为数据湖的计算机视图,其目标是分发和重用应用程序功能,通过明晰技术措施综合运用软件资源部署整合技术创新措施以满足海量多源、异构分布环境下的数据治理需求。利用软件技术集成设施以管理数据的访问及其持久性(备份,安全性)。通常可以在数据湖体系结构中部署的软件组件包括:a.用于存储部分的关系数据库,noSQL或HDFS类型的文件系统;b.用于处理数据的架构模式(框架),例如Map-reduce,Apache Spark;c.元数据管理软件,例如Informatica,IBM Metadata Catalog;d.基于HDFS的数据湖集成套件,例如Cloudera,HortonWorks;e.机器学习软件,例如Apache Spark,IBM机器学习等。
4.3数据治理数据治理为数据采集、数据存储及数据分析/消费提供均需遵循的数据规范,针对海量分布、多源异构环境下实现数据管理自动化并提高数据管理效率,通过元数据管理、数据生命周期管理、数据质量管理及数据安全管理等标准管理确保数据质量、实现数据共享。
4.3.1 元数据管理 元数据代表了保证数据源互操作性的有效和高效管理的唯一可能性,元数据管理是数据湖在安全性、资产管理、生命周期管理和质量方面保证其治理的基础,通过推进元数据管理解决数据冗余、数据沼泽等数据问题,规范数据标准并实现数据治理有效性策略。同时数据湖依靠有效的元数据管理功能来简化和自动化常见的数据管理任务[16]。
良好的元数据管理需要建立规则和流程,以确保访问,共享,链接,集成,维护和分析任何元数据的能力。根据元数据的生成时间或它们带来的意义和信息来划分元数据分为三类:技术元数据、操作元数据和业务元数据[17]。在数据湖应用软件体系中,元数据管理工具包括数据目录或组织成数据集的数据集合(例如,可搜索的表或其他排列,便于探索)。元数据管理软件为存储在整个企业中的数据资产提供上下文和信息,有助于确保跨部门或业务单位一致地描述数据,为企业数据提供通用语言和分类[18]。
4.3.2 数据生命周期管理 数据生命周期是指基于可自动化的规则在数据的整个生命周期中支持数据,管理数据和流程的整体一致性从而实现数据治理持续性策略。在数据湖中,一旦完成数据采集,就必须考虑数据的生命周期问题,否则很快数据湖将充满各种无用数据。从逻辑上讲,那些将失去所有价值的数据产品都将被自动销毁。为此,必须识别数据并进行特征化,这意味着通过指定它们的类型、创建日期以及原始用户(或服务)来为它们建立索引。另外,当访问关联数据时,在逻辑上将他们链接起来也是一个难题,这使得该生命周期的管理变得复杂化。因此,数据湖中的数据生命周期在很大程度上依赖于元数据的良好管理,该元数据必须包括对其进行监视和实施所必需的信息和规则。在体系结构设计期间,必须为将要获取的每个数据定义并应用这些信息、规则和过程。
4.3.3 数据质量管理 数据湖采集所有类型未经处理的原始数据,这些多源可变数据质量问题包括数据不完整、无效数据和不确定性。由于数据的可追溯性,用户可以知道他将使用的数据质量的状态并根据情况,采用与决策系统相同的原理,在使用数据时清理该数据。数据质量重点关注需求、检查、分析和提升的实现能力,对数据从采集、存储、共享、维护、应用、消亡生命周期的各个阶段里可能引发的各类数据质量问题进行识别、度量、监控、预警等一系列活动,确保数据的质量以及数据治理可靠性策略。
4.3.4 数据安全管理 数据湖是高度暴露的,因此在体系结构设计期间,需在整体安全基础设施和控制框架中部署和管理数据湖的安全性以及数据治理的安全性策略,通过规则、程序和适当的技术工具来实现的。技术层面上,数据湖的技术安全可分为:
a.数据安全。数据资产化要求将组织的数据进行安全管理,对静态和传输中的数据进行加密保护并将其存储在持久性介质上。云上数据湖则通过存储层加密机制来保证数据安全。此外,还可以通过选择加密算法以和旋转密钥,使用密钥管理服务来实现加密。数据湖基础设施层针对数据安全管理提供硬件安全模块(HSM)。传输中的数据意味着数据在网络上在设备和服务(如API)之间移动则通过使用带有证书的TLS/SSL传输来实现[19];
b.网络安全。主要依靠建立网络防火墙定义IP地址范围,基于OSI层中的网络层控制访问并监视网络上的web流量并授权出站会话。云中的虚拟专用网络以及防火墙和其他机制使用户能够在基于云的解决方案商实施网络隔离,通常使用安全组、网络ACL和CIDR块限制等限制连接的灵活性,从而创建一个网络非军事区(DMZ)允许外部访问的服务器单独接在该区端口,使整个需要保护的内部网络接在信任区端口。
c.访问控制。企业数据湖用户需要确保正确的身份验证策略之后访问所需的资源从而保护数据安全,通过用户身份及其所归属的某项定义组来限制用户对某些信息项的访问。基于数据湖产品结构使用常用的技术手段来维护标准认证,比如active directory。此外,也可以使用身份访问管理(IAM)控制细粒度访问,例如AWS使用bucket和AWS IAM策略来访问数据文件,提供精细的访问管理。
d.应用程序安全性。保护数据湖应用软件免受外部攻击威胁主要有二种方法:Web应用程序防火墙和微服务体系结构。网络安全技术中采用的网络防火墙没有检测或防止威胁的机制,而使用Web应用程序防火墙通过安装特殊程序来保护Web应用程序或Api,应用程序防火墙允许创建常见的攻击模式,例如,SQL跨站点的脚本编写,防止常见的Web攻击影响数据湖可用性、安全性和资源利用性。另一种方法是通过实现微服务体系结构来减少攻击,例如将应用程序与存储或其他应用程序解耦。
5 结束语
在“信息超载”的数据经济时代,面对大量多源异构数据,从数据仓库到数据湖,不仅仅是数据存储架构的变革,更是大数据思维方式的升级。本文通过比较传统数据仓库和数据湖的差异性来突出数据湖实施的必要性及其所面临的挑战;阐述了基于数据流转维度和业务处理维度构建的数据湖架构的基本体系结构,包括数据采集、数据存储、数据治理、数据分析/消费、数据应用软件以及数据基础设施;下一步,将研究该架构的正式化方法,以供相关研究与实践参考。