创建并编辑离线物理表

离线物理表可帮助您统一配置与管理计算任务开发过程中用到的离线物理表,提升开发效率。

使用限制

  • 若您未购买数据标准模块,不支持设置表中的数据标准字段。

  • 若您未购买资产安全模块,不支持设置表中的数据分级数据分类字段。

  • 仅支持MaxCompute、Hadoop、Lindorm、Databricks计算引擎。

创建离线物理表

步骤一:配置基本信息

  1. Dataphin首页的顶部菜单栏选择研发 > 数据研发

  2. 在顶部菜单栏选择项目(Dev-Prod模式还需选择环境)。

  3. 在左侧导航栏选择数据处理 > 表管理

  4. 在表管理列表中单击image图标,选择离线物理表

  5. 新建物理表配置向导中,配置以下参数。不同类型的计算引擎,所需配置参数不同。

    Hadoop计算引擎

    参数

    描述

    表名称

    输入离线物理表的名称,仅支持英文字母、数字和下划线(_),不超过128个字符。

    目录

    选择离线物理表所存放的目录。

    若未创建目录,您可以新建文件夹,操作方法如下:

    1. 在页面左侧计算任务列表上方单击image图标,打开新建文件夹对话框。

    2. 新建文件夹对话框中输入文件夹名称类型选择为离线,并根据需要选择目录位置。

    3. 单击确定

    主题域(非必选)

    选择表所归属的主题域。若无可选主题域,您可以进行创建,请参见创建主题域

    描述(非必填)

    填写简单的描述,1000个字符以内。

    存储格式

    选择离线物理表的存储格式,当前支持选择以下格式。

    • hudidelta(Delta Lake)当且仅当项目对应的计算源开启Spark SQL时,支持选择;若当前项目对应的计算源未开启Spark SQL,但研发平台-表管理设置中的默认存储格式选择为hudidelta(Delta Lake),则此处存储格式默认为引擎默认(建表语句中可另外指定)

      选择hudi,建表语句中存储格式子句为using hudi;选择delta(Delta Lake),建表语句中存储格式子句为using delta

    • parquet:建表语句中存储格式子句为stored as parquet

    • avro:建表语句中存储格式子句为stored as avro

    • rcfile:建表语句中存储格式子句为stored as rcfile

    • orc:建表语句中存储格式子句为stored as orc

    • textfile:建表语句中存储格式子句为stored as textfile

    • sequencefile:建表语句中存储格式子句为stored as sequencefile

    Lindom计算引擎

    参数

    描述

    表名称

    输入离线物理表的名称,仅支持英文字母、数字和下划线(_),不超过128个字符。

    目录

    选择离线物理表所存放的目录。

    若未创建目录,您可以新建文件夹,操作方法如下:

    1. 在页面左侧计算任务列表上方单击image图标,打开新建文件夹对话框。

    2. 新建文件夹对话框中输入文件夹名称类型选择为离线,并根据需要选择目录位置。

    3. 单击确定

    主题域(非必选)

    选择表所归属的主题域。若无可选主题域,您可以进行创建。请参见创建主题域

    描述(非必填)

    填写简单的描述,1000个字符以内。

    存储格式

    选择离线物理表的存储格式,默认与研发平台-表管理设置中的默认存储格式一致,当前支持选择以下格式。

    • 引擎默认(建表语句中可另外指定):建表语句无存储格式设置语句(usingstored as)。

    • parquet

    • avro

    • rcfile

    • orc

    • textfile

    • sequencefile

    Databricks计算引擎

    参数

    描述

    表名称

    输入离线物理表的名称,仅支持英文字母、数字和下划线(_),不超过128个字符。

    目录

    选择离线物理表所存放的目录。

    若未创建目录,您可以新建文件夹,操作方法如下:

    1. 在页面左侧计算任务列表上方单击image图标,打开新建文件夹对话框。

    2. 新建文件夹对话框中输入文件夹名称类型选择为离线,并根据需要选择目录位置。

    3. 单击确定

    主题域(非必选)

    选择表所归属的主题域。若无可选主题域,您可以进行创建。请参见创建主题域

    描述(非必填)

    填写简单的描述,1000个字符以内。

    存储格式

    选择离线物理表的存储格式,默认与研发平台-表管理设置中的默认存储格式一致,当前支持选择以下格式。

    • 引擎默认(建表语句中可另外指定):建表语句无存储格式设置语句(usingstored as)。

    • avro

    • binaryfile

    • csv

    • delta(Delta Lake)

    • json

    • orc

    • parquet

    • text

    MaxCompute计算引擎

    参数

    描述

    表名称

    输入离线物理表的名称,仅支持英文字母、数字和下划线(_),不超过128个字符。

    目录

    选择离线物理表所存放的目录。

    若未创建目录,您可以新建文件夹,操作方法如下:

    1. 在页面左侧计算任务列表上方单击image图标,打开新建文件夹对话框。

    2. 新建文件夹对话框中输入文件夹名称类型选择为离线,并根据需要选择目录位置。

    3. 单击确定

    主题域(非必选)

    选择表所归属的主题域。若无可选主题域,您可以进行创建。请参见创建主题域

    描述(非必填)

    填写简单的描述,1000个字符以内。

  6. 配置完成后,单击下一步

步骤二:配置字段列表

不同存储格式字段列表所支持的配置不同,详见下表。

说明

Databricks计算引擎下的离线物理表,当存储格式为引擎默认(建表语句中可另外指定)时,字段列表所支持的配置与存储格式为delta(Delta Lake)相同

存储格式为hudidelta(Delta Lake)

  1. 字段列表配置页面配置当前物理表的表字段、数据类型、数据分类等结构信息。

    image

    区块

    说明

    字段列表操作

    • 搜索:您可以通过表字段名称搜索所需字段。

    • 编辑DDL:编辑当前物理表的DDL语句。

    • 添加数据字段:单击添加数据字段,在新添加的字段行中填写字段名称数据类型字段说明等信息。

    • 从建表语句引入:使用建表语句引入新字段。单击从建表语句引入,在从建表语句引入对话框中,按照下图操作指引,输入建表语句后单击解析SQL,在解析出的字段中选中所需引入的字段,并单击添加进行引入。image..png

    • 从表引入:单击从表引入,在从表引入对话框中,选择引入字段所在的来源表并选中所需引入字段,并单击添加进行引入。

    字段列表

    字段列表为您展示字段的序号字段名称数据类型字段说明字段标准数据分类数据分级等字段的详细信息。

    • 序号:表字段序号。每新增1个字段,按序递增。

    • 字段名称:表字段名称。您可输入词根的全称进行搜索,系统将自动匹配治理 > 数据标准 >词根中配置的词根。

    • 数据类型:支持stringbigintdoubletimestampdecimal文本数值日期时间其他数据类型。

      • 文本varcharchar

      • 数值intsmaIlinttinyintfloat

      • 日期时间date。MaxCompute计算引擎支持datetime。

        说明

        Hadoop计算引擎不支持datetime。

      • 其他booleanbinary

    • 字段说明:表字段说明信息,512个字符以内。

    • 字段标准:选择字段的字段标准。如需创建标准,请参见新建和管理数据标准

    • 数据分类:选择字段的数据分类。如需创建数据分类,请参见新建数据分类

    • 数据分级:选择数据分类后,系统将自动识别数据级别。

    同时您可以在操作列下对字段进行删除操作。

    说明

    字段删除后不可撤销。

    批量操作

    您可以批量选择表字段,进行以下操作。

    • 删除:单击image图标,批量删除已经选中的数据字段。

    • 词根命名:单击image图标,系统将对字段的说明内容进行分词并匹配已经创建的词根,进行字段名称推荐。您可以在词根命名对话框中,将选中字段的名称替换为修改后的值。

      说明
      • 若推荐的字段名称均不满足需求,您可以在修复后字段名称输入框中进行修改。

      • 单击重置将重置修改后字段名称为系统的命中词根。

    • 字段标准:单击image图标,系统将根据字段名称进行字段标准推荐。您可以在字段标准对话框中,将字段设置为推荐的字段标准。

  2. 完成字段添加后,单击下一步

hudidelta(Delta Lake)存储格式

  1. 字段列表配置页面配置当前物理表的表字段、数据类型、数据分类等结构信息。

    image

    区块

    说明

    字段列表操作

    • 搜索:您可以通过表字段名称搜索所需字段。

    • 编辑DDL:编辑当前物理表的DDL语句。

    • 添加数据字段:单击添加字段,选择数据字段分区字段快捷添加日期分区字段类型,并在新添加的字段行中填写字段名称数据类型字段说明等信息。

      • 添加数据字段:单击可在表字段中添加一行数据字段。

      • 分区字段:单击可在表字段中添加一行分区字段。

      • 快捷添加日期分区:单击可在表字段中添加一行日期分区。默认为ds

    • 从建表语句引入:使用建表语句引入新字段。单击从建表语句引入,在从建表语句引入对话框中,按照下图操作指引,输入建表语句后单击解析SQL,在解析出的字段中选中所需引入的字段,并单击添加进行引入。image..png

    • 从表引入:单击从表引入,在从表引入对话框中,选择引入字段所在的来源表并选中所需引入字段,并单击添加进行引入。

    字段列表

    字段列表为您展示字段的序号字段名称数据类型字段说明字段标准数据分类数据分级等字段的详细信息。

    • 序号:表字段序号。每新增1个字段,自增+1。

    • 字段名称:表字段名称。您可输入词根的全称进行搜索,系统将自动匹配治理 > 数据标准 >词根中配置的词根。

    • 数据类型:支持stringbigintdoubletimestampdecimal文本数值日期时间其他数据类型。

      • 文本varcharchar

      • 数值intsmaIlinttinyintfloat

      • 日期时间date。MaxCompute计算引擎支持datetime

        说明

        Hadoop计算引擎不支持datetime。

      • 其他booleanbinary

    • 字段说明:表字段说明信息,512个字符以内。

    • 字段标准:选择字段的字段标准。如需创建标准,请参见新建和管理数据标准

    • 数据分类:选择字段的数据分类。如需创建数据分类,请参见新建数据分类

    • 数据分级:选择数据分类后,系统将自动识别数据级别。

    同时您可以在操作列下对字段进行删除操作。

    说明

    字段删除后不可撤销。

    批量操作

    您可以批量选择表字段,进行以下操作。

    • 删除:单击image图标,批量删除已经选中的数据字段。

    • 词根命名:单击image图标,系统将对字段的说明内容进行分词并匹配已经创建的词根,进行字段名称推荐。您可以在词根命名对话框中,将选中字段的名称替换为修改后的值。

      说明
      • 若推荐的字段名称均不满足需求,您可以在修复后字段名称输入框中进行修改。

      • 单击重置将重置修改后字段名称为系统的命中词根。

    • 字段标准:单击image图标,系统将根据字段名称进行字段标准推荐。您可以在字段标准对话框中,将字段设置为推荐的字段标准。

  2. 完成字段添加后,单击下一步

步骤三:存储配置

MaxCompute计算引擎、Hadoop计算引擎下不同存储格式存储配置所支持的配置不同,详见下表。

存储格式为hudi

参数

描述

数据更新类型(非必选)

选择type,可选择cow(Copy on Write)mor(Merge on Read)

主键与合并排序键(非必选)

  • primaryKey:选择一个或多个主键,可选择字段列表中的所有字段。若选择多个主键,将按照选择顺序进行排序。

  • preCombineField:选择一个字段作为合并排序键,可选择字段列表中的任一字段。

数据分布

开启或关闭Partition,默认为关闭。

开启Partition后,还需选择Partitioned By,可选择字段列表中的一个或多个字段。

说明

Partitioned By不支持将所有字段作为分区字段,即列表中字段不可全选

存储地址(非必填)

输入Location(存储地址),支持使用全局变量,不超过512个字符。

说明

外部表可省略external关键词。若建表语句中包含location子句,则所创建的表为外部表。

参数配置完成后,单击提交。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

hudi编辑SQLDDL语句可参见SQL DDLSchema Evolution

说明
  • Location(存储地址)为空,则建表语句中无location子句。

  • 若当前计算引擎为Hadoop计算引擎,则使用Spark SQL;若当前计算引擎为Lindorm(计算引擎)Databricks,则使用计算源默认SQL

存储格式为delta(Delta Lake)

参数

描述

数据分布

  • Liquid Clustering:开启或关闭Liquid Clustering,默认为关闭。开启Liquid Clustering后还需选择Cluster By可选择字段列表中的一个或多个字段。

  • Partition:开启或关闭Partition,默认为关闭。开启Partition后,还需选择Partitioned By,可选择字段列表中的一个或多个字段。

说明
  • Liquid ClusteringPartition不可同时开启。

  • Partitioned By不支持将所有字段作为分区字段,即列表中字段不可全选

存储地址(非必填)

输入Location(存储地址),支持使用全局变量,不超过512个字符。

说明

外部表可省略external关键词。若建表语句中包含location子句,则所创建的表为外部表。

参数配置完成后,单击提交。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

delta编辑SQLDDL语句可参见AlTER TABLE

说明
  • Location(存储地址)为空,则建表语句中无location子句。

  • 若当前计算引擎为Hadoop计算引擎,则使用Spark SQL;若当前计算引擎为Lindorm(计算引擎)Databricks,则使用计算源默认SQL

其他存储格式

参数

描述

存储类型

可选择内部表外部表。若选择外部表,还需配置Location

Location

输入Location(存储地址),支持使用全局变量,不超过512个字符。

参数配置完成后,单击提交。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

说明

若当前计算引擎为Hadoop计算引擎,且存储格式选择为kudu,则使用Impala SQL。

MaxCompute计算引擎

  • MaxCompute内部表

    参数

    描述

    存储类型

    选择内部表

    是否事物表

    选择,若选择,还可继续配置Primary Key,将表创建为Delta表。

    Primary Key(非必选)

    选择一个或多个主键,可选择字段列表中的所有字段。若选择多个主键,将按照选择顺序进行排序。

    生命周期(非必填)

    当前表的保存时间。支持输入正整数天,也可以快速选择71430360天。

  • MaxCompute外部表

    参数

    描述

    存储类型

    选择外部表

    存储格式

    选择存储格式,默认与研发平台-表管理设置中的外部表默认存储格式一致。可选择parquetavrorcfileorctextfilesequencefile

    Location

    输入Location(存储地址),支持使用全局变量,不超过512个字符。

参数配置完成后,单击提交。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

导入数据

提交离线物理表后,您可导入数据至离线物理表。

  1. 在表管理列表中单击目标离线物理表,可输入表名关键字搜索。

  2. 在表详情页面,单击导入数据,打开导入数据对话框。

  3. 导入数据对话框的基础配置步骤中上传数据并配置导入参数。

    参数

    描述

    上传文件

    单击选择文件,上传需导入的数据文件。仅支持.txt、.csv类型的文件,文件大小不超过10MB。

    分隔符

    数据的分隔符,支持逗号(,)、水平制表符(\t)、竖线(|)、正斜线(/)。也可以输入指定其他分隔符。

    字符集编码

    选择上传的数据文件字符集编码。支持解析utf-8(无BOM)、utf-8(有BOM)、gbk、big5、gb2312、ascii、utf-16字符集。

    首行为标题

    根据上传的数据文件选择首行是否为标题。

    目标分区

    如果表为分区表,需输入导入数据的目标分区名称。

  4. 单击下一步

  5. 导入数据步骤中,配置数据表字段的映射关系。

    • 映射关系

      • 同行映射:即按相同行数对应进行绑定为映射关系。

      • 同名映射:即按相同名称对应进行绑定为映射关系。

    • 导入文件数据列:支持设置为数据列、空值NULL或固定值。

  6. 单击开始导入,即可将数据导入到表中。

编辑离线物理表

提交离线物理表后,您可编辑物理表数据。

  1. 在表管理列表中单击目标离线物理表,可输入表名关键字搜索。

  2. 在表详情页面,单击编辑,打开物理表编辑页面。

    不同类型的存储格式,支持编辑的参数不同,详见下表。

    存储格式为hudi

    页签

    描述

    基本信息

    仅支持编辑表名称描述,参数填写要求与创建离线物理表时一致。

    字段列表

    支持编辑和删除hudi系统字段外其他字段的字段名称和字段类型。hudi系统字段包含:

    • _hoodie_commit_time

    • _hoodie_commit_seqno

    • _hoodie_record_key

    • _hoodie_partition_path

    • _hoodie_file_name

    说明

    在修改字段名称、字段类型或添加/删除字段时,根据不同引擎的设置,可能会因不支持而报错。

    存储配置

    仅支持编辑typeprimaryKeypreCombineFieldLocation。其中仅当当前数据表为外部表时,可编辑Location。

    编辑完成后,单击提交,提交时使用计算源默认SQL。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

    说明

    对存储格式为hudi的表(Hudi表)做重命名字段、删除字段、修改字段类型等操作时,如果遇到引擎报错,请联系引擎服务商检查引擎设置。

    存储格式为delta(Delta Lake)

    页签

    描述

    基本信息

    仅支持编辑表名称描述,参数填写要求与创建离线物理表时一致。

    字段列表

    支持编辑、删除已有字段,可添加新字段。字段填写要求与创建离线物理表时一致。

    存储配置

    • 数据分布

      • Liquid Clustering开启时,支持关闭或重新选择Cluster By字段。

      • Liquid Clustering关闭,且Partition也关闭时,可开启Liquid Clustering并指定Cluster By字段。

      • Liquid Clustering关闭,且Partition也关闭时,Partition不可开启。

      • Partition开启时,Liquid Clustering、PartitionPartitioned By均不支持修改。

    • 存储地址:仅当当前数据表为外部表时,支持编辑Location。

    编辑完成后,单击提交,提交时使用计算源默认SQL。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

    MaxCompute计算引擎

    • MaxCompute内部表

      页签

      描述

      基本信息

      仅支持编辑表名称描述,参数填写要求与创建离线物理表时一致。

      字段列表

      支持编辑、删除已有字段,可添加新字段。字段填写要求与创建离线物理表时一致,当修改字段类型时会生成DDL。

      支持取消选中字段的不可为空选项。

      • 若当前表为内部事务表,已设置为主键的字段,不可取消选中且不可为空。

      • 仅支持对已选中不可为空的字段做取消选中不可为空的操作。

      存储配置

      支持编辑生命周期,填写要求与创建离线物理表时一致。

    • MaxCompute外部表

      页签

      描述

      基本信息

      仅支持编辑表名称描述,参数填写要求与创建离线物理表时一致。

      字段列表

      支持编辑、删除已有字段,可添加新字段。字段填写要求与创建离线物理表时一致,当修改字段类型时会生成DDL。

      仅支持对已选中不可为空的字段做取消选中不可为空的操作。

      存储配置

      支持编辑存储地址(Location),参数填写要求与创建离线物理表时一致。

    编辑完成后,单击提交。在提交对话框中查看并确认当前建表的SQL语句,确认后单击确定并提交

    说明

    如果变更中包含删除字段修改字段类型等操作,须先在MaxCompute侧的项目级设置setproject odps.schema.evolution.enable=true;

后续步骤

  • 如果您的开发模式是Dev-Prod模式,则需要发布离线物理表。更多信息,请参见管理发布任务

  • 如果您的开发模式是Basic模式,提交成功后的离线物理表可在资产目录进行管理。更多信息,请参见。