Flink-Learning训练营:课时1:5分钟上手 Flink MySQL 连接器
课程地址:https://developer.aliyun.com/trainingcamp/0bcc1ab57cf841a2af632d6252fecbab
实时数据接入:5分钟上手Fling MySQL连接器
内容简介
一、实验准备
二、实验内容
三、实验收获
一、实验准备
(1)开通阿里云十计算的fling版的免费试用
在这个实验开始之前呢,需要去开通阿里云十计算的fling版的免费试用,然后因为我们需要去连接的是一个云数Mexico实例,所以我们也需要去开通阿里云数据库的rds免费试用。
本实验会flink是计算平台为基础使用flink自带的Mexico connect连接器,去连接rds云数据库的实例,并且一个实时商品销售数据统计的一个例子,尝试去上手connect的数据补货数据写入,,我们可以通过阿里云试用中心:
http://free.aliyun.com/?product=956456o&crowd=enterpise ,去申请实际计算flink跟云数据库IDS的适用,大家可以直接扫码或者点击链接就可以去使用了
实验之前我们需要先在Rds云数据库上面去进行一些简单配置,去建立一些数据库跟数据表,在完成我以上准备步骤,之后我们就可以正式的开始我们的实验了。
二、实验内容
(1).捕获原表数据变化
首先,我们之前已经建立了一张MySQL数据表,如下图
其中包含了实时更新的数据。
为了将其转化为flink可以处理的流失数据,我们首先进入flink实时计算平台,创建一个flink流作业,然后我们可以使用cdc连接器,连接到原数据表,它可以通过分析日志的方式捕获、变更数据,并发送到下游系统。之后我们就可以使用table API编写数据处理的逻辑。例如我们可以进入到实时计算平台,点击左侧的作业开发页面,点击新建按钮,我们可以新建一个job。之后我们可以创建一张source table的表,这个表跟我们之前创建的MySQL数据表的schema 一致,之后我们在这个with里面提供一些连接所需要的参数,例如配置使用MySQL cdc连接器,host name是之前我们建立IDS实例的时候提供的ual, usaname 和pasorde是之前设定的实例登陆用户名和密码,为了验证连接是否成功,我们可以直接在这下面编写类似于cgo的语句。Select from sort table,获取source table中实时更新的所有数据。例如在这里我们看到了实时更新的数据,都来自于我们之前创建的源表,这说明我们的连接器生效了,它能够顺利的捕获变更的数据可以直接在这里添加新的数据库里逻辑,例如这段SQL语句实际上就是将原始输入的数据,以每15秒为一个时间窗口进行分类,并且按照商品ID以及商品在15秒内的销售量进行统计并展示结果。可以看到它正确的执行了计算,并且会随着数据的到来实时进行更新。
(2)接入维度表,打宽数据
我们可以看到在原表中我们使用了good ID
来表明每件商品的销售记录,但包括商品名称,商品价格之类的信息则保存在另一张单独的表中。我们同样可以使用类似的语句,建立连接维度表的临时表,并且使用left join语法将它和之前计算的数据流结果进行连接。我们可以执行一下,看看结果,我们可以看到这里正常的进行了连接,并且计算出了每件商品的利润,
(3)数据写回会表
我们可以使用跟之前类似的方式建立连接汇表的临时表,并且使用insert into cycle语句数据流写回MySQL数据库。在这里,我们使用think table这张临时表来连接我们的数据库里的汇表,并且加入了一个scan auto commit为TRUE这个参数,表明我们希望这个数据库在发生更动时自动commit到数据库。然后我们只需要在上面加入一行insert into Table语句,
表示我们希望把下面这行语句的执行结果插入到会表之中,我们来验证一下执行结果是否正确。可以看到,执行结果正确。因为在阿里云实际计算平台中使用测试,调试执行时数据不会写入下一个会表,所以为了验证这一功能是否正常,我们还需要点击上线功能,将作业部署到flink集群上面进行测试。点击确认,然后我们可以进入运维页面,可以看到这个任务,现在是已停止的状态,
我们点击启动,使用默认配置启动这个作业。在作业成功启动之后,我们可以进入数据库查看汇表中是否有新增的数据。可以看到这里有新增的数据代表我们的数据顺利写入了会表之中。同时,我们可以在作业总览中看到数据的数据流图,
例如1处是我们的原表获取数据,2处是我们进行窗口聚合的操作,3处是我们获取维度表中的数据,4处是我们将原表处理后的数据跟维度表中的数据进行了一个聚合,最后我们将得到的结果写入会表5之中。
在我们不需要运行作业之后,我们可以点击停止按钮,停止这个作业。
三、实验收获
学完该章节可以帮助您去掌握这些技术,包括去使用flink 10计算平台创建并且提交作业,编写基于flink table API的SQL语句。并且使用MySQL Connector对数据库进行读写这方面的能力。
这就是五分钟上手fling bicycle连接器的实验内容。