数据湖 | VLDB 19年“数据湖管理的挑战和机遇”解读
一、什么是数据湖管理
-
什么是数据湖
数据湖是一个庞大的数据集集合,具有以下特点:
-
可以托管在不同的存储系统中;
-
可能有各种各样的格式;
-
许多数据不带有可用的元数据,或者使用其他格式描述其元数据
-
可能会随时间自动变化
下图是https://www.data.gov/开放的不同数据格式的分布比例。虽然和企业的数据分布比例不完全一致,但是可以看出其具有上面描述的4个特点。比如HTML是不带有可分析的元数据的,需要做一定的处理才可以获取。
-
数据湖面向数据科学的价值
对于数据科学,数据湖提供了便利的存储层便于分析和学习任务。基于数据湖的共享存储
加上分布式的计算框架,可以提供所需的基础架构来共享和重用海量数据集。现在主要的场景包括:
-
简单处理后加载数据湖中的数据集合到DBMS或数据仓库对外服务
-
还有不少数据需要进行深度的处理比如ETL、计算等再加载到DBMS中
-
还有不少开放的数据管理价值待挖掘
-
现有的数据湖管理解决方案
目前工业界使用可靠的数据湖存储加上hadoop、spark等这些工具来进行数据管理、数据探索、数据清洗、数据集成等,解决各个组织在数据湖中数据的管理。但是依然有不少挑战:
-
当前对数据湖的使用还在比较初级的阶段,面向数据湖的搜索,提取,清洗和集成这些能力都有待加强
-
当前数据湖还只是数据存储和处理的一个介质,还不具备面向应用提供价值的完备能力,需要通过ETL后写入DBMS或者数仓提供服务
-
未来的数据湖管理要解决的核心问题
提供面向海量半结构化数据的按需的数据湖管理能力:
-
数据的探索:比如分析、计算、AI等
-
元数据的抽取:对半结构化、非结构化数据的元数据挖掘
-
数据的清洗:清洗有效的元数据以及数据
-
数据的集成:构建统一的数据视图及模型,供外部集成
二、数据湖管理的技术架构
1、数据湖的数据组织
下面是数据湖中存储数据的组织图,从中我们可以看到几个特点:
-
数据类型:相比DBMS、数仓既包含带有schema的结构化数据,同时包含非结构化数据以及半结构化数据
-
面向可分析的接入方式:
-
带schema的结构化数据:和数仓一样,通过导入工具接入
-
非结构化数据:需要通过抽取能力从中抽取可管理的元信息
-
不带schema的结构化数据:需要通过parse技术获取元数据
-
分析:数据湖的价值不再仅仅局限于数据存储,面向分析,挖掘其中的价值成为趋势
-
元数据管理:为了可分析,面向不同的数据类型,需要构建统一的数据视图(元数据管理)
-
面向未来的数据湖管理系统架构图
从下图可以看到数据湖管理系统面向数据源的摄入、以及数据的可分析及集成来构建。数据湖管理本身需要具备统一的数据模式及元数据视图,支持面向海量多种格式数据的摄入及抽取、版本、清洗、元数据分片等能力。当然这个图是比较抽象的,在实际的工业界落地需要从系统架构层面做进一步的分层。
三、数据湖管理核心技术解析
-
Data Ingestion(数据摄入)
-
含义:这里的数据摄入相比面向数仓的数据摄入,不仅包含数据的导入,同时包含已有在数据湖中的数据,通过元数据发现等技术让其可管理。
-
机会与挑战:数据摄取的挑战在于面向海量数据支持实时摄入的同时,使用更复杂的索引建立数据加速能力,
使这些数据立即可用于分析
-
学术界相关研究:
-
Mison、Simdjson:基于向量化处理技术支持JSON格式的高效schema识别
-
Speculative Distributed CSV Parsing:支持csv文件的分布式数据识别技术
-
Sparser:面向TEXTFILE原始数据的高效检索技术
-
Sherlock:使用神经网络的方式识别字段类型
-
Data Extraction(数据抽取)
-
含义:把原始数据抽取到可分析的结构化数据
-
机会与挑战:面向数据抽取的主要挑战在于半结构化中抽取结构化支持分析
-
学术界相关研究:
-
Google Web Crawl:支持从HTML抽取结构化可分析的数据
-
DATAMARAN:流式的从log文件中抽取结构化数据
-
DeepDive:通过机器学习的方式,从暗数据中智能的抽取有效数据
-
Metadata Management(元数据管理)
-
含义:面向数据湖统一的元数据及数据模式管理视图
-
机会与挑战:管理丰富的数据格式;支持海量元数据高效管理及查询;支持元数据的演进变化。
-
学术界相关研究:
-
GOODS:google的元数据管理系统
-
通用的架构如下:
-
Data Cleaning(数据清洗)
-
含义:数据清洗在企业界很常用,比如ETL。但是面向数据湖的数据清洗技术有待发展,数据清洗过程会伴随着元数据抽取、元数据变化等过程;同时这里的数据清洗不一定会产生数据,有面向schema的清洗。
-
机会与挑战:面向元数据数据异构化、schema变化等特点构建清洗系统
-
学术界相关研究:
-
CLAMS:支持异构数据的数据抽取,支持引入约束与人工反馈加强清洗效果。下面是架构图:
-
Dataset Versioning(数据集版本)
-
含义:数据湖中的数据是动态变化的,有新的数据摄入,以及老的数据产生新版本
-
机会与挑战:管理schema的演进以及版本之间schema的关联、随着版本的增加支持按照版本来降低成本
-
Data Discovery(数据集探索)
-
含义:对数据湖管理的数据集合进行探索和发现,比如血缘、关联性、查询数据集
-
机会与挑战:数据湖中数据集数量巨大、数据信息具有不完整的特性。
-
学术界相关研究:
-
LSH:支持可join表检索、可union表检索、属性检索
-
JOSIE:支持搜索top-k的可join的表
四、看企业界数据湖管理方案
目前在数据湖管理方案方面,AWS的lake formation&glue、阿里云DLA的数据湖管理已经有一定的建设,能够满足用户基础的数据湖管理系统。同时从功能发布来看两款产品也在不断的演进。
Data Ingestion |
Data Extraction | Metadata Management |
Data Cleaning |
Data Discovery |
|
阿里云DLA |
元数据发现及实时入湖 |
元数据发现、ETL、实时入湖 |
统一元数据 |
ETL |
关键字查询 |
AWS LakeFormation&Glue |
crawler |
crawler、ETL |
统一元数据 |
ETL |
关键字查询 |