上传全量数据

更新时间:
复制为 MD 格式

MaxCompute提供了多种数据同步的方式,可以通过DataWorks的数据集成功能,也可以通过tunnel命令的方式。更新详情见:通用数据上传场景与工具

本文以示例的全量数据为例,说明如何将数据通过tunnel本地上传至MaxCompute项目中。

操作步骤

下载示例数据

1、根据自己将要创建的实例的行业属性,找到对应的示例的全量数据下载链接。

2、将3张表下载至本地。

以新闻行业为例,oss下载链接:行为数据item数据user数据

安装MaxCompute客户端

1、后面建表,上传数据都需要使用客户端。

2、MaxCompute客户端官网文档介绍:使用本地客户端(odpscmd)连接

3、智能推荐帮助文档,MaxCompute授权子账户的Step2中,也有详细介绍:地址

# 解压后查看目录结构
chengrufeideMacBook-Pro:odpscmd_public chengrufei$ ls
bin    conf    lib    plugins
# 修改 conf/odps_config.ini,填写 project_name、access_id、access_key 等字段后,运行客户端
chengrufeideMacBook-Pro:bin chengrufei$ ./odpscmd
Aliyun ODPS Command Line Tool
Version 0.29.2
@Copyright 2017 Alibaba Cloud Computing Co., Ltd. All rights reserved.
odps@ openrec_gray>
# 验证安装是否成功,执行 show tables 确认结果是否与预期相符(注意命令要加上分号)
odps@ openrec_gray>show tables;
ALIYUN$openias_new:dataimport_table_rufei_test
ALIYUN$openias_new:item_info_table_rufei

MaxCompute中创建3张表

有两种方式在MaxCompute中建表,1:DataWorks控制台,2:MaxCompute的客户端。

1、通过MaxCompute客户端建表

直接在命令行中输入建表语句,注意要分号结尾。以下以创建行为表为例

CREATE TABLE IF NOT EXISTS behavior_airec_test (
  trace_id STRING COMMENT '请求追踪/埋点ID',
  trace_info STRING COMMENT 'xxx台',
  device_model STRING COMMENT '设备型号',
  imei STRING COMMENT '设备ID',
  app_version STRING COMMENT 'xxx的版本号',
  net_type STRING COMMENT '网络类型xxx',
  tude STRING COMMENT '位置纬度',
  ip STRING COMMENT 'xxx',
  login STRING COMMENT '是否登录用户',
  report_src STRING COMMENT '上报来源类型',
  scene_id STRING COMMENT 'xxx',
  item_type STRING COMMENT '内容的类型',
  module_id STRING COMMENT '模块ID',
  page_id STRING COMMENT '页面ID',
  bhv_type STRING COMMENT '行为类型',
  bhv_value STRING COMMENT '行为详情',
  bhv_time STRING COMMENT 'xxx'
) PARTITIONED BY (ds STRING) LIFECYCLE 30;

注意语句中不能有换行,以分号结尾

各行业的建表语句详见其数据规范的最下方:

电商行业

新闻行业

内容行业

2、通过DataWorks的控制台建表

详细见DataWorks官方文档说明:DataWorks

上传数据

1、打开MaxCompute客户端

2、tunnel命令详解:Tunnel命令

tunnel upload -acp=true -h=true /Users/xxx/workspace/data/news/behavior_news.csv behavior_airec_test/ds=20190125

由于本文创建的表为分区keyds的分区表,因此upload的时候,behavior_airec_test/ds=20190125后面需要带上分区信息【注:ds为分区字段名】

odps@ airec_test>tunnel upload -acp=true -h=true /Users/chengrufei/workspace/data/news/behavior_news.csv behavior_airec_test/ds=20190125
Create partition ds='20190125'
Upload session: 201901251624028dbdb0b0575d87c
Start upload:/Users/chengrufei/workspace/data/news/behavior_news.csv
Using \n to split records
Upload in strict schema mode: true
Total bytes:73702     Split input to 1 blocks
2019-01-25 16:24:20    scan block: '1'
2019-01-25 16:24:20    scan block complete, blockid=1
2019-01-25 16:24:20    upload block: '1'
2019-01-25 16:24:21    upload block complete, blockid=1
upload complete, average speed is 24 KB/s
OK

其中 -h参数为跳过本地表头(示例数据中包含表头),-acp参数为自动创建分区

3、确认数据是否成功,select一下表中的数据。

select * from behavior_airec_test where ds = 20190125;