大数据workshop:《云数据·大计算:海量日志数据分析与应用》之《数据采集:日志数据上传》篇
实验背景介绍
2017云栖大会·成都峰会 TechInsight & Workshop.
本手册为云栖大会Workshop《云计算·大数据:海量日志数据分析与应用》的《数据采集:日志数据上传》篇而准备。主要为保障各位学员在workshop当天能够顺畅进行动手实操,那么本节为学员掌握阿里云数据采集的操作和使用。
实验涉及大数据产品
实验环境准备
必备条件:首先需要确保自己有阿里云云账号并已实名认证。详细点击:
开通大数据计算服务MaxCompute
若已经开通和购买了MaxCompute,请忽略次步骤直接进入创建Data IDE项目空间。
- step1:进入并点击右上角登录阿里云账号。
![登录 登录](https://img.alicdn.com/tfs/TB1K80JQXXXXXaIXXXXXXXXXXXX-1248-494.png)
- step2:进入大数据计算服务产品详情页,点击立即开通。
![立即开通 立即开通](https://img.alicdn.com/tfs/TB1awBNQXXXXXXcXpXXXXXXXXXX-1257-428.png)
- step3:选择按量付费并点击立即购买。
![购买 购买](https://img.alicdn.com/tfs/TB1J2RJQXXXXXXRXpXXXXXXXXXX-1114-469.png)
创建Data IDE项目空间
确保阿里云账号处于登录状态。
- step1:大数据(数加)管理控制台>大数据开发套件tab页面下。
- step2:点击创建项目,跳出创建项目对话框。
![创建项目 创建项目](https://img.alicdn.com/tfs/TB1De5rQXXXXXXTaFXXXXXXXXXX-1414-546.png)
- step3:勾选付费方式为I/O后付费,填写项目名称及相关信息,点击确定,直至返回创建成功状态。
![配置项目 配置项目](https://img.alicdn.com/tfs/TB1u_xcQXXXXXXQaXXXXXXXXXXX-630-392.png)
项目名需要字母或下划线开头,只能包含字母下划线和数字。
【注意】项目名称全局唯一,建议大家采用自己容易区分的名称来作为本次workshop的项目空间名称。
进入大数据开发套件
确保阿里云账号处于登录状态。
![项目列表 项目列表](https://img.alicdn.com/tfs/TB1Vtq9QXXXXXaYXpXXXXXXXXXX-1172-558.png)
- step2:点击已经创建的项目空间名称,进入大数据开发套件。
![点击进入项目 点击进入项目](https://img.alicdn.com/tfs/TB1AgG9QXXXXXbOXpXXXXXXXXXX-1159-421.png)
![进入大数据开发套件 进入大数据开发套件](https://img.alicdn.com/tfs/TB1nMK4QXXXXXc9XpXXXXXXXXXX-1178-473.png)
新建数据源
根据workshop模拟的场景,需要分别创建FTP数据源和RDS数据源。
1.新建FTP数据源
- step1:点击项目管理>数据源管理,继而点击新增数据源。
![新增数据源 新增数据源](https://img.alicdn.com/tfs/TB1oeDlQXXXXXXhXXXXXXXXXXXX-1190-349.png)
- step2:选择数据源类型ftp,同时Protocol选择为sftp,其他配置项如下。
![配置ftp数据源 配置ftp数据源](https://img.alicdn.com/tfs/TB1IkDdQXXXXXbCXXXXXXXXXXXX-677-587.png)
FTP数据源配置信息如下:
- 数据源名称:ftp_workshop_log
- 数据源描述:ftp日志文件同步
- 数据源类型:ftp
- 网络类型:经典网络
- Protocol:sftp
- Host:10.161.147.251
- Port:22
- 用户名/密码:workshop/workshop
- step3:点击测试连通性,连通性测试通过后,点击确定保存配置。
![保存ftp数据源 保存ftp数据源](https://img.alicdn.com/tfs/TB1mbbfQXXXXXb_XXXXXXXXXXXX-1189-401.png)
2.新建RDS数据源
- step1:点击项目管理>数据源管理,继而点击新增数据源。
![新增数据源 新增数据源](https://img.alicdn.com/tfs/TB1oeDlQXXXXXXhXXXXXXXXXXXX-1190-349.png)
- step2:选择数据源类型为RDS>mysql并完成相关配置项。
![配置RDS数据源 配置RDS数据源](https://img.alicdn.com/tfs/TB16bqVQXXXXXbrXFXXXXXXXXXX-677-531.png)
RDS数据源配置信息如下:
- 数据源名称:rds_workshop_log
- 数据源描述:rds日志数据同步
- 数据源类型:RDS > Mysql
- RDS实例名称:rds955b606xk7e564006
- RDS实例购买者ID:1805651026304759
- 数据库名:workshop
- 用户名/密码:demo_001/demo_001
- step3:点击测试连通性,连通性测试通过后,点击确定保存配置。
![保存RDS数据源 保存RDS数据源](https://img.alicdn.com/tfs/TB1HCjdQXXXXXcgXXXXXXXXXXXX-1192-489.png)
创建目标表
- step1:点击数据开发,进入数据开发首页中点击新建脚本。
![新建脚本 新建脚本](https://img.alicdn.com/tfs/TB12VWBQXXXXXcoaXXXXXXXXXXX-925-333.png)
- step2:配置文件名称为create_table_ddl,类型选择为ODPS SQL,点击提交。
![配置脚本 配置脚本](https://img.alicdn.com/tfs/TB1aPW5QXXXXXbYXpXXXXXXXXXX-774-483.png)
- step3:编写DDL创建表语句,如下分别创建FTP日志对应目标表和RDS对应目标表.
![编写DDL 编写DDL](https://img.alicdn.com/tfs/TB1l4KzQXXXXXaCapXXXXXXXXXX-720-437.png)
DDL语句如下:
--创建ftp日志对应目标表DROP TABLE IF EXISTS ods_raw_log_d;CREATE TABLE ods_raw_log_d ( col STRING)PARTITIONED BY ( dt STRING);--创建RDS对应目标表DROP TABLE IF EXISTS ods_user_info_d;CREATE TABLE ods_user_info_d ( uid STRING COMMENT '用户ID', gender STRING COMMENT '性别', age_range STRING COMMENT '年龄段', zodiac STRING COMMENT '星座')PARTITIONED BY ( dt STRING);
- step3:点击运行,直至日志信息返回成功表示两张目标表创建成功。
![运行DDL 运行DDL](https://img.alicdn.com/tfs/TB1Gp9SQXXXXXXSXVXXXXXXXXXX-904-621.png)
- step4:可以使用desc语法来确认创建表是否成功。
![DESC DESC](https://img.alicdn.com/tfs/TB1T4e5QXXXXXcAXpXXXXXXXXXX-896-383.png)
![保存DDL 保存DDL](https://img.alicdn.com/tfs/TB1plmZQXXXXXXfXFXXXXXXXXXX-722-245.png)
新建工作流任务
![新建任务 新建任务](https://img.alicdn.com/tfs/TB1mdaFQXXXXXbmXVXXXXXXXXXX-898-225.png)
- step2:选择工作流任务,调度类型选择为周期调度,其他配置项如下。
![配置任务 配置任务](https://img.alicdn.com/tfs/TB1T2mVQXXXXXbeXFXXXXXXXXXX-775-508.png)
- step3:点击创建。
- step4:进入工作流配置面板,并向面板中拖入一个虚节点(命名为workshop_start)和两个数据同步节点(分别命名为ftp_数据同步和rds_数据同步):
![新建虚拟节点 新建虚拟节点](https://img.alicdn.com/tfs/TB12nrcQXXXXXcxXXXXXXXXXXXX-774-317.png)
![新建FTP同步 新建FTP同步](https://img.alicdn.com/tfs/TB16OLiQXXXXXX4XXXXXXXXXXXX-777-308.png)
![新建RDS同步 新建RDS同步](https://img.alicdn.com/tfs/TB1e5uAQXXXXXaAaXXXXXXXXXXX-778-315.png)
- step5:拖拽连线将workshop_start虚节点设置为两个数据同步节点的上游节点,如下所示:
![同步连线 同步连线](https://img.alicdn.com/tfs/TB1iWaZQXXXXXX.XFXXXXXXXXXX-1189-471.png)
- step6:点击保存(或直接快捷键ctrl+s)。
配置数据同步任务
1)配置ftp_数据同步节点
- step1:双击ftp_数据同步节点,进入节点配置界面。选择来源:并选择数据来源事先配置好的ftp数据源,为ftp_workshop_log,文件路径为/home/workshop/user_log.txt。可以对非压缩文件进行数据预览。
![配置同步 配置同步](https://img.alicdn.com/tfs/TB1s691QXXXXXcPXVXXXXXXXXXX-860-570.png)
![同步预览 同步预览](https://img.alicdn.com/tfs/TB1_W2wQXXXXXX5XXXXXXXXXXXX-854-504.png)
数据来源配置项具体说明如下:
- 数据来源:ftp_workshop_ftp
- 文件路径:/home/workshop/user_log.txt
- 列分隔符:|
数据流向选择数据源为odps_first,表名为ods_raw_log_d。分区信息和清理规则都采取系统默认,即清理规则为写入前清理已有数据,分区按照${bdp.system.bizdate}。
- step3:配置字段映射。连接要同步的字段。如下:
![字段映射 字段映射](https://img.alicdn.com/tfs/TB1o.GRQXXXXXa9aXXXXXXXXXXX-827-508.png)
- step4:在下一步操作中配置通道控制,作业速率上限为10MB/s,进入下一步。
![通道控制 通道控制](https://img.alicdn.com/tfs/TB10Sa.QXXXXXafXVXXXXXXXXXX-848-265.png)
可在预览保存页面中,预览上述的配置情况,也可以进行修改,确认无误后,点击保存。
![返回工作流 返回工作流](https://img.alicdn.com/tfs/TB19O1DQXXXXXX5apXXXXXXXXXX-1155-359.png)
2)配置rds_数据同步节点
- step1:双击rds_数据同步节点进入配置界面。选择来源:选择数据来源为rds_workshop_log,表名为ods_user_info_d;切分键为使用默认生成列即可。点击数据预览,可以看到表中数据样例。
![RDS选择来源 RDS选择来源](https://img.alicdn.com/tfs/TB1tBSOQXXXXXcWaXXXXXXXXXXX-849-561.png)
![RDS选择目标 RDS选择目标](https://img.alicdn.com/tfs/TB1S7mUQXXXXXa5aXXXXXXXXXXX-846-323.png)
- step3:进入下一步,配置字段映射。默认会同名映射,字段映射关系采用默认即可,如下所示:
![RDS字段映射 RDS字段映射](https://img.alicdn.com/tfs/TB1rd95QXXXXXbNXVXXXXXXXXXX-849-402.png)
![RDS通道控制 RDS通道控制](https://img.alicdn.com/tfs/TB183uQQXXXXXczaXXXXXXXXXXX-845-236.png)
- step5:在预览保存页面中确认配置信息,无误后点击保存配置。
![RDS预览保存 RDS预览保存](https://img.alicdn.com/tfs/TB1afiTQXXXXXcHXVXXXXXXXXXX-848-668.png)
提交工作流任务
![提交工作流任务 提交工作流任务](https://img.alicdn.com/tfs/TB1b4K.QXXXXXagXVXXXXXXXXXX-1134-271.png)
![确定提交任务 确定提交任务](https://img.alicdn.com/tfs/TB1r1yOQXXXXXacapXXXXXXXXXX-778-421.png)
提交成功后工作流任务处于只读状态,如下:
![只读状态 只读状态](https://img.alicdn.com/tfs/TB1bcyIQXXXXXc8aXXXXXXXXXXX-889-346.png)
测试运行工作流任务
![测试运行 测试运行](https://img.alicdn.com/tfs/TB1g1fkQXXXXXcXXpXXXXXXXXXX-888-346.png)
![周期任务运行提醒 周期任务运行提醒](https://img.alicdn.com/tfs/TB1yj_mQXXXXXb3XpXXXXXXXXXX-788-175.png)
- step3:在测试运行弹出框中,实例名称和业务日期都保持默认,点击运行。
![测试运行按钮 测试运行按钮](https://img.alicdn.com/tfs/TB1F_YqQXXXXXaeXpXXXXXXXXXX-779-289.png)
- step4:在工作流任务测试运行弹出框中,点击前往运维中心。
在运维中心可以查看任务视图,如下图表示该工作流任务(名称为workshop_start)正在运行。
![运维中心测试 运维中心测试](https://img.alicdn.com/tfs/TB1OO9VQXXXXXcQXVXXXXXXXXXX-1147-777.png)
直至所有节点都运行返回成功状态即可(需要点击运维视窗中的刷新按钮查看实时状态)。如下所示:
![数据同步测试成功 数据同步测试成功](https://img.alicdn.com/tfs/TB1dyaRQXXXXXaZaXXXXXXXXXXX-482-167.png)
- step5:右键查看节点运行日志,可以看到成功同步数据条数。
![查看同步日志 查看同步日志](https://img.alicdn.com/tfs/TB1OrvqQXXXXXaaXpXXXXXXXXXX-1094-625.png)
![日志界面 日志界面](https://img.alicdn.com/tfs/TB1aQ_pQXXXXXarXpXXXXXXXXXX-1148-447.png)
确认数据是否成功导入MaxCompute
- step1:返回到create_table_ddl脚本文件中。
- step2:编写并执行sql语句查看导入ods_raw_log_d记录数。
![数据预览 数据预览](https://img.alicdn.com/tfs/TB1YvjvQXXXXXbaXXXXXXXXXXXX-869-404.png)
- step3:同样编写并执行sql语句查看导入ods_user_info_d记录数。
附录:SQL语句如下,其中分区键需要更新为业务日期,如测试运行任务的日期为20170328,那么业务日期为20170327.
---查看是否成功写入MaxComputeselect count(*) from ods_raw_log_d where dt=业务日期;select count(*) from ods_user_info_d where dt=业务日期;
《数据加工:用户画像》篇