本文为您介绍如何新建HttpFile和MySQL数据源来访问本教程所提供的用户信息与网站日志数据,配置数据同步链路至私有OSS数据源,并通过EMR Hive节点建表查询同步后的数据,完成数据同步的操作过程。
前提条件
步骤一:新建数据源
根据本次实验模拟的场景,您需要新建以下三个数据源,并将其注册到DataWorks工作空间,才能进行后续操作。
HttpFile数据源:用于访问本教程提供的用户访问网站记录数据。
MySQL数据源:用于访问本教程提供的用户信息数据。
OSS数据源:用于接收来自HttpFile数据源和MySQL数据源所获取的测试数据。
新建HttpFile数据源
进入数据源页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入管理中心。
进入工作空间管理中心页面后,单击左侧导航栏的数据源,进入数据源页面。
单击新增数据源,在新增数据源对话框中,搜索选择数据源类型为HttpFile。
在创建HttpFile数据源页面,配置各项参数。在本教程中开发环境和生产环境都按示例值填写。
参数
描述
数据源名称
输入数据源名称,本教程请填写user_behavior_analysis_httpfile。
数据源描述
输入DataWorks案例体验专用数据源,在离线同步配置时读取该数据源即可访问平台提供的测试数据,该数据源只支持数据集成场景读取,其他模块不支持使用。
URL域名
开发环境和生产环境的URL域名均为
https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com
。单击指定的资源组连通状态(开发环境)和连通状态(生产环境)列的测试连通性,等待界面提示测试完成,连通状态为可连通。
重要需确保至少一个资源组为可连通状态,否则此数据源无法使用向导模式创建同步任务。
单击完成创建。
新建MySQL数据源
在管理中心页面,单击进入数据源页面后单击新增数据源。
在新增数据源对话框中,搜索选择数据源类型为MySQL。
在创建MySQL数据源页面,配置各项参数。在本教程中开发环境和生产环境都按示例值填写。
参数
描述
数据源名称
输入数据源名称,本教程请填写user_behavior_analysis_mysql。
数据源描述
输入DataWorks案例体验专用数据源,在离线同步配置时读取该数据源即可访问平台提供的测试数据,该数据源只支持数据集成场景读取,其他模块不支持使用。
配置模式
选择连接串模式。
连接地址
主机地址IP:
rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com
端口号:
3306
数据库名称
输入数据库名,本教程请填写
workshop
·用户名
输入用户名,本教程请填写workshop。
密码
输入密码,本教程请填写workshop#2017。
认证选项
无认证。
单击指定的资源组连通状态(开发环境)和连通状态(生产环境)列的测试连通性,等待界面提示测试完成,连通状态为可连通。
单击完成创建。
新建OSS数据源
本次实验将MySQL数据源的用户信息和HttpFile数据源的日志信息同步至OSS数据源。
在管理中心页面,单击进入数据源页面后单击新增数据源。
在新增数据源对话框中,搜索选择数据源类型为OSS。
在创建OSS数据源页面,配置各项参数。在本教程中开发环境和生产环境都按示例值填写。
参数
描述
数据源名称
输入数据源的名称,本示例为test_g。
数据源描述
对数据源进行简单描述。
访问模式
选择Access Key模式。
AccessKey ID
当前登录账号的AccessKey ID,您可以进入AccessKey页面复制AccessKey ID。
AccessKey Secret
输入当前登录账号的AccessKey Secret。
重要AccessKey Secret只在创建时显示,不支持后续再次查看,请妥善保管。如果AccessKey泄露或丢失,请删除并创建新的AccessKey。
Endpoint
输入
http://oss-cn-shanghai-internal.aliyuncs.com
。Bucket
您准备环境时创建EMR集群配置的OSS Bucket的名称,示例为dw-emr-demo。
单击指定资源组连通状态(开发环境)和连通状态(生产环境)列的测试连通性,等待界面提示测试完成,连通状态为可连通。
说明需确保至少一个资源组为可连通状态,否则此数据源无法使用向导模式创建同步任务。
单击完成创建。
步骤二:搭建同步链路
单击左上方的
图标,选择 。
在数据开发面板,右键单击业务流程,选择新建业务流程。
在新建业务流程对话框中,输入业务名称为workshop_emr,然后单击新建。
进入业务流程开发面板,新建虚拟节点和离线同步节点。
单击新建节点,选择虚拟节点拖拽至右侧的编辑页面。在新建节点对话框中,输入节点名称为workshop_start_emr,单击确认。
单击新建节点,选择离线同步节点拖拽至右侧的编辑页面。节点名称分别为ods_raw_log_d_2oss_emr和ods_user_info_d_2oss_emr,用于后续同步MySQL用户信息与HttpFile日志信息,最后单击确认。
在业务流程开发面板,通过拖拽连线,将workshop_start_emr节点设置为两个离线同步节点的上游节点。
步骤三:配置同步任务
配置业务流程初始节点
在数据开发页面,双击相应业务流程下的虚拟节点。打开该节点的编辑页面,单击右侧的调度配置。
配置调度配置。
调度配置
图片展示
说明
调度时间配置
虚拟节点配置调度时间为00:30,该虚拟节点会在每日00:30启动当前业务流程并执行。
设置重跑属性为运行成功或失败皆可重跑。
调度依赖配置
由于虚拟节点
workshop_start_emr
无上游依赖,此时可以直接依赖工作空间根节点,由工作空间根节点触发workshop_start_emr
节点执行。工作空间根节点命名为:
工作空间名_root
。配置完成后,单击左上方的
图标。
配置离线同步节点
同步MySQL数据源的用户信息至自建的OSS。
在数据开发页面,双击ods_user_info_d_2oss_emr节点,进入节点配置页面。
配置同步网络链接。
完成以下网络与资源配置后,单击下一步,并根据界面提示完成连通性测试。
参数
描述
数据来源
数据来源:MySQL。
数据源名称:user_behavior_analysis_mysql。
我的资源组
选择已购买的Serverless资源组。
数据去向
数据去向:OSS。
数据源名称:选择前文创建的私有OSS数据源,此处示例为test_g。
配置同步任务。
参数
描述
数据来源
表:选择数据源中的ods_user_info_d。
切分键:建议使用主键或有索引的列作为切分键,仅支持类型为整型的字段。此处设置切分键为uid。
数据去向
文本类型:选择text类型。
文件名(含路径):根据您自建OSS的目录进行输入,示例为ods_user_info_d/user_${bizdate}/user_${bizdate}.txt。其中ods_user_info_d为您自建的目录名,$bizdate表示获取前一天的日期。
列分隔符:输入列分隔符为|。
配置调度配置。
配置页面单击右侧调度配置,可进入调度配置面板配置调度与节点信息。以下为配置的内容。
配置项
配置内容
图示
调度参数
在调度参数区域添加:
参数名:bizdate
参数值:$[yyyymmdd-1]
时间属性
设置重跑属性为运行成功或失败皆可重跑。
调度依赖
在调度依赖确认产出表已作为本节点输出。
格式为
WorkSpaceName.节点名
配置完成后,单击工具栏中的
图标。
同步HttpFile数据源的日志信息至自建的OSS。
在数据开发页面,双击ods_raw_log_d_2oss_emr节点,进入节点配置页面。
配置同步网络链接。
完成以下网络与资源配置后,单击下一步,并根据界面提示完成连通性测试。
参数
描述
数据来源
数据来源:HttpFile。
数据源名称:user_behavior_analysis_httpfile。
我的资源组
选择已购买的Serverless资源组。
数据去向
数据去向:OSS。
数据源名称:选择前文创建的私有OSS数据源,此处示例为test_g。
配置同步任务。
参数
描述
数据来源
文件路径:/user_log.txt。
文本类型:选择text类型。
列分隔符:输入列分隔符为|。
压缩格式:包括None、Gzip、Bzip2和Zip四种类型,此处选择None。
是否跳过表头:选择No。
数据去向
文本类型:选择text类型。
文件名(含路径):根据您自建OSS的目录进行输入,示例为ods_raw_log_d/log_${bizdate}/log_${bizdate}.txt,其中ods_raw_log_d为您自建的目录名,$bizdate表示获取前一天的日期。
列分隔符:输入列分隔符为|。
配置调度配置。
配置页面单击右侧调度配置,可进入调度配置面板配置调度与节点信息。以下为配置的内容。
配置项
配置内容
图示
调度参数
在调度参数区域添加:
参数名:bizdate
参数值:$[yyyymmdd-1]
时间属性
设置重跑属性为运行成功或失败皆可重跑。
调度依赖
在调度依赖确认产出表已作为本节点输出。
格式为
WorkSpaceName.节点名
配置完成后,单击工具栏中的
图标,进行保存。
新建EMR表获取同步数据
新建两张表ods_user_info_d_emr和ods_raw_log_d_emr,分别用于查询同步后的原始的MySQL用户数据和OSS日志数据。
在数据开发页面打开新建的业务流程,右键单击EMR,选择 。
在新建节点对话框中,输入节点名称,单击确认。
此处需要新建两个EMR Hive节点(ods_user_info_d_emr和ods_raw_log_d_emr),用于创建对应的两张表,并根据下图,在业务流程开发面板通过拉线配置节点的上下游依赖关系。
分别在EMR Hive节点中输入建表语句,并在调度配置中调度资源组选择为已购买的Serverless资源组,然后单击保存并运行各建表语句。
新建ods_user_info_d_emr表。
双击ods_user_info_d_emr节点,进入编辑页面,编辑新建ods_user_info_d_emr表任务。
编辑SQL代码。
CREATE EXTERNAL TABLE IF NOT EXISTS ods_user_info_d_emr ( `uid` STRING COMMENT '用户ID', `gender` STRING COMMENT '性别', `age_range` STRING COMMENT '年龄段', `zodiac` STRING COMMENT '星座' ) PARTITIONED BY ( dt STRING ) ROW FORMAT delimited fields terminated by '|' LOCATION 'oss://dw-emr-demo/ods_user_info_d/'; ALTER TABLE ods_user_info_d_emr ADD IF NOT EXISTS PARTITION (dt='${bizdate}') LOCATION 'oss://dw-emr-demo/ods_user_info_d/user_${bizdate}/';
说明上述代码中的location为示例路径,与之前配置离线同步任务时的数据去向相同,需要输入您建立的文件路径名称,其中dw-emr-demo是您准备环境时创建的OSS Bucket域名。
配置调度配置。
配置项
配置内容
图示
调度参数
在调度参数区域添加:
参数名:bizdate
参数值:$[yyyymmdd-1]
时间属性
设置重跑属性为运行成功或失败皆可重跑。
调度依赖
在调度依赖确认产出表已作为本节点输出。
格式为
WorkSpaceName.节点名
完成配置后,单击
保存节点。
新建ods_raw_log_d_emr表。
双击ods_raw_log_d_emr节点,编辑新建ods_raw_log_d_emr表任务。
编辑SQL代码
--创建OSS日志对应目标表 CREATE EXTERNAL TABLE IF NOT EXISTS ods_raw_log_d_emr ( `col` STRING ) PARTITIONED BY ( dt STRING ); ALTER TABLE ods_raw_log_d_emr ADD IF NOT EXISTS PARTITION (dt='${bizdate}') LOCATION 'oss://dw-emr-demo/ods_raw_log_d/log_${bizdate}/';
说明上述代码中的location为示例路径,与之前配置离线同步任务时的数据去向相同,需要输入您建立的文件路径名称,其中dw-emr-demo是您准备环境时创建的OSS Bucket的名称。
配置调度配置。
配置项
配置内容
图示
调度参数
在调度参数区域添加:
参数名:bizdate
参数值:$[yyyymmdd-1]
时间属性
设置重跑属性为运行成功或失败皆可重跑。
调度依赖
在调度依赖确认产出表已作为本节点输出。
格式为
WorkSpaceName.节点名
完成配置后,单击
保存节点。
步骤四:运行并查看结果
运行业务流程
在数据开发页面,双击业务流程下的workshop_emr,打开业务流程面板后,单击工具栏中的
图标,按照上下游依赖关系运行业务流程。
确认执行情况。
查看任务运行状态:
查看任务执行日志:右键单击ods_user_info_d_emr、ods_raw_log_d_emr节点,选择查看日志。当日志中出现如下字样,表示同步节点运行成功,并成功同步数据。
查询同步结果
新建临时查询文件
在数据开发页面的左侧导航栏,单击
,进入临时查询面板。右键单击临时查询,选择新建节点>EMR Hive。
查询同步结果表。
执行如下SQL语句,确认同步数据写入结果。查看导入ods_raw_log_d_emr和ods_user_info_d_emr的记录数。
--查询语句中的分区列需要更新为业务日期。例如,任务运行的日期为20191107,则业务日期为20191106,即任务运行日期的前一天。 SELECT * from ods_user_info_d_emr where dt=业务日期; SELECT * from ods_raw_log_d_emr where dt=业务日期;
后续步骤
现在,您已经学习了如何进行日志数据同步,完成数据的同步,您可以继续下一个教程。在该教程中,您将学习如何对同步的数据进行计算与分析。详情请参见加工数据。