文档

创建并使用MaxCompute表

更新时间:

您可通过MaxCompute的SQL语句及DataWorks提供的可视化方式,创建与管理MaxCompute表。相比SQL方式,可视化方式操作更加便捷。本文为您介绍如何使用可视化方式创建及管理MaxCompute表。

前提条件

已创建MaxCompute数据源并绑定至数据开发(DataStudio)。详情请参见创建MaxCompute数据源开发前准备:绑定数据源或集群

背景信息

  • 表操作原则

    创建与操作MaxCompute表,遵循MaxCompute表操作的基本要求。例如,表创建成功后不支持产出字段。详情请参见MaxCompute表操作使用限制

  • 表物理属性变更

    MaxCompute表的物理属性变更操作,均可通过MaxCompute SQL命令执行,详情请参见表操作。由于DataWorks上操作MaxCompute存在一定的权限管控,RAM用户(子账号)在某些场景下通过命令操作表会报错,详情请参见MaxCompute数据权限控制详情

  • 元数据更新延迟

    元数据操作可能存在一定延迟,通过可视化方式新建、更新或删除表后,若界面搜索不到表,或删除后表仍可见,可通过数据地图的手工同步工具,手动同步相关操作结果。详情请参见手工同步工具

进入数据开发(DataStudio)

登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

新建MaxCompute表

您可在DataWorks表管理目录中新建,也可在具体业务流程下,针对该业务流程新建相关表。DataWorks支持通过DDL与可视化编辑两种方式分别创建开发表与生产表。

新建表入口

  • 基于表管理新建

    在数据开发(DataStudio)左侧导航栏选择表管理,单击新建图标新建。若左侧导航栏无表管理模块,可参考界面定制添加。

  • 基于具体业务流程新建

    DataWorks通过业务流程组织与管理代码,您可基于业务流程创建该业务的相关表。若还未创建业务流程,请先参考业务流程创建。在已有业务流程的情况下,可右键单击相应业务流程,选择MaxCompute >

配置表基本信息

按上述步骤创建表后,将进入表编辑页面。在该页面,DataWorks支持使用DDL及可视化两种方式配置表信息,具体如下:

  • 使用DDL模式配置表

    您可单击表编辑页面中的ddl图标,通过MaxCompute标准的建表语句生成MaxCompute表结构。使用DDL生成表结构后,DataWorks便自动填充表编辑页面的相关配置。若您习惯使用代码编写任务,可使用该方式。

    说明
    • 由于表名称在进入表编辑页面前已定义,因此,在DDL建表命令中不支持修改表名称,否则将报错。

    • DDL模式仅支持使用命令定义表的物理属性,表的业务属性可在DDL建表完成并将配置填充界面后,在表编辑页面进行二次编辑。

  • 使用可视化界面配置表

    您可通过表编辑页面中各项配置指引,依次配置表相关属性。若您希望使用便捷的可视化操作,可使用该方式。下文以可视化操作示例,为您介绍如何配置表的相关信息。

    1. 配置基本属性。配置表基本属性主要配置项如下。

      配置项

      说明

      中文名

      定义表的中文名称。

      主题

      DataWorks的主题相当于文件夹。定义表所属的一级文件夹与二级文件夹。您可基于业务用途对表进行归类,将同类表挂载至相同文件夹中。

      说明

      一级主题、二级主题仅为DataWorks上表管理文件夹的呈现形式,旨在方便您更好地管理表。 后续在表管理页面可通过主题快速查找当前表,如果没有可用的主题,可参考定义表主题新建。

    2. 物理模型设计。物理模型设计配置项说明如下。

      配置项

      说明

      层级

      表所属的物理数仓分层。层级用于定义和管理数据仓库分层,通常可划分为数据引入层ODS(Operational Data Store)、公共维度层DIM(Dimension)、明细数据层DWD(Data Warehouse Detail)、汇总数据层DWS(Data Warehouse Summary)、应用数据层ADS(Application Data Service)。您可根据表的业务用途,将其挂载至合适的层级。

      说明

      您也可自定义层级。详细操作请参见层级管理

      物理分类

      定义表的物理分类,即基于业务使用视角对表进行更详细的分类。通常包括基础业务层、高级业务层和其它。

      说明

      您也可自定义物理分类。详细操作请参见分类管理

      生命周期

      定义表生命周期。

      分区类型

      定义表为分区表还是非分区表。MaxCompute分区表与非分区表介绍,请参见分区

      表类型

      定义表为内部表还是外部表。查询表数据时,内部表会导入真实数据,查询数据速度较快;外部表无需导入数据即可查询,较节省内存。MaxCompute内部表与外部表介绍,请参见

    3. 表结构设计。表结构主要配置项说明如下。

      配置

      说明

      字段类型

      定义字段数据类型,仅支持下拉选择MaxCompute支持的数据类型。MaxCompute数据类型介绍,请参见数据类型版本说明

      字段安全等级

      定义字段安全等级,仅在MaxCompute项目开启Label级权限控制的情况下,该配置项才可见。MaxCompute字段安全等级介绍,请参见Label权限控制

      主键

      定义表业务主键,由于MaxCompute表本身不支持主键,所以此处主键仅作为业务维度进行管理。

提交并发布MaxCompute表

表结构定义完成后,您需将其提交至开发环境与生产环境。

说明

不同模式工作空间,MaxCompute表的提交发布说明如下:

  • 简单模式:仅需将表提交至生产环境。

  • 标准模式:仅空间管理员运维角色可以发布表至生产环境。如您需发布表至生产环境,则可授予用户相应权限。授权操作,详情请参见添加空间成员并管理成员角色权限

工作空间模式介绍,详情请参见必读:简单模式和标准模式的区别

操作

描述

从开发环境加载

用于从开发环境加载开发表的相关信息,并显示至当前页面。

说明

仅当表已被提交至开发环境后,才可执行该操作。执行该操作后,开发环境已创建的表信息会覆盖当前页面的表信息。

提交到开发环境

提交表至DataWorks的开发环境,即在开发环境所添加的MaxCompute数据源对应的MaxCompute项目中创建当前表。提交成功后,可执行如下操作:

从生产环境加载

用于从生产环境加载生产表的相关信息,并显示至当前页面。

说明

仅当表已被提交至生产环境后,才可执行该操作。执行该操作后,生产环境已创建的表信息会覆盖当前页面的表信息。

提交到生产环境

提交表至DataWorks的生产环境,即在生产环境所添加的MaxCompute数据源对应的MaxCompute项目中创建当前表。提交成功后,可执行如下操作:

  • 查看表结构

    在数据开发(DataStudio)开发ODPS SQL任务,通过desc projectname.tablename命令查看。

  • 查看引擎信息

    查看生产环境的MaxCompute引擎及新建表,详情请参见创建MaxCompute数据源

MaxCompute表数据写入与导出

您可参考以下内容进行MaxCompute数据的导入导出。

MaxCompute表数据写入

您可通过数据集成任务MaxCompute节点任务向MaxCompute表中写入数据,此外,DataWorks还支持通过上传数据功能将本地数据导入MaxCompute表中。

MaxCompute表数据导出

在数据开发(DataStudio)查询数据后,您可通过查询结果界面的下载入口将表数据导出至本地。默认单次最多可下载1W条数据,租户管理员、租户安全管理员可前往安全中心的数据查询与分析管控界面,设置单次可下载条数的上限。

说明

超过1W条的数据,可通过MaxCompute客户端导出,使用Tunnel命令导出。

查询MaxCompute表数据

您可使用ODPS SQL节点临时查询功能,通过SQL语句查询MaxCompute表的数据。

权限预设情况说明

简单模式工作空间无法做到细粒度权限控制及开发生产隔离,本文以标准模式工作空间示例说明。

RAM用户被添加至工作空间成为空间成员后,其数据访问权限预设情况如下。

权限类别

描述

MaxCompute开发项目权限

DataWorks通过空间级预设角色与开发环境MaxCompute引擎Role的映射关系,让被授予空间角色的RAM用户(子账号)拥有该角色映射的开发引擎权限,默认拥有开发环境对应的引擎项目权限,但无生产环境对应的引擎项目权限。

MaxCompute生产项目权限

除被授予调度访问身份的RAM用户(子账号)拥有生产环境MaxCompute项目较大权限外,其他RAM用户(子账号)没有生产环境项目权限。如需操作生产表,请前往安全中心申请权限。

DataWorks为您提供了默认的审批流程,同时,也支持管理者自定义审批流程。

更多关于MaxCompute数据访问权限控制说明,请参见MaxCompute数据权限控制详情

数据访问行为说明

MaxCompute支持跨项目查询表,因此,在数据开发(DataStudio)界面可通过指定项目名称的方式,跨项目查询DataWorks工作空间中的生产数据。跨项目访问表的方式及各界面执行所使用的账号说明,请见下表。

说明
  • 不同环境添加的MaxCompute数据源及环境配置的执行账号,可查看数据开发中的数据源绑定信息,详情请参见开发前准备:绑定数据源或集群

  • DataWorks标准模式工作空间下,开发环境默认使用任务执行者个人身份执行任务,生产调度环境默认使用某云账号执行任务,即调度访问身份。详情请参见创建MaxCompute数据源

代码示例

开发环境(数据开发、开发环境运维中心)执行代码

生产环境(生产环境运维中心)执行代码

访问开发项目中的开发表:

select col1 from projectname_dev.tablename;

使用任务执行者个人云账号访问开发表。

  • RAM用户(子账号)执行相关任务,则使用RAM用户(子账号)个人云账号访问开发表。

  • 阿里云主账号执行相关任务,则使用阿里云主账号访问开发表。

使用调度访问身份访问开发表。

访问生产项目中的生产表:

select col1 from projectname.tablename;

使用任务执行者个人云账号访问生产表。

说明

由于生产数据安全控制,个人云账号默认无权限访问生产表,需前往安全中心进行申请。DataWorks提供默认审批流程,支持管理者自定义审批流程。

使用调度访问身份访问生产表。

在目标类型环境(例如,开发环境)执行语句,访问相应环境中的表(即开发表):

select col1 from tablename;

在开发环境执行时,使用任务执行者个人云账号访问身份,访问开发引擎中目标表。

在生产环境执行时,使用调度访问身份,访问生产引擎中目标表。

查看MaxCompute数据资产

您可通过以下内容查看MaxCompute相关数据资产。

查看租户下生产表

您可在数据开发的公共表模块,查看当前地域下您阿里云账号中的所有生产表。

查看元数据

您可前往数据地图,查看MaxCompute表详情与元数据信息。

查看表血缘

数据地图表详情页,您可查看该表的上下游血缘。

说明

若要定位空间下操作该表的任务,可通过代码搜索功能进行检索。

批量管理MaxCompute表

您可通过以下内容批量管理MaxCompute表。

批量删除MaxCompute表

您可前往数据地图的我的数据,批量删除您个人名下的表。

说明

由于生产数据安全管控,您无法直接通过命令删除生产表。若要删除非您名下的表,需前往安全中心申请表权限。

批量转交表责任人

您可前往数据地图的我的数据,批量转交您个人名下的表。

批量修改表生命周期

您可前往数据地图的我的数据,批量修改您个人名下表的生命周期。

说明

单表生命周期可通过表管理进行修改,详情请参见新建MaxCompute表

基于业务流程管理表

使用表管理新建的表,可通过导入的方式添加至数据开发具体的业务流程中,并基于业务流程来管理、查看该业务相关的表。具体操作如下图所示。从引擎添加

  • 被引用:指该表在当前业务流程中有被查询(select)。

  • 被写入:指当前业务流程中存在写入数据至该表的操作(insert overwrite)。