湖仓一体2.0

MaxCompute提供湖仓一体2.0方案,允许用户建立定义外部数据源元数据和数据访问方式的管理对象,并通过外部Schema映射机制实现直接访问外部数据源DatabaseSchema范围内的全部表的功能。该方案可以打破数据湖与数据仓库割裂的体系,并融合数据湖的灵活性、丰富的多引擎生态与数据仓库的企业级能力,助力构建数据湖和数据仓库相融合的数据管理平台(本功能处于公测阶段)。

概念说明

  • 数据仓库与数据湖对比

    类别

    能力

    数据仓库

    更强调对进入数仓的结构化、半结构化数据的管理和约束,并依赖强管理能力,获得更好的计算性能和更规范化的管理能力。

    数据湖

    更强调数据存储的开放性和数据格式的通用性,支持多种引擎按需生产或消费数据,为保障灵活性只提供弱管理能力,可以兼容非结构化数据,并支持后建Schema的使用方式,是一种更灵活的数据管理方式。

  • MaxCompute数据仓库

    MaxCompute是基于Serverless架构的云原生数据仓库。可以进行如下操作:

    • 使用MaxCompute进行数据仓库建模。

    • 使用ETL工具将数据加载入有结构定义的模型表中并存储。

    • 使用标准的SQL引擎处理数仓中的海量数据,并通过Hologres OLAP引擎分析数据。

  • MaxCompute在数据湖上的使用场景和联邦场景

    在数据湖场景中,数据存在于湖上,并有多种引擎生产或消费这些开放的数据。MaxCompute计算引擎作为湖上引擎的一种,也可以参与数据的加工和使用。此时,MaxCompute需要读取数据湖上游产生的数据,兼容多种主流开源数据格式,在引擎内计算,并持续向工作流下游生产数据。

    同时,MaxCompute作为安全、高性能和高性价比、汇聚了高价值数据的数仓,也需要能够从数据湖上获取元数据和数据,进行外部数据的引擎内计算,并与仓内数据做联邦计算提取数据价值,向强管理的数仓汇聚。

    除了在数据湖之上,MaxCompute作为数仓也需要获取多种外部数据源的数据,例如Hadoop、Hologres等,与仓内数据做联邦计算。在联邦计算场景下,MaxCompute同样需要支持读取外部系统的元数据和数据。

  • MaxCompute湖仓一体2.0

    MaxCompute湖仓一体2.0基于MaxCompute计算引擎,支持通过云产品互联网络访问阿里云元数据或存储服务,或通过专线网络访问VPC中的外部数据源,允许用户建立定义外部数据源元数据和数据访问方式的管理对象,并通过外部Schema映射外部数据源的DatabaseSchema,实现直接访问外部数据源DatabaseSchema范围内的全部表的能力。

    image

    • 网络连接

      详情请参见访问VPC方案(专线直连)Networklink的相关说明。MaxCompute可以通过网络连接访问VPC网络中的数据源,例如EMR实例,RDS实例(准备中)。DLF(Data Lake Formation,数据湖构建)、OSS(对象存储)和Hologres位于云产品互联网络中,MaxCompute无需设置网络连接对象Networklink即可直接访问其中的数据。

    • 外部数据源(Foreign Server)

      包含了元数据和数据访问的信息,同时包含访问数据源系统的身份认证信息,位置信息和连接协议说明等。外部数据源是租户面的管理对象,由租户管理员定义。

      在开启了项目级别租户资源访问控制功能模式下,由租户管理员将其挂载给使用外部数据源的项目,项目管理员再通过Policy将外部数据源的使用权限授予项目内部的用户。

    • 外部Schema(External Schema)

      外部SchemaMaxCompute数仓项目中一种特殊Schema,如上图所示,可以映射数据源的DatabaseSchema,并可直接访问对端DatabaseSchema范围内的表和数据,这种通过外部Schema映射至对端数据库的表被称为联邦外表。

      联邦外表在MaxCompute内不存储元数据信息,而是由MaxCompute通过外部数据源对象中的元数据服务实时获取。用户查询时无需在数仓中通过DDL语句创建外部表,可直接以项目名称和外部Schema名称作为命名空间,引用数据源原表名的方式进行操作。数据源表结构或数据发生变化时,联邦外表能够即时反映数据源表的最新状态。外部Schema映射的数据源层次由外部数据源定义的层次与数据源中表层次之间的系统层次决定。外部数据源定义的层次由认证身份能访问的数据源层次决定。

    • 外部项目(External Project)

      在湖仓一体1.0中,外部项目是两层模式,和外部Schema一样映射一个数据源的DatabaseSchema,且需要依赖一个数仓项目才可以读取外部数据并计算。但是外部项目层级较高,映射数据源DatabaseSchema会导致外部项目数量过多,且无法和三层模式的数仓项目共用,MaxCompute会逐步收敛湖仓一体1.0的外部项目,存量用户可以迁移到外部Schema上。

      在湖仓一体2.0中,用户可以通过外部Schema承接湖仓一体1.0中外部项目的全部能力,外部项目直接映射对端三层模式数据源CatalogDatabase,并直接可见DLF Catalog之下的Database,或Hologres Database之下的Schema ,再以联邦外表的方式访问数据源表。湖仓一体2.0的外部项目会稍后推出,请关注官网文档说明。

    数据源类型

    外部数据源层次

    外部Schema映射层次

    湖仓一体2.0外部项目(稍后推出)映射层次

    湖仓一体1.0外部项目(下线中)映射层次

    认证方式

    DLF+OSS

    Region级别DLF服务和OSS服务

    DLFCatalog.Database

    DLFCatalog

    DLFCatalog.Database

    RAMRole

    Hive+HDFS

    EMR实例

    HiveDatabase

    不支持

    HiveDatabase

    免认证方式

    Hologres

    Hologres实例的Database

    Schema

    Database

    不支持

    RAMRole

    说明

    不同数据源的认证方式有多种类型,MaxCompute会在后续版本逐步提供多种认证方式,例如访问Hologres使用当前用户身份方式、访问Hive使用Kerberos认证方式等。