为方便在MaxCompute上对数据进行加工处理,首先您需要在MaxCompute上建立数据表,用于承载原始数据及加工后的数据。

前提条件

请您参见环境准备章节,完成数据计算服务MaxCompute的开通和DataWorks工作空间的创建。

操作步骤

  1. 进入DataWorks工作空间
    进入DataWorks工作空间列表,选择区域为华东1,双击您创建好的工作空间(项目)。

    双击之后,即可进入工作空间的数据开发界面。

  2. 新建数据表
    本示例通过DataWorks表管理功能新建数据表。为了与表格存储联动,创建的OTS表类型为MaxCompute外部表,作为原始数据提供层。为满足外部表的授权条件,当MaxCompute和TableStore的Owner是同一个账号时,您可以单击此处一键授权,详情请参见访问OTS非结构化数据
    1. 创建业务流程
      1. 右键单击业务流程,选择新建业务流程

      2. 填写业务名称描述,单击新建。本教程中,业务流程名为Workshop。
    2. 创建外部表ots_user_trace_log
      双击您新建的业务流程,右键单击,选择新建表输入您的表名ots_user_trace_log

      填写您的表中文名称,如果您之前未进行一键授权,此时也可以继续完成授权。然后单击DDL模式,开始编辑建表语句。

      本例使用的建表语句如下,请您参考环境准备章节,根据自己的表格存储实例访问地址参数填写LOCATION地址。完成填写后单击提交到生产环境
      CREATE EXTERNAL TABLE `ots_user_trace_log` (
          `md5` string COMMENT '用户uid的md5值前8位',
          `uid` string COMMENT '用户uid',
          `ts` bigint COMMENT '用户操作时间戳',
          `ip` string COMMENT 'ip地址',
          `status` bigint COMMENT '服务器返回状态码',
          `bytes` bigint COMMENT '返回给客户端的字节数',
          `device` string COMMENT '终端型号',
          `system` string COMMENT '系统版本ios xxx/android xxx',
          `customize_event` string COMMENT '自定义事件:登录/退出/购买/注册/点击/后台/切换用户/浏览',
          `use_time` bigint COMMENT 'APP单次使用时长,当事件为退出、后台、切换用户时有该项',
          `customize_event_content` string COMMENT '用户关注内容信息,在customize_event为浏览和评论时 包含该列'
      )
      STORED BY 'com.aliyun.odps.TableStoreStorageHandler'
      WITH SERDEPROPERTIES (
          'tablestore.columns.mapping'=':md5,:uid,:ts, ip,status,bytes,device,system,customize_event,use_time,customize_event_content',
          'tablestore.table.name'='user_trace_log'
      )
      LOCATION 'tablestore://workshop-bj-001.cn-beijing.ots.aliyuncs.com/';
      说明 如果您使用LOCATION 'tablestore://workshop-bj-001.cn-beijing.ots.aliyuncs.com/'报错,显示网络不同,可尝试更换为LOCATION 'tablestore://workshop-bj-001.cn-beijing.ots-interna.aliyuncs.com/'
    3. 创建ods_user_trace_log表
      建表方法同上,建表语句如下,完成填写后单击提交到生产环境。ods_user_trace_log为ODS层表,相关数仓模型定义请参见数据引入层(ODS)
      CREATE TABLE IF NOT EXISTS ods_user_trace_log (
          md5 STRING COMMENT '用户uid的md5值前8位',
          uid STRING COMMENT '用户uid',
          ts BIGINT COMMENT '用户操作时间戳',
          ip STRING COMMENT 'ip地址',
          status BIGINT COMMENT '服务器返回状态码',
          bytes BIGINT COMMENT '返回给客户端的字节数',
          device STRING COMMENT '终端型号',
          system STRING COMMENT '系统版本ios xxx/android xxx',
          customize_event STRING COMMENT '自定义事件:登录/退出/购买/注册/点击/后台/切换用户/浏览',
          use_time BIGINT COMMENT 'APP单次使用时长,当事件为退出、后台、切换用户时有该项',
          customize_event_content STRING COMMENT '用户关注内容信息,在customize_event为浏览和评论时 包含该列'
      )
      PARTITIONED BY (
          dt STRING
      );
    4. 创建dw_user_trace_log表
      建表方法同上,建表语句如下,完成填写后单击提交到生产环境。dw_user_trace_log为DW层表,相关数仓模型定义请参见明细粒度事实层(DWD)
      CREATE TABLE IF NOT EXISTS dw_user_trace_log (
          uid STRING COMMENT '用户uid',
          region STRING COMMENT '地域,根据ip得到',
          device_brand string comment '设备品牌',
          device STRING COMMENT '终端型号',
          system_type STRING COMMENT '系统类型,Android、IOS、ipad、Windows_phone',
          customize_event STRING COMMENT '自定义事件:登录/退出/购买/注册/点击/后台/切换用户/浏览',
          use_time BIGINT COMMENT 'APP单次使用时长,当事件为退出、后台、切换用户时有该项',
          customize_event_content STRING COMMENT '用户关注内容信息,在customize_event为浏览和评论时 包含该列'
      )
      PARTITIONED BY (
          dt STRING
      );
    5. 创建rpt_user_trace_log表
      建表方法同上,建表语句如下,完成填写后单击提交到生产环境。rpt_user_trace_log为ADS层表,相关数仓模型定义请参见数仓分层
      CREATE TABLE IF NOT EXISTS rpt_user_trace_log (
          country STRING COMMENT '国家',
          province STRING COMMENT '省份',
          city STRING COMMENT '城市',
          device_brand string comment '设备品牌',
          device STRING COMMENT '终端型号',
          system_type STRING COMMENT '系统类型,Android、IOS、ipad、Windows_phone',
          customize_event STRING COMMENT '自定义事件:登录/退出/购买/注册/点击/后台/切换用户/浏览',
          use_time BIGINT COMMENT 'APP单次使用时长,当事件为退出、后台、切换用户时有该项',
          customize_event_content STRING COMMENT '用户关注内容信息,在customize_event为浏览和评论时 包含该列',
          pv bigint comment '浏览量',
          uv bigint comment '独立访客'
      )
      PARTITIONED BY (
          dt STRING
      );
  3. 验证建表结果
    完成建表后,您可以在自己的工作量下看到新建的4张表。

    使用数据开发 > 新建数据开发节点 > ODPS SQL,在新建的ODPS SQL节点中写入下列表查询SQL语句。
    DESCRIBE ots_user_trace_log;
    DESCRIBE ods_user_trace_log;
    DESCRIBE dw_user_trace_log;
    DESCRIBE rpt_user_trace_log;
    单击运行,查询建表结果。