阿里网盘优质资源分享 阿里云管理控制台

背景数据湖当前在国内外是比较热的方案,MarketsandMarkets市场调研显示预计数据湖市场规模在2024年会从2019年的79亿美金增长到201亿美金 。一些企业已经构建了自己的云原生数据湖方案,有效解决了业务痛点;还有很多企业在构建或者计划构建自己的数据湖,Gartner 2020年发布的报告显示目前已经有39%的用户在使用数据湖,34%的用户考虑在1年内使用数据湖 。随着对象存储等云原生存储技术的成熟,一开始大家会先把结构化、半结构化、图片、视频等数据存储在对象存储中 。当需要对这些数据进行分析时,发现缺少面向分析的数据管理视图,在这样的背景下业界在面向云原生数据湖的元数据管理技术进行了广泛的探索和落地 。
一、元数据管理面临的挑战1、什么是数据湖
Wikipedia上说数据湖是一类存储数据自然/原始格式的系统或存储,通常是对象块或者文件,包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,包括来自于关系型数据库中的结构化数据(行和列)、半结构化数据(如CSV、日志、XML、JSON)、非结构化数据(如email、文档、PDF、图像、音频、视频) 。
从上面可以总结出数据湖具有以下特性:

  • 数据来源:原始数据、转换数据
  • 数据类型:结构化数据、半结构化数据、非结构化数据、二进制
  • 数据湖存储:可扩展的海量数据存储服务
2、数据湖分析方案架构
当数据湖只是作为存储的时候架构架构比较清晰,在基于数据湖存储构建分析平台过程中,业界进行了大量的实践,基本的架构如下:

阿里网盘优质资源分享 阿里云管理控制台

文章插图
主要包括五个模块:
  • 数据源:原始数据存储模块,包括结构化数据(Database等)、半结构化(File、日志等)、非结构化(音视频等)
  • 数据集成:为了将数据统一到数据湖存储及管理,目前数据集成主要分为三种形态 。第一种为直接通过外表的方式关联元数据;第二种为基于ETL、集成工具、流式写入模式,这种方式直接处理数据能够感知Schema,在写入数据的过程中同时创建元数据;第三种为文件直接上传数据湖存储,需要事后异步构建元数据
  • 数据湖存储:目前业界主要使用对象存储以及自建HDFS集群
  • 元数据管理:元数据管理,作为连接数据集成、存储和分析引擎的总线
  • 数据分析引擎:目前有丰富的分析引擎,比如Spark、Hadoop、Presto等,他们通常通过对接元数据来获得数据的Schema及路径;同时比如Spark也支持直接分析存储路径,在分析过程中进行元数据的推断
我们可以看到元数据管理是数据湖分析平台架构的总线,面向数据生态要支持丰富的数据集成工具对接,面向数据湖存储要进行完善的数据管理,面向分析引擎要能够提供可靠的元数据服务 。
3、元数据管理面临的挑战
元数据管理如此重要,但是当前开源的方案不够成熟,经常会听到大家关于元数据管理相关的讨论,比如:
  • 有10来个数据存储系统,每种都去对接适配,每次都要配置账密、路径,真麻烦,有没有统一的视图?
  • 一个有200个字段的CSV文件,手动写出200个字段的DDL真的好累?JSON添加了字段每次都需要手动处理下吗?
  • 我的业务数据,是否有被其他同学删库跑路的风险?
  • 分区太多了,每次分析在读取分区上居然占用了那么多时间?
  • …..
4、业界数据湖元数据管理现状
上面这些是大家在对数据湖进行管理分析时遇到的典型问题 。这些问题其实都可以通过完善的元数据管理系统来解决,从元数据管理的视角可以总结为:

推荐阅读