数据湖的定义:
wikipedia中对于数据湖的定义是:“A data lake is a system or repository of data stored in its natural/raw format, usually object blobs or files. A data lake is usually a single store of all enterprise data including raw copies of source system data and transformed data used for tasks such as reporting, visualization, advanced analytics and machine learning.”
可见数据湖是一个通用的数据存储,通用到可以存储任意类型的数据。
数据湖要考虑的首要问题:
从定义看,一块u盘即符合数据湖的定义。u盘可以是数据湖,oss可以是数据湖,hdfs、盘古也可以是数据湖。它们均严格的符合数据湖的定义。作为企业的数据湖技术选型第一个需要考虑的问题就是:采用什么样的存储介质或存储系统作为自己的数据湖解决方案。众所周知,不同的存储介质或存储系统有不同的优势和劣势。比如:有的存储系统随机读取的响应时间更好、有的系统批量读取的吞吐量更好、有的系统存储成本更低、有的系统扩展性更好、有的系统结构化数据组织得更高效...相应的,这些提到的各个指标中有些恰恰是有些存储所不擅长的,如何享有所有存储系统的优势、规避所有存储系统的劣势变成了云上数据湖服务要考虑的首要问题。
要解决这个矛盾的问题,在理论上是不可能一劳永逸的。聪明的做法是对上提供一个逻辑上的存储解决方案,然后让需要不同访问特点的数据灵活地在各种底层存储系统中迁移。通过便捷的数据迁移(、以及数据格式转化)的能力, 来充分发挥出各个存储系统的优势。结论:成熟的数据湖一定是一个逻辑上的存储系统,它的底层是多个各种类型的存储系统所组成。
数据湖要解决的三大问题:
元数据管理、数据集成、数据开发是数据湖需要解决的三大问题,阿里云的DataWorks作为一个通用的大数据平台,除了很好的解决了数仓场景的各类问题,也同样解决了数据湖场景中的核心痛点。
元数据管理:
用户的湖上数据需要有个统一集中的管理能力,这就成了数据湖的第一个核心能力。dataworks的数据治理能力便是用来解决数据湖中的各类存储系统的元数据管理的。目前它管理了云上11中数据源的元数据。涵盖OSS、EMR、MaxCompute、Hologres、mysql、PostgreSQL、SQL Server、Oracle、AnalyticDB for PostgreSQL、AnalyticDB for MySQL 2.0、AnalyticDB for MySQL 3.0 等云上主要数据源类型的元数据管理。功能上涵盖元数据采集、存储检索、在线元数据服务、数据预览、分类打标、数据血缘、数据探查、影响分析、资源优化等能力。
技术的宏观架构如图:
产品形态如图:
数据集成:
数据湖中的数据管理起来之后,就会面临数据在各个存储系统中迁移和转化的能力。为此dataworks的数据集成能力可以做到40种类常见数据源的导入导出及格式转化的能力,同时覆盖了离线和实时两大同步场景,以及可以解决对外对接时的复杂网络场景。
数据集成核心能力:
离线同步功能:
实时同步功能:
数据开发:
解决了数据湖的存储管理和数据迁移问题后,接下来就是如何让数据湖中的数据更好的赋能业务。这就需要引入各类计算引擎,计算平台事业部拥有丰富的各类计算引擎,有开源体系的spark、presto、hive、flink,还有自研的MaxCompute、Hologres,这里的挑战在于如何方便的发挥各类引擎的长处,让湖中的数据能够被各类引擎访问和计算。为此dataworks提供了便捷的数据迁移方式(方便数据在各类引擎中流转穿梭)、提供一站式的数据开发环境,从即席查询到周期的etl开发,dataworks提供了各个计算引擎的统一计算任务的开发和运维能力。
数据开发产品:
至此、dataworks在解决了数据湖底层的存储系统差异的难题后,提供了完备的湖上元数据管理、数据治理、数据迁移转换、数据计算的全流程能力。让阿里云上的数据湖更好的给客户发挥出业务价值。
更多数据湖技术相关的文章请点击:阿里云重磅发布云原生数据湖体系
更多数据湖相关信息交流请加入阿里巴巴数据湖技术钉钉群