操作手册
【试用教程】使用内置公开数据集快速体验实时计算Flink版
sc
手动配置
40
教程简介
本教程将基于阿里云实时计算Flink版内置的GitHub公开事件样例数据,通过SQL分析,帮助您快速体验实时计算Flink版产品。您将学会如何开通服务、执行SQL语句查询数据,并进行可视化数据分析。
阿里云实时计算Flink版是一套基于Apache Flink构建的⼀站式实时大数据分析平台,提供端到端亚秒级实时数据分析能力,并通过标准SQL降低业务开发门槛,助力企业向实时化、智能化大数据计算升级转型。更多信息,请参见什么是阿里云实时计算Flink版。
我能学到什么
如何开通阿里云实时计算Flink版服务。
体验阿里云实时计算Flink版的产品性能。
体验通过阿里云实时计算Flink版核心的SQL能力实现实时数据分析场景。
操作难度 | 易 |
所需时间 | 40分钟 |
使用的阿里云产品 | |
所需费用 |
准备环境及资源
20
开始教程前,请按以下步骤准备环境和资源:
访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
成功登录后,请先领取对象存储OSS资源抵扣包。
进入对象存储OSS,单击产品卡片上的立即试用,在确认并了解相关信息后,根据页面提示申请试用。
如果您的对象存储OSS资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见OSS按量付费。
在左侧导航栏产品类别下,选择大数据计算>数据计算与分析,在实时计算Flink版卡片上,单击立即试用。
如果您第一次访问该服务,可能需要进行角色授权。请在弹出的授权请求页面,单击前往RAM进行授权后,单击同意授权,完成自动化角色授权。授权成功后,需返回立即试用页面。
在Flink开通页面,单击上方提示框中的领取免费的资源抵扣包,领取Flink资源抵扣包。
在Flink资源抵扣包页面,确认相关信息后,单击确认订单,根据页面提示完成领取。
领取完毕后,在Flink开通页面,刷新此页面后完成参数配置。
参数
说明
教程配置
付费模式
阿里云实时计算Flink版免费试用仅支持按量付费。
按量付费
地域
本教程不涉及上下游存储,所以可不与上下游存储保持一致。
华南1(深圳)
可用区
本教程不涉及上下游存储,所以可不与上下游存储保持一致。
可用区E
资源抵扣包
可用于抵扣中国内地公有云地域(目前仅支持上海,杭州,北京,深圳,张家口区域)按量付费模式用量,自购买资源包日起有效期三个月。领取资源包后,单击刷新按钮,即可更新此参数。
其中,本教程示例不适用于张家口地域。
5000CUH
您需要领取对象存储OSS资源抵扣包进行抵扣(即点击所给链接,单击对应产品卡片上的立即试用,在确认并了解相关信息后,根据页面提示申请试用),否则将会产生额外费用。
如果您的对象存储OSS资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见OSS按量付费。
确认领取后,选中
专有网络
选择您已创建的专有网络。如果您没有创建,请参见创建和管理专有网络进行创建。
选中您需要使用的VPC名称。
虚拟交换机
每个Flink作业的Task Manager和Job Manager实例都会占用一个IP,您需要至少选择1个虚拟交换机。
如果当前无可用虚拟交换机,请在当前地域当前可用区下进行创建,详情请参见创建和管理专有网络。
选中您需要使用的交换机名称。
工作空间名称
每个工作空间的计算资源隔离,开发控制台相互独立。
创建成功后不可修改。
flink-test
OSS存储
OSS用于存储作业系统检查点、作业快照、日志和JAR包等信息。新建OSS存储的具体操作,请参见开通OSS服务。
不推荐对选择的Bucket开启非默认策略,例如多版本、合规保留等,可能会导致Flink作业异常。
选中您需要使用的OSS Bucket名称。
监控服务
默认使用免费监控服务,如果您选择按量付费Prometheus监控服务(为您提供商业版Prometheus监控能力),则会正常进行收费,计费详情请参见ARMS按量计费。
免费监控服务
请再次确认已了解并领取实时计算Flink版、对象存储OSS资源抵扣包。
其中,对象存储OSS资源抵扣包领取已在上述步骤2中完成,实时计算Flink版资源抵扣包领取已在上述步骤5-6中完成。若未领取请查看对应步骤完成领取。
如果您的实时计算Flink版和对象存储OSS资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用。
单击立即试用,并根据页面提示,完成阿里云实时计算Flink版工作空间创建。
工作空间创建需要约5~10分钟,请耐心等待。5~10分钟后,请在实时计算控制台Flink全托管页签,刷新页面查看工作空间状态,当工作空间状态为运行中时,即可进入下一步。
创建Session集群
4
在实时计算控制台,单击flink-test工作空间(上一步骤中创建)对应操作列下的控制台。
在左侧导航栏,单击运维中心 > Session管理。
单击创建Session集群。
表格中未提及的参数保持默认值即可,需要配置的参数说明请参见下表。
配置项
说明
教程配置
名称
Session集群名称。
flink-sql-test-session
状态
设置当前集群的期望运行状态:
STOPPED:当集群配置完成后保持停止状态,同样会停止所有在运行中的作业。
RUNNING:当集群配置完成后保持运行状态。
RUNNING
引擎版本
Session集群引擎版本号。
vvr-8.0.9-flink-1.17
Task Managers数量
默认与并行度保持一致。
4
单击创建Session集群。
当Session集群状态(页面上方集群名称旁边)从启动中变为运行中后,您可以进入后续步骤。
体验数据实时分析
10
为方便您更好地体验实时计算Flink版产品服务,本次模拟教程提供了仅有只读权限的AK供您试用,后续所有步骤中涉及的AK仅可用于模拟教程过程中读取样例数据,真实数据生产环境请替换为您自己的数据源AK。
创建SQL作业。
在左侧导航栏,单击数据开发 > ETL。
在页面顶部,单击新建。
单击空白的流作业草稿后,单击下一步。
在新建文件对话框,填写作业配置信息。
作业参数
说明
教程配置
文件名称
作业的名称。
flink-sql-test
存储位置
指定该作业的代码文件所属的文件夹。默认存放在作业草稿目录。
作业开发
引擎版本
选择作业的引擎版本,需要和Session集群引擎版本号一致。
vvr-8.0.9-flink-1.17
单击创建。
统计当天各个仓库新增Star数Top 10排行榜。
复制如下代码到作业开发文本编辑区。
-- 通过DDL语句创建SLS源表,SLS中存放了Github的实时数据。 CREATE TEMPORARY TABLE gh_event( id STRING, -- 每个事件的唯一ID。 created_at BIGINT, -- 事件时间,单位秒。 created_at_ts as TO_TIMESTAMP(created_at*1000), -- 事件时间戳(当前会话时区下的时间戳,如:Asia/Shanghai)。 type STRING, -- Github事件类型,如:。ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。 actor_id STRING, -- Github用户ID。 actor_login STRING, -- Github用户名。 repo_id STRING, -- Github仓库ID。 repo_name STRING, -- Github仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。 org STRING, -- Github组织ID。 org_login STRING -- Github组织名,如: apache,google,alibaba等。 ) WITH ( 'connector' = 'sls', -- 实时采集的Github事件存放在阿里云SLS中。 'project' = 'github-events-shenzhen', -- 存放公开数据的SLS项目。本示例以深圳为例,您需要修改为您的实际地域信息。 'endPoint' = 'https://cn-shenzhen-intranet.log.aliyuncs.com', -- 公开数据仅限VVP通过私网地址访问。本示例以深圳为例,您需要修改为您的实际地域信息。 'logStore' = 'realtime-github-events', -- 存放公开数据的SLS logStore。 'accessId' = 'LTAI5tNF1rP8PKVyYjr9TKgh', -- 只读账号的AK。 'accessKey' = 'FDgsh6fjSmkbFsx083tN6HOiqNVWTP', -- 只读账号的SK。 'batchGetSize' = '500' -- 批量读取数据,每批最多拉取500条。 ); -- 配置开启mini-batch, 每2s处理一次。 SET 'table.exec.mini-batch.enabled'='true'; SET 'table.exec.mini-batch.allow-latency'='2s'; SET 'table.exec.mini-batch.size'='4096'; -- 作业设置4个并发,聚合更快。 SET 'parallelism.default' = '4'; -- 查看当天Github新增star数Top 10仓库。 SELECT DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') as `date`, repo_name, COUNT(*) as num FROM gh_event WHERE type = 'WatchEvent' AND DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') = DATE_FORMAT(NOW(), 'yyyy-MM-dd') GROUP BY DATE_FORMAT(created_at_ts, 'yyyy-MM-dd'), repo_name ORDER BY num DESC LIMIT 10;
按照实际地域配置WITH参数中的project和endPoint(本示例以深圳地域为例),其他参数保持默认值,无需修改。
地域
参数
说明
北京
project
github-events-beijing
endPoint
https://cn-beijing-intranet.log.aliyuncs.com
杭州
project
github-events-hangzhou
endPoint
https://cn-hangzhou-intranet.log.aliyuncs.com
上海
project
github-events-shanghai
endPoint
https://cn-shanghai-intranet.log.aliyuncs.com
深圳
project
github-events-shenzhen
endPoint
https://cn-shenzhen-intranet.log.aliyuncs.com
单击调试。
在弹出的对话框中,选择调试集群为flink-sql-test-session(第一步中创建的Session集群),确认调试数据状态为线上数据后,单击确定。
查看可视化结果
如果出现资源不足无法显示结果的情况,请在Session集群页面先停止Session集群,再启动Session集群至运行状态,再单击调试。
如果需要继续下一步,请单击结果区域左侧红色停止
按钮。
因为这是一个流式作业,作业会持续运行,结果会持续更新。此步骤完成后如果您忘记单击停止按钮且继续了后续示例的执行,可能会出现资源不足无法显示结果的情况。这时,您需要在Session集群页面先停止Session集群,再启动Session集群至运行状态。
查看某组织近7天的PR总量实时趋势
复制如下代码到作业开发文本编辑区。
-- 通过DDL语句创建SLS源表,SLS中存放了Github的实时数据。 CREATE TEMPORARY TABLE gh_event( id STRING, -- 每个事件的唯一ID。 created_at BIGINT, -- 事件时间,单位秒。 created_at_ts as TO_TIMESTAMP(created_at*1000), -- 事件时间戳(当前会话时区下的时间戳,如:Asia/Shanghai)。 type STRING, -- Github事件类型,如:ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。 actor_id STRING, -- Github用户ID。 actor_login STRING, -- Github用户名。 repo_id STRING, -- Github仓库ID。 repo_name STRING, -- Github仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。 org STRING, -- Github组织ID。 org_login STRING -- Github组织名,如: apache,google,alibaba等。 ) WITH ( 'connector' = 'sls', -- 实时采集的Github事件存放在阿里云SLS中。 'project' = 'github-events-shenzhen', -- 存放公开数据的SLS项目。本示例以深圳为例,您需要修改为您的实际地域信息。 'endPoint' = 'https://cn-shenzhen-intranet.log.aliyuncs.com', -- 公开数据仅限VVP通过私网地址访问。本示例以深圳为例,您需要修改为您的实际地域信息。 'logStore' = 'realtime-github-events', -- 存放公开数据的SLS logStore。 'accessId' = 'LTAI5tNF1rP8PKVyYjr9TKgh', -- 只读账号的AK。 'accessKey' = 'FDgsh6fjSmkbFsx083tN6HOiqNVWTP', -- 只读账号的SK。 'batchGetSize' = '500', -- 批量读取数据,每批最多拉取500条。 'startTime' = '2023-07-24 00:00:00' -- 开始时间,尽量设置到需要计算的时间附近,否则无效计算的时间较长。默认值为当前值。 ); -- 配置开启mini-batch, 每2s处理一次。 SET 'table.exec.mini-batch.enabled'='true'; SET 'table.exec.mini-batch.allow-latency'='2s'; SET 'table.exec.mini-batch.size'='4096'; -- 作业设置4个并发,聚合更快。 SET 'parallelism.default' = '4'; -- 查看某组织(如:apache)最近7天的PR总量实时趋势。 SELECT NOW() as `current_ts`, COUNT(*) as pr_count FROM gh_event WHERE org_login = 'apache' and type = 'PullRequestEvent' and created_at_ts >= NOW() - INTERVAL '7' DAY;
按照实际地域配置WITH参数中的project和endPoint(本示例以深圳地域为例),其他参数保持默认值,无需修改。
地域
参数
说明
北京
project
github-events-beijing
endPoint
https://cn-beijing-intranet.log.aliyuncs.com
杭州
project
github-events-hangzhou
endPoint
https://cn-hangzhou-intranet.log.aliyuncs.com
上海
project
github-events-shanghai
endPoint
https://cn-shanghai-intranet.log.aliyuncs.com
深圳
project
github-events-shenzhen
endPoint
https://cn-shenzhen-intranet.log.aliyuncs.com
单击调试。
在弹出的对话框中,选择调试集群为flink-sql-test-session(第一步中创建的Session集群),确认调试数据状态为线上数据后,单击确定。
查看可视化结果。
如果出现资源不足无法显示结果的情况,请在Session集群页面先停止Session集群,再启动Session集群至运行状态,再单击调试。
如果需要继续下一步,请单击结果区域左侧红色停止
按钮。
因为这是一个流式作业,作业会持续运行,结果会持续更新。此步骤完成后如果您忘记单击停止按钮且继续了后续示例的执行,可能会出现资源不足无法显示结果的情况。这时,您需要在Session集群页面先停止Session集群,再启动Session集群。
统计过去一周里Github小时级别的评论热力图。
复制如下代码到作业开发文本编辑区。
-- 通过DDL语句创建SLS源表,SLS中存放了Github的实时数据。 CREATE TEMPORARY TABLE gh_event( id STRING, -- 每个事件的唯一ID。 created_at BIGINT, -- 事件时间,单位秒。 created_at_ts as TO_TIMESTAMP(created_at*1000), -- 事件时间戳(当前会话时区下的时间戳,如:Asia/Shanghai)。 type STRING, -- Github事件类型,如:ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。 actor_id STRING, -- Github用户ID。 actor_login STRING, -- Github用户名。 repo_id STRING, -- Github仓库ID。 repo_name STRING, -- Github仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。 org STRING, -- Github组织ID。 org_login STRING -- Github组织名,如: apache,google,alibaba等。 ) WITH ( 'connector' = 'sls', -- 实时采集的Github事件存放在阿里云SLS中。 'project' ='github-events-shenzhen', -- 存放公开数据的SLS项目。本示例以深圳为例,您需要修改为您的实际地域信息。 'endPoint' = 'https://cn-shenzhen-intranet.log.aliyuncs.com', -- 公开数据仅限VVP通过私网地址访问。本示例以深圳为例,您需要修改为您的实际地域信息。 'logStore' = 'realtime-github-events', -- 存放公开数据的SLS logStore。 'accessId' = 'LTAI5tNF1rP8PKVyYjr9TKgh', -- 只读账号的AK。 'accessKey' = 'FDgsh6fjSmkbFsx083tN6HOiqNVWTP', -- 只读账号的SK。 'batchGetSize' = '500', -- 批量读取数据,每批最多拉取500条。 'startTime' = '2023-07-24 00:00:00' -- 开始时间,尽量设置到需要计算的时间附近,否则无效计算的时间较长。默认值为当前值。 ); -- 配置开启mini-batch, 每2s处理一次。 SET 'table.exec.mini-batch.enabled'='true'; SET 'table.exec.mini-batch.allow-latency'='2s'; SET 'table.exec.mini-batch.size'='4096'; -- 作业设置4个并发,聚合更快。 SET 'parallelism.default' = '4'; -- 实时统计过去一周里Github小时级别的评论热力图。 SELECT DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') as comment_date, HOUR(created_at_ts) AS comment_hour ,COUNT(*) AS comment_count FROM gh_event WHERE created_at_ts >= NOW() - INTERVAL '7' DAY AND (type='CommitCommentEvent' OR type='IssueCommentEvent' or type = 'PullRequestReviewCommentEvent') GROUP BY DATE_FORMAT(created_at_ts, 'yyyy-MM-dd'), HOUR(created_at_ts) ;
按照实际地域配置WITH参数中的project和endPoint(本示例以深圳地域为例),其他参数保持默认值,无需修改。
地域
参数
说明
北京
project
github-events-beijing
endPoint
https://cn-beijing-intranet.log.aliyuncs.com
杭州
project
github-events-hangzhou
endPoint
https://cn-hangzhou-intranet.log.aliyuncs.com
上海
project
github-events-shanghai
endPoint
https://cn-shanghai-intranet.log.aliyuncs.com
深圳
project
github-events-shenzhen
endPoint
https://cn-shenzhen-intranet.log.aliyuncs.com
单击调试。
在弹出的对话框中,选择调试集群为flink-sql-test-session(第一步中创建的Session集群),确认调试数据状态为线上数据后,单击确定。
查看可视化结果。
如果出现资源不足无法显示结果的情况,请在Session集群页面先停止Session集群,再启动Session集群至运行状态,再单击调试。
完成本示例后,请单击结果区域左侧红色停止
按钮。
因为这是一个流式作业,作业会持续运行,结果会持续更新。体验完成之后,请及时单击停止按钮,否则会继续消耗计算资源。
完成
1
通过简单的数据实时分析示例,您已完成了阿里云实时计算Flink版的开通、SQL查询语句的执行,以及可视化数据分析,快速体验了实时计算Flink版产品。
清理及后续
5
清理
实时计算Flink版提供的按量付费(3个月5000CUH计算资源)试用,具有时长和容量限制,使用完请及时清理相关资源。如果未及时清理资源,相关Flink工作空间将按照按量付费模式正常进行计费,涉及的其他产品服务也会正常收取费用。完成教程后,您可以按照如下场景进行处理:
如果您需要继续使用,此时5000CUH资源已使用完或者已经超过3个月,请随时查看欠费金额,并在规定时间内充值结清欠费账单,否则无法继续正常使用工作空间。计费详情请参见按量付费和欠费说明。
如果您不需要继续使用,请及时清理测试数据和试用资源:
后续
如果您需要将某个作业提交至生产环境运行(请勿将Session集群用于正式生产环境),需要在数据开发 > ETL页面,单击部署,在弹出的确认对话框中,单击确定,然后在运维中心 > 作业运维页面,单击启动,具体操作请参见SQL作业开发和作业启动。
总结
常用知识点
问题1:您是否需要自己开通SLS服务并配置测试数据?(单选题)
正确答案是否,因为此次试用已为您配置好了对应的SLS服务及数据,您只需要按照教程示例直接运行即可。
问题2:为什么要创建Session集群?(单选题)
正确答案是调试作业的前提条件,因为系统在作业调试前会检测是否有可用于SQL Preview的Session集群,如果无Session集群时,则会提示并引导您配置用于SQL Preview的Session集群。