背景介绍

在随着用户量的增加,数据处理变的较为复杂,百万级别数据量下,关联查询的效率不高,公司开始采用阿里的ODPS平台来整合数据,下面记录下使用的过程,方便备查。 ODPS (Open Data Processing Service),是阿里巴巴通用计算平台提供的一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案,现在已更名为MaxCompute,MaxCompute 向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。

第一步、登录平台

在这里插入图片描述 产品 - 选择DataWorks 在这里插入图片描述 选择预先分配好的部门 在这里插入图片描述

第二步、进入主页面

左侧是操作结构树,包括数据集成、数据开发等,右侧是编辑区域,显示快速访问的快捷键。主题色是黑色,科技感十足。 在这里插入图片描述 左侧树,,右键–> 新建,从生产环境导入数据,作为工作区间的数据源。

第三步、数据处理

在 MacComputer 下的数据开发下,进行数据处理逻辑的编辑。 在这里插入图片描述 1、新建表 在ODPS工作空间,建立自己的中间表,方便数据的处理。

// 创建表脚本
drop table user_odps;
TRUNCATE TABLE user_odps;
CREATE TABLE IF NOT EXISTS user_odps
(
   user_id			STRING COMMENT '用户编号',
   user_name 		STRING COMMENT '姓名',
   sex 				STRING COMMENT '性别',
   phone 			STRING COMMENT '手机号',
   age 				BIGINT COMMENT '年龄',
   birthday 		DateTime COMMENT '出生日期',
   address 			STRING COMMENT '地址'
) 
COMMENT '用户信息表';

ODPS上的字段支持 String、Bigint、DateTime等,需要将mysql中 varchar 字段串等进行转换。

注:1、表名最好是以 _odps 结尾,如 user_odps 2、创建成功不会在左侧的树上显示,但可以通过select语句进行查询

2、往表中添加数据 编写SQL语句,抽取数据导入了新建的中间表,可以使用 insert overwrite 语法

// 数据导入
INSERT OVERWRITE TABLE user_odps 
select 
   user_id,
   user_name,
   sex,
   phone,
   age,
   birthday,
   address
from 
   user
where 
   is_deleted = '0';

可以对表进行分区处理,添加以下语句

// 根据时间对表进行分区
PARTITION (load_date={$bdp.system.DATE })
第五步、数据传输

在数据集成页签下进行数据回传,将整合完成的数据同步到指定的区域。 在这里插入图片描述 设置数据同步的规则,左侧选择源目标,数据库,可以选择新建的odps表,右侧是目标数据源,选择数据表,支持mysql,ADS等类型的数据源。下方是两张表对应的关系,可以改变,为方便维护,建议要字段类型,名称等保持一致。 在这里插入图片描述

参考文档

【1】https://help.aliyun.com/document_detail/84669.html?spm=a2c4g.11186623.6.601.26de4154p0enK7 【2】ODPS权威指南 李姝芳 【3】https://developer.aliyun.com/group/maxcompute/#/?_k=twks3n