【云知易】Cloud Stream实时流计算服务 入门 01 快速入门
本文为大家介绍如何快速使用Cloud Stream实时流计算服务。基本流程如下:
1. 准备数据源和数据输出通道
2. 准备对象存储服务
3. 申请实时流计算服务
4. 创建并提交作业
5. 从数据源接入实时数据
6. 查看作业信息及运行结果
7. 删除作业
为了方便大家了解使用过程,我们将通过一个简单的样例,介绍如何快速使用Cloud Stream服务。
样例场景为实时录入学生科目成绩并输出成绩大于90分的学生信息。
针对该场景,我们需要创建一个作业,并且该作业有一个输入流和一个输出流。输入流用于实时录入学生科目成绩,输出流用于输出成绩大于90分的学生信息。
首先,我们要为样例作业开通如下所示的两个DIS(数据接入服务)通道,分别用作作业的数据源和数据输出通道,且DIS通道必须与Cloud Stream服务的作业处于同一个区域。具体操作请参见DIS服务的“用户指南 > 操作指南 > 使用DIS > 开通DIS通道”。
− 用于作业输入流的DIS通道:
通道名称:csinput
分区数量:3
数据转储:无
− 用于作业输出流的DIS通道:
通道名称:csoutput
分区数量:3
数据转储:无
准备对象存储服务
如果新建作业时,需要为作业存储运行日志、保存checkpoint信息或存放调试数据,则需要先在对象存储服务(OBS)中申请一个OBS桶,且OBS桶必须与Cloud Stream服务的作业处于同一个区域。
如果您已经申请了OBS桶,可以跳过这一步。
在本样例中,需要申请一个OBS桶。示例如下:
区域:中国华北区1
桶名称:smoke-test
存储类别:标准存储
用户可以在Cloud Stream服务的管理控制台页面,申请实时流计算服务。
步骤 1 在浏览器中访问公有云网站www.huaweicloud.cn。
步骤 2 单击页面右上角的“控制台”,然后输入帐号、密码登录。
如您尚未注册公有云,可单击“免费注册”,根据界面提示注册一个公有云帐号。
步骤 3 在管理控制台首页,选择“所有服务 > 数据分析 > 实时流计算服务”,进入Cloud Stream管理控制台。
步骤 4 在Cloud Stream管理控制台页面单击左上角的,选择区域,如“中国华北区1”。
步骤 5 单击“申请实时流计算服务”,进入“申请实时流计算服务”页面。
步骤 6 勾选“我已阅读并同意《华为云数据接入服务协议》” 和“《华为云用户协议》”,然后单击“申请”。
步骤 7 申请实时流计算服务成功后,系统将自动跳转到“概览”页面,如下图所示。
使用实时流计算服务,首先要创建一个作业,假设创建一个名称为“JobSample”的作业。
步骤 1 在Cloud Stream管理控制台的左侧导航栏中,单击“作业管理”,进入“作业管理”页面。
步骤 2 单击“新建”,弹出“新建作业”页面,配置作业信息,如下图所示:
步骤 3 单击“确认”,进入“编辑”页面,在SQL语句编辑区域中会显示“默认”模板的SQL语句。
步骤 4 在SQL语句编辑区域中,可以根据作业的实际需要,编写SQL语句。在本样例中,我们使用“默认”模板的SQL语句即可,具体SQL语句如下所示:
/** * 该示例从DIS读取数据并将查询结果写入DIS * >>>>>>>>>>>>>>>>>>>>请务必确保您的账户下已在数据接入服务(DIS)里创建了您配置的通道<<<<<<<<<<<<<<<<<<<< * **/ /*************************正式业务逻辑开始****************************************/ /** 创建输入流,从DIS的csinput通道获取数据。 * * 根据实际情况修改以下选项: * channel:数据所在通道名 * partitionCnt:该通道分区数 * encode: 数据编码方式,可以是csv或json * fieldDelimiter:当编码格式为csv时,属性之间的分隔符 **/ create source stream student_scores ( student_number STRING, /* 学号 */ student_name STRING, /* 姓名 */ subject STRING, /* 学科 */ score INT /* 成绩 */ ) WITH ( type = "dis", region = "southchina", channel = "csinput", partitionCnt = "1", encode = "csv", fieldDelimiter = "," ); /** 创建输出流,结果输出到DIS的csoutput通道。 * * 根据实际情况修改以下选项: * channel:数据所在通道名 * partitionKey:当通道有多个分区时用来分发的主键 * encode: 结果编码方式,可以为csv或者json * fieldDelimiter: 当编码格式为csv时,属性之间的分隔符 **/ create sink stream score_greate_90 ( student_number STRING, /* 学号 */ student_name STRING, /* 姓名 */ subject STRING, /* 学科 */ score INT /* 成绩 */ ) WITH ( type="dis", region="southchina", channel = "csoutput", partitionKey = "student_name", encode = "csv", fieldDelimiter = "," ); /** 将数学成绩大于90分的同学信息输出 **/ insert into score_greate_90 select * from student_scores where score > 90;
SQL语句主要包含3个部分:
l 创建输入流:流定义中的字段信息需要与往入流DIS通道录入的数据格式一致。流定义的with中的参数需要与入流DIS通道的信息一致。
l 创建输出流:流定义中with中的参数需要与用作出流的DIS通道的信息一致。
l 业务逻辑:根据需求场景编写SQL语句,并将结果数据插入到出流。
步骤 5 SQL语句编写完成后,单击“语义校验”,验证SQL正确性。
只有语义校验成功后,才可以执行“调试”、“提交”或“启动”作业的操作。
如果校验成功,提示“SQL语义校验成功”。
如果校验失败,会在错误的SQL语句前面显示红色的“X”记号,鼠标移动到“X”号上可查看详细错误,请根据错误提示修改SQL语句。
步骤 6 在“编辑”页面的右侧 “运行参数设置”页签,设置运行参数。如下图所示:
步骤 7 单击“调试”,“编辑”页面右侧自动跳转到“调试参数设置”页签,配置调试参数,然后单击“开始调试”。
在本样例中,“数据输入方式”设置为“手动录入”, 您也可以设置为“OBS”方式,前提是需要先将测试数据存放到配置项“数据转储地址”指定的OBS桶中。
调试成功会弹出“调试结果”页面。
如果调试结果符合预期,说明作业可以正常运行。
如果调试结果不符合预期,说明作业业务逻辑可能存在问题,请修改SQL语句后再重新调试。
步骤 8 单击“保存”,保存作业和相关参数。
步骤 9 单击“提交”,此时显示“作业费用清单”页面,公测期间是免费的,单击“确认”,将作业提交并启动。
提交作业后,系统将自动跳转到“作业管理”页面,新创建的作业将展现在作业列表中,在“状态”一列中可以查看作业状态。
作业状态为“提交中”,表示作业正在提交,请耐心等待。提交成功后,作业状态变为“运行中”。
如果作业状态为“提交失败”或“运行异常“,表示作业提交或运行失败。请在作业列表中,单击作业名称“JobSample”,然后单击“调试日志”,查看作业运行日志。请根据日志解决故障后,再重新提交作业。
从数据源接入实时数据
前面已经申请了DIS通道作为数据源,提交作业成功后,用户就可以将数据通过DIS通道不断上传至DIS服务,实现向Cloud Stream服务的作业提供实时流数据源。在本样例中,我们将构造本地数据并上传至DIS通道“csinput”, 具体操作请参见DIS服务的“用户指南 > 操作指南 > 使用DIS > 发送数据到DIS服务”。
样例数据示例如下,录入学生科目成绩,每条记录包含4个字段,即学号、姓名、科目、成绩:
1,zhangxx,math,95
2,lixx,math,90
3,wangxx,math,85
4,chenxx,math,92
步骤 1 作业提交后,在“作业管理”页面的作业列表中,单击作业名称“JobSample”,可以查看作业的详细信息。
具体可以查看作业详情、仪表盘、执行计划、任务列表、审计日志和调试日志。
步骤 2 如果用户需要查看作业的输出结果,需要到DIS上查看用于作业输出流的DIS通道上的数据,详细操作请参见DIS的“用户指南 > 操作指南 > 从DIS 服务获取数据”。
删除作业
样例作业运行成功后,如果不再需要本样例作业,可以将它删除,以免浪费资源或占用配额。删除作业步骤如下:
步骤 1 在Cloud Stream管理控制台的“作业管理”页面,在作业列表中,找到名称为“JobSample”的作业所在行,在“操作”一列中单击“更多”,再单击“删除”。
步骤 2 在弹出的确认对话框中,单击“确认”完成操作。
更多内容,请参见Cloud Stream实时流计算服务的帮助中心(http://support.huaweicloud.cn/cs/index.html)。
- 点赞
- 收藏
- 关注作者
评论(0)