其他分享
首页 > 其他分享> > 阿里云云原生一体化数仓 — 湖仓一体新能力解读

阿里云云原生一体化数仓 — 湖仓一体新能力解读

作者:互联网

简介: 本文主要介绍如何通过湖仓一体,打通 MaxCompute 与 Hadoop、DLF/OSS 数据湖,以及 Hologres、MySQL 等数据平台,并通过 DataWorks 做统一数据开发和治理。

分享人:阿里云智能 产品专家 孟硕

 

没来得及看直播的同学,可以观看直播回放。
直播回放:https://developer.aliyun.com/live/249819

 

一、基于 MaxCompute 的湖仓一体架构更新

基于MaxCompute 云数据仓库的湖仓一体架构近期进行架构升级。了解 MaxCompute 的同学可能比较清楚,MaxCompute 有两层结构,需要先创建 Project ,在 Project 里面创建表、资源等。传统数据库,在数据库跟表之间有一层 Schema。当前从数据库迁移数据至 MaxCompute 时,有客户对 Schema 这层有诉求。本次架构升级,MaxCompute 升级为三层模型,Table --> Schema --> Project(此功能将在9月上线) 。

 

对于湖仓一体架构,MaxCompute 是作为仓的存在,使用外部 Schema 对接外部数据源,外部数据源这里称之为Foreign Server,其中包括了 Foreign Data Wrapper 涵盖每一个数据源的连接信息。最早支持的 hadoop 的 hive 数据源,映射 Hive metastore 读写 hdfs 数据。同时可以对接阿里云数据湖构建 Data Lake Formation 产品,DLF 主要的作用是通过扫描 OSS文件,做一个统一的元数据管理和权限管理。我们可以通过 Foreign Server 也就是外部数据源对接 DLF 的元数据,处理 OSS 文件结构。这样就可以对接云上 OSS 数据湖以及开源 Hadoop 生态 hdfs 数据湖。除此之外,也支持阿里云生态内的数仓和数据库,比如 Hologres 、关系型数据库和分析型数据库等。对于外部数据库,是通过 JDBC 协议连接,对于内部生态产品比如 Hologres ,可以做到存储上的直读,从性能是比 JDBC 更快一些。这是利用外部 Schema 对接外部数据源。

 

对于 OSS 上的一些非结构化数据,可以通过 Mount OSS 路径升级到 MaxCompute 做对象管理。可以通过MaxCompute 权限系统,对 Mount OSS 的对象做授权管理。可以使用 MaxCompute spark ML 和MaxCompute 的 AI 等引擎对 OSS 上文件结构的数据做处理。如果传统的 hadoop 数据平台,希望用到云上扩展算力,又不想全部迁移上云,可以在Hadoop 里通过 SDK 调用云上计算能力,同时把数据从云上导入云下,作为云下 Hadoop 集群算力的一个扩展。

 

总结来说,内部存储对接阿里云的Hologres 和 MaxCompute ,都是使用盘古文件系统,使用传统方式做对接,同时在 Porject 和 Table 之间加了一层 Schema,对接整个数据库生态;对于数据湖的存储,支持 HDFS 通过 Hive 的 MetaStore 映射到 MaxCompute 的外部 Schema ,支持 OSS 通过 DLF(Data Lake Formation)映射到Foreign Server 和 Foreign Data Wrapper 中,从而实现对外部 Internal Schema 的映射,也支持阿里云Hologres 以及外部的数据库生态。同时,整个 MaxCompute 的算力也可以被云下 Hadoop 集群引用,作为云下算力的扩充。下层的复杂结构,都可以通过统一的数据开发与治理平台 DataWorks 来管理。

 

总结三点:

支持 MaxCompute 外部 Schema 整库映射 MySQL 、Hologres DB/Schema,同时与 Hologres 能够存储直读,提升读写效率,用户不用做类似于从关系型数据库到 MaxCompute 的数据迁移工作,直接通过外部数据源的映射,在 MaxCompute 里可以实现本地数仓和外部数据源的联邦查询。

 

MaxCompute 通过 Mount OSS 路径,可以将存储在 OSS 上的结构化文件、非结构化图片、音视频等等,纳入到数仓权限体系做管理。OSS 还是对文件做粗粒度的权限管理, 把 OSS 提升为 MaxCompute 的一个对象,利用 MaxCompute 里的 ACL对每个用户是否可以访问 OSS 上的某些文件,做细粒度的权限管理。通过 MaxCompute 里的 Spark 引擎或者 机器学习 PAI 对结构化、半结构化以及非结构化文件格式的数据做处理。

 

当 IDC 集群或者云上Hadoop 集群需要扩容以及业务线快速的更新迭代,想要快速的试错。在不对本身集群资源做调整的情况下,直接将需要的算力放到 Serverless 云数仓服务,就可以实现对业务的快速迭代和试错,达到对现有资源的无缝扩展。

 

1.png

ForresterWaveCDW 技术评比中,主要从四个方面进行评测。

1、原生数据湖查询能力

2、对数据湖安全的集成能力

3、对数据湖引擎的集成能力

4、客户案例

基于这四个方面的评测,MaxCompute+DataWorks组合在数据湖集成方案中取得最高分。

2.png

二、典型使用场景介绍

IDC 线下 Hadoop 无迁移上云

客户不希望所有数据迁移上云,希望保有一部分数据自主可控,但有一部分算力需要在云上解决。之前做法是每天将数据做 ETL 导入导出,再利用云上的大规模分布式引擎 MaxCompute 做处理。每天需要做大量的 ETL 操作,消耗大量的时间和人力。通过线上线下打通,底层存储元数据,通过高速网络互联,实现云上直接消费云下数据,并且把数据返回到云下。

3.png

Serverless 数据湖 ETL / 交互式分析

云上的数据存储,已经变成了事实上的数据湖。湖上有离线数据、实时入湖数据、结构化、半结构化以及非结构化数据。对 OSS 数据的统一管理,外部元数据管理 DLF,通过扫描 OSS 上的文件,能 Schema 化的变成库表形式,不能 Schema 化的变成文件 location 的管理。通过DLF做元数据管理,上边对接数仓和引擎,也可以对接阿里云 EMR 的 Spark、Presto等。从而达到数据的共享、统一的元数据、以及多引擎的灵活架构。

4.png

IDC Hadoop 的云上弹性资源池

云上引擎 MaxCompute 可以作为本地数据平台的弹性资源池,整体数据的开发和治理都在本地 Hadoop ,依照 Hadoop 的调度将 MaxCompute 作为一个资源池。从线下 Hadoop 集群发起作业,读写云上 MaxCompute 的资源,利用 MaxCompute 的算力,来做云上云下的数据传输。

5.png

多联邦查询

通过MaxCompute做多联邦查询,通过在统一的开发界面,能够 Join  MaxCompute 云数仓的库和表,以及其他外部映射到 MaxCompute 的库和表。

6.png

三、 Demo

以MaxCompute映射Hologres外部数据源为例,展示MaxCompute如何通过外部Schema去映射外部数据库数据源。

Demo请点击查看视频

 

更多 阿里云大数据产品>>

MaxCompute 二维码拼图.png

本文为阿里云原创内容,未经允许不得转载。

标签:云云,数仓,OSS,MaxCompute,Hadoop,湖仓,云上,数据,Schema
来源: https://www.cnblogs.com/yunqishequ/p/16529625.html