开通Maxcompute流程
第一步:购买/查看Maxcompute相关信息
请先前往阿里云MaxCompute控制台,查看相关项目和账号信息;

如果您是新用户,还未使用过MaxCompute,那么可以尝试开通MaxCompute的基础版(最低要求),如果您有MaxCompute的高级版,也可以使用。
1.1开通MaxCompute流程
进入DataWorks工作空间 ,点击创建工作空间

2.创建工作空间完成后,需要选择引擎配置,选择立即绑定MaxCompute

在绑定MaxCompute流程中,可以选择创建新的MaxCompute空间和选择已有的MaxCompute空间。
建议资源显示名称和项目名称保持一致,资源调度访问身份选择阿里云主账号

点击前往创建

完成配置信息

绑定成功

将来在DOP面板中开通MaxCompute服务的时候,需要填入MaxCompute的project和region信息就可以从上面的列表信息中找到。
重要提醒:请不要直接在MaxCompute的产品首页(MaxCompute的产品首页)直接创建MC的project项目,那样当您有Dataworks时,是无法在Dataworks里面关联上MC的项目。必须从Dataworks的入口去创建才能有效关联。
第二步:在「云控制台」开通Maxcompute服务
在U-DOP「云控制台」中点击开通Maxcompute服务
2.1创建接收数据的空间
强烈建议您按照指引中的规范进行命名,若您已有创建完成的project,也可延用已创建的project;

2.2填写Maxcompute相关信息

阿里云账号ID (请注意,一定是主账号)
选择region,填写Project名
点击提交
提交成功后,至此完成通过maxCompute投递明细数据的服务开通。maxCompute服务开通后,会自动订阅四个主题包,分别是:U-App分析主题包、U-Web分析主题包、U-Push分析主题包、U-Mini小程序分析主题包。您无需手动主动去订阅对应的主题包,系统已经在您开通之后自动订阅好相应主题包。
第三步:开始数据表使用
3.1进入云控制台页面,点击"查看授权状态",如下图所示

3.2复制创建Package的相关代码,如下图所示

3.3将复制的代码在Dataworks中执行,如下图所示
首先进入DataWorks后选择临时查询,创建ODPS SQL节点

将以上代码复制到新建的ODPS SQL 节点中执行

3.4执行成功后会显示如下所示结果,至此Package创建完成

3.5查询数据,查询相关表时需要增加后缀: "_xxxxxx", xxxxxx为Package前六位编码,同时指定分区ds, 查询数据如下图所示

参考SQL
select
*
from
umengplus_cdm.dwd_ump_log_uapp_launch_di_xxxxxx
where
ds = '20220101'
limit 100;
如遇以下报错信息,则需要指定分区ds,参考以上示例

3.6数据导出
友盟空间umengplus_cdm中表数据只保存近30天。为方便客户使用,请将umengplus_cdm空间下的表导入客户自己的Project下,以下示例为每天周期性将数据导出到客户空间的配置方式
因为每天周期性调度,需要依赖友盟的数据,所以需要新建一个check_partition的任务检查上游友盟数据是否就绪

shell节点代码如下:
#!/bin/bash
## 表名,例如 umengplus_cdm.dwd_ump_log_uapp_launch_di_xxxxxx
table_name=$1
## 要检查的分区,例如20230228
partition_name=$2
## 客户MaxCompute的空间名
project=$3
## MaxCompute所在region的endpoint,具体可参考阿里云文档:https://help.aliyun.com/document_detail/34951.html#section-f2d-51y-5db
endpoint=$4
## 阿里云账号的AccessId,具体参考访问控制功能获取AK:https://ram.console.aliyun.com/overview
access_id=$5
## 阿里云账号的AccessKey
access_key=$6
echo "[INFO] table_name=${table_name},partition_name=${partition_name}."
SQL="SHOW PARTITIONS ${table_name};"
echo "${SQL}"
##等待四个小时
TRY_COUNT=0
MAX_COUNT=240
while [ 1 -eq 1 ]
do
partitions=`/opt/taobao/tbdpapp/odpswrapper/odpsconsole/bin/odpscmd --project=${project} --endpoint="${endpoint}" -M -u ${access_id} -p ${access_key} -e "${SQL}"`
echo "[INFO] partitions===>${partitions}"
result=`echo ${partitions} | grep ${partition_name} | wc -l`
echo "[INFO] count===>${result}"
if [ "${result}"x = "1"x ];then
echo "${table_name}|${partition_name} is ready."
break;
else
echo "${table_name}|${partition_name} is not ready,try times = ${TRY_COUNT}."
sleep 60s;
fi
TRY_COUNT=$(( ${TRY_COUNT} + 1 ))
if [ ${TRY_COUNT} -ge ${MAX_COUNT} ];then
echo "${table_name}|${partition_name} is not ready,check failed."
exit -1;
fi
done配置check_partition节点调度参数

配置完成check_partition节点后,新建导出任务

在新建的导出任务中新建表 {user_project}.dwd_ump_log_uapp_launch_di
CREATE TABLE IF NOT EXISTS ump_cdm.dwd_ump_log_uapp_launch_di
(
umuid STRING COMMENT 'umuid',
app_key STRING COMMENT 'APP唯一标识',
umid STRING COMMENT '友盟设备ID',
is_new_install STRING COMMENT '是否新增用户(1是0否)',
install_datetime STRING COMMENT '首次安装时间',
app_channel STRING COMMENT 'APP当前渠道',
install_channel STRING COMMENT 'APP首次安装渠道',
app_version STRING COMMENT 'APP当前版本',
install_app_version STRING COMMENT 'APP首次安装版本',
carrier STRING COMMENT '设备运营商',
os STRING COMMENT '操作系统:Android/iOS',
os_version STRING COMMENT '操作系统版本',
resolution STRING COMMENT '设备分辨率',
network_access STRING COMMENT '入网类型',
device_ip STRING COMMENT '设备IP',
country STRING COMMENT '国家',
province STRING COMMENT '省',
city STRING COMMENT '城市',
session_start STRING COMMENT '会话开始标识(1是0否)',
session_end STRING COMMENT '会话结束标识(1是0否)',
session_id STRING COMMENT '会话ID',
session_duration STRING COMMENT '会话时长(毫秒)',
activity_cnt STRING COMMENT '会话访问页面数',
is_new_upgrd STRING COMMENT '是否版本升级',
pre_channel STRING COMMENT '上一次渠道',
pre_app_version STRING COMMENT '上一次版本',
is_new_device STRING COMMENT '是否新发布机型',
imei STRING COMMENT '国际移动设备识别码',
idfa STRING COMMENT 'IOS广告标示符',
mac STRING COMMENT 'MAC地址',
android_id STRING COMMENT 'Android ID',
idfv STRING COMMENT 'Vendor标识符',
open_udid STRING COMMENT 'Open UDID',
reg_app_name STRING COMMENT 'APP名称(注册填写)',
device_model STRING COMMENT '设备型号',
std_device_model STRING COMMENT '标准设备型号',
device_brand STRING COMMENT '设备品牌',
std_device_brand STRING COMMENT '标准设备品牌',
provider STRING COMMENT 'APP用户账号第三方的标识符',
puid STRING COMMENT '用户账号ID',
is_new_reg STRING COMMENT 'APP账户是否新注册(1是0否)',
reg_channel STRING COMMENT '账户注册渠道',
sdk_version STRING COMMENT 'SDK版本',
umid_from STRING COMMENT '小程序标识(0和null是uapp、1支付宝小程序、2阿里云微信小程序、3阿里云支付宝小程序)',
cli_timestamp STRING COMMENT '客户端时间戳',
svr_timestamp STRING COMMENT '服务器时间戳',
log_date_time STRING COMMENT '日志时间(yyyy-mm-dd hh:mi:ss)',
oaid STRING COMMENT 'Open Anonymous Device Identifier,匿名设备标识符.由中国信息通讯研究院号召,移动安全联盟推行的安卓设备标识,在无法获取设备号情况下可以使用该标识进行数据匹配(2020-03-18增加该字段)'
)
COMMENT 'UAPP事件启动表'
PARTITIONED BY (ds STRING COMMENT '分区')
LIFECYCLE 365;在新建的导出任务将umengplus_cdm空间的表导入以上新建的表中
-- 其中bizdate参数表示每天周期性执行导出任务是需要配置的日期
INSERT OVERWRITE TABLE ump_cdm.dwd_ump_log_uapp_launch_di PARTITION(ds = '${bizdate}')
select
umuid
,app_key
,umid
,is_new_install
,install_datetime
,app_channel
,install_channel
,app_version
,install_app_version
,carrier
,os
,os_version
,resolution
,network_access
,device_ip
,country
,province
,city
,session_start
,session_end
,session_id
,session_duration
,activity_cnt
,is_new_upgrd
,pre_channel
,pre_app_version
,is_new_device
,imei
,idfa
,mac
,android_id
,idfv
,open_udid
,reg_app_name
,device_model
,std_device_model
,device_brand
,std_device_brand
,provider
,puid
,is_new_reg
,reg_channel
,sdk_version
,umid_from
,cli_timestamp
,svr_timestamp
,log_date_time
,oaid
from
umengplus_cdm.dwd_ump_log_uapp_launch_di_ee976c
where
ds = '${bizdate}'
;配置调度参数

保存提交任务

附:阿里云相关文档
Dataworks 入门视频 https://help.aliyun.com/document_detail/107548.html
MaxCompute 文档 https://help.aliyun.com/product/27797.html