随着数据湖的发展,目前面临着诸多技术方面的挑战,必须不断完善并解决各种技术难题。数据湖是当前大数据技术研究的一种范例,研究人员通过该范例来应对大数据技术所遇到的各种挑战。这些关键技术的突破不断完善大数据技术,同时也不断丰富数据湖技术,凸显了这些先进技术和方案的关键作用。本文将分为数据存储、数据摄取、数据组织、数据探索四个方面,讨论数据湖关键技术。
数据存储一直是数据湖概念的核心问题,也是基本问题。在数据湖环境中,存储系统的选择不仅关系到存储成本、可扩展性和安全性,还会影响到数据访问的有效性和灵活性。数据湖架构中的存储系统作为底层基础设施,对整个数据处理过程起着至关重要的作用。
许多数据湖实施者关注以廉价方式存储各种类型原始数据的问题。在数据湖存储系统中,使用最广泛的是Hadoop的分布式文件存储系统HDFS,它能够以廉价的方式存储许多类型的数据,包括半结构化(例如,CSV、XML、JSON)和非结构化(例如,图和视频)数据。
在存储方式上,数据湖可以采用单一存储系统或多存储系统。单存储系统只支持一种类型的数据库,例如CLAMS存储系统、Personaldatalake等都属于这一类。而多存储系统则集成了访问各种异构数据的多个数据存储配置。例如,Constance系统和SQRE架构都采用了包含关系、文档、图形等类型的多存储数据库系统来存储获取到的原始数据。多存储系统是数据湖存储海量异构数据的必然结果。
另一种发展特点是混合使用关系型和NoSQL存储。这种存储方式有效提升了关系型数据库在大数据分析中的价值,比如谷歌数据湖的DatasetSearch、CoreDB、CoreKG等产品和架构系统。微软的Azure数据湖存储系统(ADLS)是对关系数据库和分布式存储技术(HDFS)深度集成的云存储服务。ADLS采用了分层存储结构,通过夸存储层访问方式实现了成本和性能之间的最佳权衡,并且提升了安全性。
云存储是数据湖存储的一个重要的发展趋势,尤其是一些商业数据湖都是建立在云存储,包括AWS,ADLS、阿里云存储、腾讯云存储等等。相比于本地环境,数据湖的廉价存储、多用户、可扩展等特点在云环境中发挥的优势更加明显。
数据摄取是将各种异构数据源的数据移动到数据湖的过程。在大数据行业中,已经提供了许多丰富的数据摄取工具,数据湖可以利用这些工具来实现数据摄取阶段的工作。
数据摄入不仅仅是简单的数据复制和粘贴,它是一个复杂而重要的阶段,必须确保摄入的数据在任何时候都可以查找、可访问、可互操作和可重复使用。这个过程中最重要的任务是维护所摄取数据的元数据结构,避免数据在进入数据湖后变成不可使用的数据。
元数据获取
提取元数据是数据摄入阶段面临的主要挑战。为了适应异构数据源的不确定性,采用灵活、可扩展的元数据结构是至关重要的。GEMMS 是一个灵活且可扩展的数据湖元数据管理系统。该系统能够从异构数据源中提取元数据,并将元数据存储在一个可扩展的元模型中。首先通过键值对方式存储元数据属性,再通过结构元数据识别原始数据的结构(如矩阵、树、图形等),最后以附加语义数据的方式连接到语义模型。
Constance 系统是一个智能数据湖系统,为了在数据摄入阶段提取尽可能多的元数据,该系统中使用了结构元数据发现(SMD)组件,但该组件主要解决了半结构化数据源的元数据结构提炼问题。而 Sawadogo 等人提出了在数据湖中提取文本文档元数据结构的方法,弥补了非结构化数据中提取元数据的问题。Datamaran 是一个适合数据湖环境中转换复杂日志文件的算法,该算法以无监督方式在半结构化日志数据中自动提取元数据结构。Datamaran 算法解决了数据边界确定、数据字段确定、复杂结构、冗余结构以及语义结构等问题。
元数据建模
自Gartner公司提出数据沼泽问题以来,许多研究者试图通过元数据管理来解决该问题,元数据被视为描述和指导数据湖中海量数据的关键。元数据管理涉及数据来源管理、数据摄入过程、数据准确性、数据安全性、数据集关联性等方面,而元数据建模技术是元数据管理的主要内容。
数据湖元数据模型的研究成果丰富,已经出现了多种元数据模型。为了展示所获取的元数据,Constance系统采用了图形建模技术的语义元数据匹配(SMM)组件,该组件包括语义建模、属性注释、连锁记录、语义丰富等功能。
识别各种类型的元数据是实现通用元数据模型的一个重要挑战。MEDAL模型将元数据类型划分为对象内(Intraobject)、对象间(Inter-object)、全局(Global)元数据,详细解释了语义数据、数据版本、数据的血缘关系、相似性等关键属性。而Diamantini等人把元数据分为参考业务元数据、操作元数据、技术元数据,并基于网络和语义驱动建模方法增强了元数据表现形式。
除此之外,还有Eichler等人提出的HANDLE模型和Scholly等人提出的goldMEDAL模型,它们是现阶段比较完善的元数据模型。数据湖元数据模型的设计与数据湖整个数据生命周期过程密切相关,每个阶段的元数据都具有该阶段的特点和作用。
摄入到数据湖的数据是十分庞大而复杂,为了达到数据分析目的,把这些海量原始数据进行有效的维护是非常必要。数据维护阶段的任务包括准备数据、发现相关数据集、数据集成、清洗数据等等。
数据组织
海量大数据组织面临诸多挑战,包括人工干预局限性、数据处理效率、相关数据发现及异构数据转换等。数据组织效果直接影响数据使用和分析,是数据湖中关键数据处理环节之一。在大数据技术研究领域,数据组织问题是最活跃的研究范围,也是许多研究者关注的数据湖关键技术。
在数据湖环境中,人工组织数据已变得不可能,因此数据组织首要的解决的问题是自动化。Kayak是一个框架,帮助数据科学家定义和优化数据准备管道,在该系统中,数据使用者可根据需求自定义数据发现管道。该系统通常提供一个近似结果来提高管道执行效率,通过快速预览原始结果的方式缩短数据准备时间。虽然如此,也有学者提出数据组织过程中人工手动干预的必要性,Brackenbury等人通过实验证明了人工干预在数据发现过程中的重要性。
元数据管理在数据维护过程中也扮演着重要的角色。GOODS是为组织谷歌数据湖中的数据集而设计的系统。GOODS在数据管道创建、访问、更新数据集的过程中收集相关数据集的元数据,并通过该元数据目录管理和组织数据集。Alserafi等人[56]在数据湖中关注重复数据集、相关数据集(即数据集之间的“可接合”数据属性)和不相关数据集,通过端到端的内容元数据管理流程,为数据组织提供了系统化方法。
数据发现是数据组织过程中最受关注的领域之一,也是许多数据科学家关心的问题。相似性是数据发现技术中最重要的领域,Brackenbury等人以数据本质、起源、当前特征等维度提出了相似性比较框架,为数据相似性发现提供了研究基础。为了满足非IT专家也可以根据需求发现数据,BARENTS中通过本体方法在数据湖中创建了数据准备分区,该分区中用户可以根据需求定制数据准备过程。Nargesian等人为了提高相关性数据集发现效率,提出了Markov导航模型,该模型能够计算发现感兴趣主题相关表的概率。机器学习在数据关联性发现中也起到关键作用。DLN[59]是一个建立并使用关联模型来构建Cosmos(微软数据湖)数据图的系统,该模型通过机器学习训练相关数据列特性,再结合元数据特性建立相关性模型。
数据湖中长期积累的数据语义随着时间的推移不断变化,再加上数据格式的异构性和庞大的数据收集量,如果没有灵活多变的模式管理,很难在数据湖中提取价值。Klettke等人把数据湖中灵活多变的模式问题归结为模式演化过程,在数据湖中提取模式版本序列,并建立模式版本之间的映射关系,解决恢复模式演化的历史。
在数据湖环境中非常重视自动化技术和元数据技术,尤其是元数据管理技术在数据组织中扮演着非常关键的角色。数据组织问题中前期的数据相关性发现技术、基于主题的数据导航技术是目前研究的热点,而语义、本体、机器学习以及图谱等技术起到了关键作用。目前,数据湖的数据组织研究范围比杂乱,包括数据管道、数据清洗、数据相关性、数据模式演化,而且很多研究者把数据组织和数据探索结合到一起研究。可以发现,研究者对数据湖中数据处理阶段的划分还不够明确,也从另一个角度证明了分析需求直接驱动数据维护的数据湖特点。
关联表格数据集发现
已经装载海量数据的数据湖中,集成或者查询数据湖中的所有数据是没有意义也没有必要。相反,有效、准确地发现当前主题相关的数据是很多数据湖使用者关注的焦点。关联数据集发现技术解决了使用者花费大量时间发现数据的问题,是解决大数据集成问题的重要内容。数据集发现技术的很多研究工作集中在表格数据,因为表格数据是目前企业内部数据集的主要存在方式,包括网络表格、电子表格、CSV文件和关系数据库等。
为了快速发现关联表格数据,可以利用企业知识图(EKG)中捕获数据集之间的关系,为用户提供不同数据资源间的指引。AURUM是基于EKG实现的数据集发现系统,而EKG通过两步骤算法解决了在数据湖中海量数据匹配的性能问题。此外,为了方便分析者找到相关且属于同一主题的数据集,kNN可以检测覆盖相关分析主题的相似数据集分组和底层结构,预先定义数据湖中感兴趣的主题类别。
文献中延伸了DS-Prox技术,提出了属性级近似度度量,以找到最合适的度量来分配数据集对之间的相似性。JOSIE采用top-k重叠集相似度搜索算法,具备数据分布的自适应能力,可以在不同的数据湖中执行数据发现任务。Juneau是一种能够度量数据表相关性的框架,该框架通过行和列的重叠、来源关系、相似度等度量来返回最相关的数据表。Starmie是数据湖中表数据关联搜索框架,该框架通过对比学习方法捕获表格数据中丰富的语义信息,在搜索效率和匹配度方面有显著提升。然而,基于重叠度量的相关数据集发现技术无法适应数据湖环境中表格数据表述和语义不相同的问题。Dong等人通过PEXESO框架中基于枢轴过滤的块验证方法解决此问题,但只局限于查询记录嵌入为高维向量和基于相似谓词连接的方向条件。除此之外,PEXESO框架中通过一种分区技术解决数据湖中无法装入主存的问题。Helal提出了基于知识图谱的数据集发现平台,该平台把无模式数据集变成有模式数据集,通过可扩展和可查询的知识图来解决相关表格数据发现问题。
表格关联数据发现技术的研究比较丰富,从前期的列表重叠技术发现相关性到基于元数据、高纬度、知识图谱、机器学习等相关性发现,不仅在相似性发现的效果上得到了很大的提升,而且解决了数据湖环境下异构数据灵活多变的问题。但是表格数据关联性的现有文献中,针对数据灵活多变问题的研究还是不够充分,尤其是这个问题上的评估和实验非常有限,需要研究者进一步深入分析和探讨。