MaxCompute提供湖仓一体方案,该方案可以打破数据湖与数据仓库割裂的体系,并将数据湖的灵活性、生态丰富能力与数据仓库的企业级部署能力进行融合,助力构建数据湖和数据仓库相融合的数据管理平台。本文为您介绍如何通过MaxCompute和数据湖构建湖仓一体能力。

背景信息

MaxCompute湖仓一体方案通过数据仓库MaxCompute、数据湖(对象存储OSS或Hadoop HDFS)共同实现。当前支持的两种构建湖仓一体能力方式如下:
  • 与阿里云OSS构建湖仓一体能力:通过MaxCompute和OSS实现。该方式需要配套使用阿里云产品数据湖构建DLF(Data Lake Formation)。数据湖的元数据(Schema)全部位于DLF中。MaxCompute可以利用DLF对湖数据的元数据管理能力,提升对OSS半结构化格式(AVRO、CSV、JSON、PARQUET、ORC)数据的处理能力。

    本文将以此场景为例介绍操作流程。您需要基于已创建的MaxCompute项目、DLF元数据库、DLF元数据表、OSS路径来创建External Project,实现访问数据湖OSS中的数据。同时,您还可以基于已创建的MaxCompute项目对External Project执行表相关操作。

  • 与Hadoop HDFS构建湖仓一体能力:通过MaxCompute和Hadoop HDFS(包括本地机房搭建、基于云上虚拟机搭建以及阿里云 E-MapReduce等)实现。您需要填写MaxCompute湖仓一体方案使用申请表,提交申请后,MaxCompute团队技术人员会联系并协助您完成后续操作。您无需关注本文中后续操作。
MaxCompute湖仓一体方案具备的优势如下:
  • MaxCompute是企业级的高性能数据仓库。可以通过云原生大数据服务,以更敏捷的方式满足业务高弹性和敏捷性需求。
  • MaxCompute可通过DLF与数据湖联动,您无需迁移数据即可无缝处理和分析数据湖中的数据。
  • 完成湖仓一体能力构建后,您即可通过DataWorks可视化开发平台,执行数据开发、数据管理或数据治理操作。

前提条件

请您确认已满足以下条件:
  • 已创建标准存储类型的OSS存储空间,并准备好OSS目录及数据文件。

    更多创建OSS存储空间、OSS目录及上传数据文件信息,请参见创建存储空间创建目录上传文件

    为便于展示后续操作,假设本文已创建的OSS相关信息如下。OSS地域为华东2(上海)、存储空间名称为mc-dlf-oss、OSS目录名称为mc-dlf

    OSS
  • 已创建MaxCompute项目(非External Project)。
    更多创建MaxCompute项目信息,请参见创建MaxCompute项目。假设已创建的MaxCompute项目名称为doc_test_prodMaxCompute项目
  • 已开通DLF

使用限制

MaxCompute湖仓一体方案的使用限制如下:
  • 仅华东1(杭州)、华东2(上海)和华北2(北京)地域支持构建湖仓一体能力。
  • MaxCompute可以部署在与OSS和DLF不同的地域,但OSS和DLF必须部署在同一地域。

操作流程

步骤一:获取支持湖仓一体功能的MaxCompute客户端

下载支持湖仓一体功能的MaxCompute客户端,并完成安装和配置。

更多安装和配置MaxCompute客户端信息,请参见安装并配置MaxCompute客户端

步骤二:在DLF中创建元数据库和元数据表

基于准备好的OSS信息,在DLF中创建元数据库和元数据表,用于存放OSS数据的元数据信息。操作步骤如下:

  1. 登录元数据库管理控制台,在左上角选择与OSS相同的地域,例如华东2(上海)
  2. 创建元数据库。例如shanghai。
    1. 在左侧导航栏,单击元数据库
    2. 元数据库页面,单击新建元数据库
    3. 新建元数据库对话框,配置元数据库参数。
      新建元数据库
      参数 是否必填 描述 示例
      元数据库名称 元数据库的名称。长度不能超过128个字符,以字母开头,且只能包含字母、下划线(_)和数字。 shanghai
      元数据库描述 元数据库的备注信息。 关联OSS实现湖仓一体功能
      选择路径 OSS数据路径。格式为oss://<Bucket名称>/<OSS目录名称>/ oss://mc-dlf-oss/mc-dlf/
    4. 单击确定,完成元数据库创建。
      元数据库
  3. 创建元数据表。例如sh_rt。
    1. 元数据库页面,在目标元数据库的操作列单击
    2. 元数据表页面,单击新建元数据表
    3. 新建元数据表页面,配置元数据表的基本信息。
      新建元数据表
      参数 是否必填 描述 示例
      元数据表名称 元数据表的名称。长度不能超过128个字符,以字母开头,且只能包含字母、下划线(_)和数字。 sh_rt
      所属库 元数据库的名称。在下拉列表选择已创建的元数据库。 shanghai
      数据存储位置 OSS数据文件的位置信息。格式为oss://<Bucket名称>/<OSS目录名称>/ oss://mc-dlf-oss/mc-dlf/
      数据格式 OSS数据文件的格式。在下拉列表选择目标格式。取值范围如下:
      • AVRO
      • CSV
      • JSON
      • PARQUET
      • ORC
      CSV
      元数据表描述 元数据表的备注信息。 关联OSS实现湖仓一体功能
      输入格式 无需手动配置。选择数据格式后,系统会自动赋值。
      • AVROorg.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat
      • CSVorg.apache.hadoop.mapred.TextInputFormat
      • JSONorg.apache.hadoop.mapred.TextInputFormat
      • PARQUETorg.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
      • ORCorg.apache.hadoop.hive.ql.io.orc.OrcInputFormat
      输出格式 无需手动配置。选择数据格式后,系统会自动赋值。
      • AVROorg.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat
      • CSVorg.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
      • JSONorg.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
      • PARQUETorg.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
      • ORCorg.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
      序列化方式 无需手动配置。选择数据格式后,系统会自动赋值。
      • AVROorg.apache.hadoop.hive.serde2.avro.AvroSerDe
      • CSVorg.apache.hadoop.hive.serde2.OpenCSVSerde
      • JSONorg.openx.data.jsonserde.JsonSerDe
      • PARQUETorg.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
      • ORCorg.apache.hadoop.hive.ql.io.orc.OrcSerde
      分割符 选择数据格式CSV时,需要根据OSS数据文件的实际分割符配置该参数。取值范围如下:
      • 逗号(,)
      • 竖线(|)
      • 分号(;)
      • Tab(\u0009)
      • Ctrl-A(\u0001)
      逗号(,)
    4. 新建元数据表页面,单击添加列,配置元数据表的列信息,单击确定
      注意 添加列数及列的数据类型必须与OSS数据文件中的数据列数和数据类型,按顺序保持一致。一次只能添加一列。当OSS数据文件中存在多列数据时,需要多次执行添加列操作。
      添加列
      参数 是否必填 描述 示例
      列编号 添加列的编号。 1
      列名称 添加列的名称信息。长度不能超过128个字符,以字母开头,且只能包含字母、下划线(_)和数字。 col1
      数据类型 列的数据类型。在下拉列表选择数据类型,需要与OSS数据文件中对应列的数据类型保持一致。 string
      分区字段 指定列字段是否是分区字段。取值范围如下:
      描述 添加列的备注信息。 第一列
  4. 单击确定,完成元数据表创建。
    元数据表

步骤三:授权MaxCompute访问DLF

操作MaxCompute项目的账号未经授权无法访问DLF,您需要执行授权操作。授权方式包含如下两种:
  • 方式一:一键授权。当创建MaxCompute项目的账号和部署DLF的账号相同时,推荐使用该方式。您可以单击此处完成一键授权
  • 方式二:自定义授权。当需要自定义授权信息时,使用该方式。创建MaxCompute项目的账号和部署DLF的账号相同或不相同,都可以使用该方式。

自定义授权的操作步骤如下:

  1. 登录RAM控制台创建可信实体为阿里云账号的RAM角色。例如AliyunODPSRoleForDLF。
    更多创建RAM角色信息。请参见创建可信实体为阿里云账号的RAM角色RAM角色
  2. 通过RAM控制台修改新建RAM角色的信任策略。
    注意 如果创建MaxCompute项目的账号和部署DLF的账号不相同,此处需要使用部署DLF的账号进行操作。
    更多修改RAM角色信任策略信息,请参见修改RAM角色的信任策略
    修改信任策略为如下内容。
    --当创建MaxCompute项目的账号和部署DLF的账号是同一个账号时,设置如下。
    {
    "Statement": [
    {
     "Action": "sts:AssumeRole",
     "Effect": "Allow",
     "Principal": {
       "Service": [
         "odps.aliyuncs.com"
       ]
     }
    }
    ],
    "Version": "1"
    }
    --当创建MaxCompute项目的账号和部署DLF的账号不是同一个账号时,设置如下。
    {
    "Statement": [
    {
     "Action": "sts:AssumeRole",
     "Effect": "Allow",
     "Principal": {
       "Service": [
         "<MaxCompute项目的Owner云账号id>@odps.aliyuncs.com"  
       ]
     }
    }
    ],
    "Version": "1"
    }
    MaxCompute的Owner云账号id:可以在个人信息中获取。
  3. 通过RAM控制台为新建RAM角色自定义权限策略。配置模式脚本配置
    更多自定义权限策略信息,请参见创建自定义策略
    自定义权限策略内容如下。
    {
    "Version": "1",
    "Statement": [
    {
     "Action": [
       "oss:ListBuckets",
       "oss:GetObject",
       "oss:ListObjects",
       "oss:PutObject",
       "oss:DeleteObject",
       "oss:AbortMultipartUpload",
       "oss:ListParts"
     ],
     "Resource": "*",
     "Effect": "Allow"
    },
    {
     "Action": [
     "dlf:CreateFunction",
    "dlf:BatchGetPartitions",
    "dlf:ListDatabases",
    "dlf:CreateLock",
    "dlf:UpdateFunction",
    "dlf:BatchUpdateTables",
    "dlf:DeleteTableVersion",
    "dlf:UpdatePartitionColumnStatistics",
    "dlf:ListPartitions",
    "dlf:DeletePartitionColumnStatistics",
    "dlf:BatchUpdatePartitions",
    "dlf:GetPartition",
    "dlf:BatchDeleteTableVersions",
    "dlf:ListFunctions",
    "dlf:DeleteTable",
    "dlf:GetTableVersion",
    "dlf:AbortLock",
    "dlf:GetTable",
    "dlf:BatchDeleteTables",
    "dlf:RenameTable",
    "dlf:RefreshLock",
    "dlf:DeletePartition",
    "dlf:UnLock",
    "dlf:GetLock",
    "dlf:GetDatabase",
    "dlf:GetFunction",
    "dlf:BatchCreatePartitions",
    "dlf:ListPartitionNames",
    "dlf:RenamePartition",
    "dlf:CreateTable",
    "dlf:BatchCreateTables",
    "dlf:UpdateTableColumnStatistics",
    "dlf:ListTableNames",
    "dlf:UpdateDatabase",
    "dlf:GetTableColumnStatistics",
    "dlf:ListFunctionNames",
    "dlf:ListPartitionsByFilter",
    "dlf:GetPartitionColumnStatistics",
    "dlf:CreatePartition",
    "dlf:CreateDatabase",
    "dlf:DeleteTableColumnStatistics",
    "dlf:ListTableVersions",
    "dlf:BatchDeletePartitions",
    "dlf:ListCatalogs",
    "dlf:UpdateTable",
    "dlf:ListTables",
    "dlf:DeleteDatabase",
    "dlf:BatchGetTables",
    "dlf:DeleteFunction"
     ],
     "Resource": "*",
     "Effect": "Allow"
    }
    ]
    }
  4. 将自定义的权限策略授权给新建的RAM角色。
    更多为RAM角色授权信息,请参见为RAM角色授权
  5. RAM角色管理页面,单击新建的RAM角色名称,获取ARN信息。
    ARN

步骤四:创建External Project

基于已创建的MaxCompute项目、DLF元数据库,创建External Project,用于关联DLF和OSS,并映射至已创建的MaxCompute项目。后续可通过映射的MaxCompute项目对External Project进行操作。仅MaxCompute项目的所有者(Project Owner)或具备Admin、Super_Administrator角色的用户可以创建External Project。操作步骤如下:

  1. 登录MaxCompute客户端,在映射的MaxCompute项目下,执行create externalproject命令创建External Project。
    create externalproject的语法如下。
    create externalproject -source dlf -name <external_project_name> 
        -ref <project_name> 
       [-comment <comment>]
        -region <dlf_region> 
        -db <dlf_database_name>
        -endpoint "<dlf_endpoint>" 
       [-ramRoleArn "<ram_role_arn>"]
        -ossEndpoint "<oss_endpoint>" 
       [-T <table_properties>];
    • external_project_name:必填。待创建External Project的名称。
    • project_name:必填。已创建的MaxCompute项目名称。
    • comment:可选。External Project的注释信息。
    • dlf_region:必填。DLF所在地域的RegionID。各地域RegionID信息,请参见获取RegionID及VPC ID
    • dlf_database_name:必填。DLF元数据库的名称。
    • dlf_endpoint:必填。DLF的Endpoint信息。当前支持的地域对应的Endpoint信息如下:
      • 华东1(杭州):dlf-share.cn-hangzhou.aliyuncs.com
      • 华东2(上海):dlf-share.cn-shanghai.aliyuncs.com
      • 华北2(北京):dlf-share.cn-beijing.aliyuncs.com
    • ram_role_arn:可选。RAM角色的ARN信息。采用自定义授权方式时,需要配置该参数。该参数还可以通过-D odps.properties.rolearn=<ram_role_arn>方式进行配置。
      说明 如果创建MaxCompute项目的账号和部署DLF的账号是同一个账号,且使用了一键授权,则不需要指定该参数。
    • oss_endpoint:必填。OSS所属地域的Endpoint。更多OSS Endpoint信息,请参见访问域名和数据中心
    • table_properties:可选。指定External Project中表的相关属性。可根据OSS数据文件格式配置的属性如下:
      属性名称 描述 取值范围
      file_format 指定存储时所使用的文件格式。设置后会忽略input_formatoutput_format配置项。
      • SEQUENCEFILE
      • TEXTFILE
      • RCFILE
      • ORC
      • ORCFILE
      • PARQUET
      • AVRO
      input_format 指定文件存储时所使用的InputFormat对应的类名。
      • SEQUENCEFILE:org.apache.hadoop.mapred.SequenceFileInputFormat
      • TEXTFILE:org.apache.hadoop.mapred.TextInputFormat
      • RCFILE:org.apache.hadoop.hive.ql.io.RCFileInputFormat
      • ORC:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
      • ORCFILE:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
      • PARQUET:org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
      • AVRO:org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat
      • JSON:org.apache.hadoop.mapred.TextInputFormat
      • CSV:org.apache.hadoop.mapred.TextInputFormat
      output_format 指定文件存储时所使用的OutputFormat对应的类名。
      • SEQUENCEFILE:org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
      • TEXTFILE:org.apache.hadoop.hive.serde2.OpenCSVSerdeorg.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
      • RCFILE:org.apache.hadoop.hive.ql.io.RCFileOutputFormat
      • ORC:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
      • ORCFILE:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
      • PARQUET:org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
      • AVRO:org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat
      • JSON:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
      • CSV:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
      serialization_lib 指定数据在进行序列化及反序列化时所使用的类名。
      • SEQUENCEFILE:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
      • TEXTFILE:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
      • RCFILE:org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe
      • ORC:org.apache.hadoop.hive.ql.io.orc.OrcSerde
      • ORCFILE:org.apache.hadoop.hive.ql.io.orc.OrcSerde
      • PARQUET:org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
      • AVRO:org.apache.hadoop.hive.serde2.avro.AvroSerDe
      • JSON:org.apache.hive.hcatalog.data.JsonSerDe
      • CSV:org.apache.hadoop.hive.serde2.OpenCSVSerde
      serde_properties 用于给serialization_lib指定相关属性。 无。
    命令示例如下。
    create externalproject -source dlf -name ext_mcdlf_ddl
         -ref doc_test_prod
         -comment "DLF"
         -region "cn-shanghai"
         -db shanghai
         -endpoint "dlf-share.cn-shanghai.aliyuncs.com"
         -ossEndpoint "oss-cn-shanghai-internal.aliyuncs.com";
    说明 更多关于External Project的操作信息,例如更新、删除以及语法示例,请在MaxCompute客户端中执行help external命令查看详细信息。
  2. 进入新创建的External Project空间,查看External Project下的表。
    命令示例如下。
    --进入新创建的External Project。
    odps@ doc_test_prod>use ext_mcdlf_ddl;
    Project timezone: Asia/Shanghai
    --查看空间下的表。
    odps@ ext_mcdlf_ddl>show tables;
    
    ALIYUN$xxxxx@test.aliyunid.com:sh_rt
    
    OK
  3. 进入映射的MaxCompute项目,跨项目查询External Project中的表数据。
    命令示例如下。
    --进入映射的MaxCompute项目。
    odps@ ext_dlf_ddl1>use doc_test_prod;
    Project timezone: Asia/Shanghai
    --在访问表数据前,需要设置如下属性。属性值固定配置如下。
    odps@ doc_test_prod>
    set odps.sql.hive.compatible=true;
    set odps.sql.unstructured.oss.commit.mode=true;
    set odps.sql.unstructured.file.pattern.black.list=r".*/_SUCCESS$,.*/[.]hive-staging/.*";
    set odps.ext.oss.orc.native=true;
    set odps.ext.parquet.native=true;
    --查询表数据。
    odps@ doc_test_prod> select * from ext_mcdlf_ddl.sh_rt limit 10;
    
    +------------+------------+------------+------------+------------+
    | col1       | col2       | col3       | col4       | col5       |
    +------------+------------+------------+------------+------------+
    | 2019/1/1   | 0          | 12TH       | 12TH       | 3          |
    | 2019/1/1   | 0          | 12TH       | 16TH       | 4          |
    | 2019/1/1   | 0          | 12TH       | ANTC       | 1          |
    | 2019/1/1   | 0          | 12TH       | BAYF       | 1          |
    | 2019/1/1   | 0          | 12TH       | CIVC       | 2          |
    | 2019/1/1   | 0          | 12TH       | COLM       | 1          |
    | 2019/1/1   | 0          | 12TH       | COLS       | 1          |
    | 2019/1/1   | 0          | 12TH       | CONC       | 1          |
    | 2019/1/1   | 0          | 12TH       | DALY       | 1          |
    | 2019/1/1   | 0          | 12TH       | DELN       | 2          |
    +------------+------------+------------+------------+------------+
    10 records (at most 10000 supported) fetched by instance tunnel.
  4. 在映射的MaxCompute项目下,为External Project创建表并写入数据。
    支持的建表语法如下,且仅支持如下参数。更多参数信息,请参见表操作
    create table [if not exists] <table_name>
    [(<col_name> <data_type> [comment <col_comment>], ...)]
    [comment <table_comment>]
    [partitioned by (<col_name> <data_type> [comment <col_comment>], ...)]

    插入数据操作与常规MaxCompute项目的操作相同,请参见插入或覆写数据(INSERT INTO | INSERT OVERWRITE)

    命令示例如下。

    • 创建非分区表并插入数据。
      --在创建表前,需要设置如下属性。属性值固定配置如下。
      odps@ doc_test_prod> 
          set odps.sql.hive.compatible=true; --可以通过setproject全局设置。
          set odps.sql.unstructured.oss.commit.mode=true; --可以通过setproject全局设置。
          set odps.sql.unstructured.file.pattern.black.list=r".*/_SUCCESS$,.*/[.]hive-staging/.*"; --可以通过setproject全局设置。
          set odps.ext.oss.orc.native=true;  --可以通过setproject全局设置。
          set odps.ext.parquet.native=true; --可以通过setproject全局设置。
      
      --创建表。
      odps@ doc_test_prod>create table ext_mcdlf_ddl.ddl_test (id bigint, value string);
      
      --查看创建的表结构。
      odps@ doc_test_prod>desc extended ext_mcdlf_ddl.ddl_test;
      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$xxxxx@test.aliyunid.com | Project: ext_mcdlf_ddl2                    |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2021-03-01 10:29:58                                      |
      | LastDDLTime:              2021-03-01 10:29:58                                      |
      | LastModifiedTime:         2021-03-01 10:29:58                                      |
      +------------------------------------------------------------------------------------+
      | ExternalTable: YES                                                                 |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | id       | bigint |       |               | true     | NULL         |              |
      | value    | string |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID             : ddl_test                                                     |
      | Location            : oss://mc-dlf-oss/mc-dlf/ddl_test                             |
      | serialization.format: 1                                                            |
      | StoredAs:                 Unknown                                                  |
      | CompressionStrategy:      normal                                                   |
      | odps.timemachine.retention.days: 1                                                        |
      +------------------------------------------------------------------------------------+
      
      --向新建的表中插入数据。
      odps@ doc_test_prod>insert into table ext_mcdlf_ddl.ddl_test values(1,"ddl_test_1");
      
      --查看表数据。
      odps@ doc_test_prod>select * from ext_mcdlf_ddl.ddl_test;
      +------------+------------+
      | id         | value      |
      +------------+------------+
      | 1          | ddl_test_1 |
      +------------+------------+
    • 创建分区表并插入数据。
      --在创建表前,需要设置如下属性。属性值固定配置如下。
      odps@ doc_test_prod> 
          set odps.sql.hive.compatible=true; --可以通过setproject全局设置。
          set odps.sql.unstructured.oss.commit.mode=true; --可以通过setproject全局设置。
          set odps.sql.unstructured.file.pattern.black.list=r".*/_SUCCESS$,.*/[.]hive-staging/.*"; --可以通过setproject全局设置。
          set odps.ext.oss.orc.native=true;  --可以通过setproject全局设置。
          set odps.ext.parquet.native=true; --可以通过setproject全局设置。
      
      --创建表。
      odps@ doc_test_prod>create table ext_mcdlf_ddl.range_ptstring_ptint (id int, name string) partitioned by (pt1 string, pt2 int);
      
      --查看创建的表结构。
      odps@ doc_test_prod> desc extended ext_mcdlf_ddl.range_ptstring_ptint;
      +------------------------------------------------------------------------------------+
      | Owner: ALIYUN$santie_doctest@test.aliyunid.com | Project: ext_mcdlf_ddl2                              |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2021-03-01 10:42:09                                      |
      | LastDDLTime:              2021-03-01 10:42:09                                      |
      | LastModifiedTime:         2021-03-01 10:42:09                                      |
      +------------------------------------------------------------------------------------+
      | ExternalTable: YES                                                                 |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
      +------------------------------------------------------------------------------------+
      | id       | int    |       |               | true     | NULL         |              |
      | name     | string |       |               | true     | NULL         |              |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | pt1             | string     |                                                     |
      | pt2             | int        |                                                     |
      +------------------------------------------------------------------------------------+
      | Extended Info:                                                                     |
      +------------------------------------------------------------------------------------+
      | TableID             : range_ptstring_ptint                                         |
      | Location            : oss://mc-dlf-oss/mc-dlf/range_ptstring_ptint                 |
      | serialization.format: 1                                                            |
      | StoredAs:                 Unknown                                                  |
      | CompressionStrategy:      normal                                                   |
      | odps.timemachine.retention.days: 1                                                        |
      +------------------------------------------------------------------------------------+
      
      --向新建的表中插入数据。
      odps@ doc_test_prod>insert overwrite table ext_mcdlf_ddl.range_ptstring_ptint partition (pt1 = 'ds1', pt2=2) values (4, 'val4'), (5, 'val5');
      
      --查看表数据。
      odps@ doc_test_prod>select * from ext_mcdlf_ddl.range_ptstring_ptint where pt1='ds1';
      +------------+------------+------------+------------+
      | id         | name       | pt1        | pt2        |
      +------------+------------+------------+------------+
      | 4          | val4       | ds1        | 2          |
      | 5          | val5       | ds1        | 2          |
      +------------+------------+------------+------------+

步骤五:基于DataWorks进行可视化操作

完成上述步骤后,您即可通过DataWorks,根据业务需求执行数据开发、数据管理或数据治理操作。

更多数据开发、数据管理或数据治理操作信息,请参见数据开发数据管理数据治理