一、什么是数据湖管理

  1. 什么是数据湖

数据湖是一个庞大的数据集集合,具有以下特点:


  • 可以托管在不同的存储系统中;
  • 可能有各种各样的格式;
  • 许多数据不带有可用的元数据,或者使用其他格式描述其元数据
  • 可能会随时间自动变化

下图是https://www.data.gov/开放的不同数据格式的分布比例。虽然和企业的数据分布比例不完全一致,但是可以看出其具有上面描述的4个特点。比如HTML是不带有可分析的元数据的,需要做一定的处理才可以获取。

趋势!VLDB 19年“数据湖管理的挑战和机遇”解读_元数据

  1. 数据湖面向数据科学的价值

对于数据科学,数据湖提供了便利的存储层便于分析和学习任务。基于数据湖的共享存储

加上分布式的计算框架,可以提供所需的基础架构来共享和重用海量数据集。现在主要的场景包括:


  • 简单处理后加载数据湖中的数据集合到DBMS或数据仓库对外服务
  • 还有不少数据需要进行深度的处理比如ETL、计算等再加载到DBMS中
  • 还有不少开放的数据管理价值待挖掘

  1. 现有的数据湖管理解决方案

目前工业界使用可靠的数据湖存储加上hadoop、spark等这些工具来进行数据管理、数据探索、数据清洗、数据集成等,解决各个组织在数据湖中数据的管理。但是依然有不少挑战:


  • 当前对数据湖的使用还在比较初级的阶段,面向数据湖的搜索,提取,清洗和集成这些能力都有待加强
  • 当前数据湖还只是数据存储和处理的一个介质,还不具备面向应用提供价值的完备能力,需要通过ETL后写入DBMS或者数仓提供服务

  1. 未来的数据湖管理要解决的核心问题

提供面向海量半结构化数据的按需的数据湖管理能力:


  • 数据的探索:比如分析、计算、AI等
  • 元数据的抽取:对半结构化、非结构化数据的元数据挖掘
  • 数据的清洗:清洗有效的元数据以及数据
  • 数据的集成:构建统一的数据视图及模型,供外部集成

二、数据湖管理的技术架构

1、数据湖的数据组织

下面是数据湖中存储数据的组织图,从中我们可以看到几个特点:


  • 数据类型:相比DBMS、数仓既包含带有schema的结构化数据,同时包含非结构化数据以及半结构化数据
  • 面向可分析的接入方式:


    • 带schema的结构化数据:和数仓一样,通过导入工具接入
    • 非结构化数据:需要通过抽取能力从中抽取可管理的元信息
    • 不带schema的结构化数据:需要通过parse技术获取元数据


  • 分析:数据湖的价值不再仅仅局限于数据存储,面向分析,挖掘其中的价值成为趋势
  • 元数据管理:为了可分析,面向不同的数据类型,需要构建统一的数据视图(元数据管理)

趋势!VLDB 19年“数据湖管理的挑战和机遇”解读_数据_02

  1. 面向未来的数据湖管理系统架构图

从下图可以看到数据湖管理系统面向数据源的摄入、以及数据的可分析及集成来构建。数据湖管理本身需要具备统一的数据模式及元数据视图,支持面向海量多种格式数据的摄入及抽取、版本、清洗、元数据分片等能力。当然这个图是比较抽象的,在实际的工业界落地需要从系统架构层面做进一步的分层。

趋势!VLDB 19年“数据湖管理的挑战和机遇”解读_数据_03

三、数据湖管理核心技术解析

  1. Data Ingestion(数据摄入)

  • 含义:这里的数据摄入相比面向数仓的数据摄入,不仅包含数据的导入,同时包含已有在数据湖中的数据,通过元数据发现等技术让其可管理。
  • 机会与挑战:数据摄取的挑战在于面向海量数据支持实时摄入的同时,使用更复杂的索引建立数据加速能力,

使这些数据立即可用于分析

  • 学术界相关研究:

    • Mison、Simdjson:基于向量化处理技术支持JSON格式的高效schema识别
    • Speculative Distributed CSV Parsing:支持csv文件的分布式数据识别技术
    • Sparser:面向TEXTFILE原始数据的高效检索技术
    • Sherlock:使用神经网络的方式识别字段类型

  1. Data Extraction(数据抽取)

  • 含义:把原始数据抽取到可分析的结构化数据
  • 机会与挑战:面向数据抽取的主要挑战在于半结构化中抽取结构化支持分析
  • 学术界相关研究:


    • Google Web Crawl:支持从HTML抽取结构化可分析的数据
    • DATAMARAN:流式的从log文件中抽取结构化数据
    • DeepDive:通过机器学习的方式,从暗数据中智能的抽取有效数据

  1. Metadata Management(元数据管理)

  • 含义:面向数据湖统一的元数据及数据模式管理视图
  • 机会与挑战:管理丰富的数据格式;支持海量元数据高效管理及查询;支持元数据的演进变化。
  • 学术界相关研究:


    • GOODS:google的元数据管理系统
    • 通用的架构如下:

趋势!VLDB 19年“数据湖管理的挑战和机遇”解读_数据_04

  1. Data Cleaning(数据清洗)

  • 含义:数据清洗在企业界很常用,比如ETL。但是面向数据湖的数据清洗技术有待发展,数据清洗过程会伴随着元数据抽取、元数据变化等过程;同时这里的数据清洗不一定会产生数据,有面向schema的清洗。
  • 机会与挑战:面向元数据数据异构化、schema变化等特点构建清洗系统
  • 学术界相关研究:

    • CLAMS:支持异构数据的数据抽取,支持引入约束与人工反馈加强清洗效果。下面是架构图:

趋势!VLDB 19年“数据湖管理的挑战和机遇”解读_元数据_05

  1. Dataset Versioning(数据集版本)

  • 含义:数据湖中的数据是动态变化的,有新的数据摄入,以及老的数据产生新版本
  • 机会与挑战:管理schema的演进以及版本之间schema的关联、随着版本的增加支持按照版本来降低成本

  1. 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

关键字查询

其他