00:00
嗯,好,那我们接下来的话呢,我们就来测试一下我们的这个任务调度模块,当然就是说你在测试之前呢,因为你写了很多代码,所以说你肯定这个,呃,云台application你是要重启的,对吧?呃,那我们看一下它控制台,那么在这个控制台里边呢,显示出这样一个信息,对吧?呃,因为我们在这个云台application这个主程序里边呢,启动了调度器,所以说在这个控制台它打印出了这样的一些信息。嗯,对吧,他打印出这样的一些信息,那就是说我并没有选择一个持久化的数据库,对吧?呃,也就是说他默认的是将定时任务存在内存里面的,也就是你关闭掉这个呃,Spring good服务以后呢,那么呃,相应的定时器服务也就没了,对吧?当然里面内存的东西,呃肯定也就没了,对吧,肯定就没了,所以说你在这你可以看到他说是并不支持持久化,并且。并不是一个分布式的,对吧。呃,当然的话呢,我们可以参照一下官方文档呢。
01:00
去比方说选择买SQ作为持久化或者之类的都是可以的,对吧。好,我们现在我们来简单测试一下,我们打开这个控制台。对吧?因为我们写了两个任务,一个是简单任务,一个是买CQ的监控任务,对吧?我们先来看一下简单任务,那就是我们点击添加任务,然后呢,我选择简单任务测试对吧?然后呢,再选择一个周期执行任务,然后每十秒钟执行一次,我的作业名是JOB1,组名也是JOB1,然后点击创建新任务对不对?你可以看到这里边就创建了一个新的任务,那么它就会显示说是否是C任务呀,False,对吧?它执行周期是十秒对吧?它的运行状态是呃,任务状态呢,是运行中,你在这儿的话,你就可以看到,诶每隔十秒钟呢,就会打出一个任务被呃触发执行对吧?任务被触发执行啊,我们可以继续等,对吧,你可以看到它又打出来一个啊,当然在前端的话呢,如果我点击暂停应用的呃任务的话呢,那么它就会调用我们后端写好的API,就是暂停任务的这样的一个API,对吧?你可以看到由于数据库里边的任务状态呢,改成了已暂停,所以说这里边的任务状态可视化出来的话呢,也是已暂停,对吧。
02:10
那么我们看一下控制台,你就会发现,诶,这个任务未触发执行,它不再打印了,对吧?好,那我们现在测试了一下,简单的,呃,这个任务对吧,那么接下来的话呢。我们再来看一下数据库的空值率的,呃,这样的一个监控,当然的话呢,我们在这里面需要放一些测试数据库,对吧?放一些测试数据库,呃,那么在这的话呢,那就是呃,我们来看一下,首先我创建了一个数据库,叫g ma,用来做MYCQ监控的测试数据库,然后呢,创建了一张非常简单的表,云台左源对吧,用来监控,然后呢,我在这里边呢,创建了一张表,叫做云台下方左源,然后有两个字段,一个是edge,一个是he,然后我插入两条数据。对吧,当然一个是edge的,一个是呃,Height的对吧?呃,那这样的话呢,我们就来看一下这个呃表里边对不对,我们柚一下JA,然后呢,Show tables,然后呢,Select she from云台左源对吧?在这边的话你就可以看到,诶edge的空置率应该是50 height的空制也是50,对吧?然后呢,我们实际上是把这个监控结果呀,给它写到了哪张表里边呢?我们看一下,呃,我们把它写到了云台government这个库里边的my CQ data monitor这张表里,对吧?所以我们在这的话呢。
03:39
我们就可以use云台对吧,然后呢。Select。芯from my SQL data monitor对吧?呃,当然这里边有一些我之前运行过的数据,所以我们就直接delete from my把它删除掉,然后看一下我们注册一个定时任务之后呢,它里边会不会定期插入数据进来对吧?会不会定期插入数据进来,好,那在这的话呢,我们就点击前端对吧,你可以点击一个啊,当然我这可以点击一个重启任务对吧,你就可以看到说。
04:18
我们来看一下这个重启,我们先来看一下这个添加任务对吧?我们是一个MYSQL数据监控对吧?我要监控的数据库名是g Mo啊,为了方便测试的话呢,我前端就把这个数据库和表名都写死了,对吧?当然你可以从后端呃,获取数据库和表的一些原信息,对吧?然后我要监控的字段,比方说是he,然后监控的是空值率,然后周期执行,每十秒钟执行一次,然后作业名,比如说这里面是JOB2,呃,这个是GROUP2,对吧?然后我点击创建新任务,那么这就创建了一个新任务,那么我们就可以来看一下。诶看一下什么呢?看一下这个。呃,在这里边我们的当然我刚才点了一下重启任务,然后它就不停的呃在重启,对吧,我们来看一下数据库里边,呃,有没有监控的任务,对吧?有没有监控的数据,所以说你可以看到,诶这个任务已经执行了,并且是每隔十秒钟呢,它就会监控一次height字段的空值率,你可以发现它是50%,你当然就是说你可以实现的更精细一点,比方说呃,我针对一个字段的监控呢,我要是新的数据插入进来,我就把旧的数据删除掉,对吧?那么这一这个写C课的话呢,它其实非常简单的,诶,你可以看到新的数据已经进来了,对吧?新的数据已经进来了,那你还可以继续添加任务。
05:39
我要,呃,监控的字段名是H对吧?那么这个是作业三对吧,它属于还是属于group,然后点击创建任务对吧。然后呢,我这儿我可以点击暂停任务对不对,那这个就已经暂停了,那这个呢,它继续在运行,我们来看一下呃有没有把这个age的字段给他监听进来,对吧?你可以看到诶age呢,呃也已经写进来了,那这说明我们呃这样的一个呃应用呢,呃基本上就算是写成功了,对吧?大家应该也知道说呃这个一个任务调度器,它具体应该怎么写对吧?呃当然就是我们在这里去查看它的数据的话呢,那可能就是会呃感觉有一些。
06:27
不是特别方便对吧,不是特别方便,所以我们在这儿的话呢,呃,当然我先把这个服务停掉对吧?呃,所以我们在这里边的话呢,我们就选择呢,编写一个后端的控制器的API,然后向前端返回数据,然后我们把这个数据的监控信息呢给它可视化出来,对吧?呃,当然在这儿的话呢,我会选择把这个包放在哪里呢?或者说把这个代码放在哪里呢?也就是放在government这个包里边。呃,什么意思呢?呃实际上就是呃,我把它呃放在数据治理这个模块对吧,Government这样的一个包对吧,然后这个包里边的话,当然我们还是按照惯例呢去创建并。
07:15
然后呢,我们再创建一个government点,对吧,Controller,呃,然后我们再创建一个service,对吧,我们再创建一个service,好,OK,那这样的话呢,呃,我们这个b controller service呢就写完了,当然我们在这的话呢,我们首先呃就是说我们就来写一个控制器,对吧,我们就可以实际上可以,呃直接写一个控制器,我们在这儿的话呢,我们就展示一下,呃,其实我们可以直接在控制器里边去,呃对数据库做增删查改,然后返回数据,对吧?呃,当然这样写的话呢,可能并不是特别规范或者说标准,但是呃,其实也是可以的,对吧,Government controller,好,然后在这的话呢。
08:07
诶,我写一个什么样的API呢?呃,我写一个获取买CQ字段监控数据的API,对吧,然后呢。我们在这里边的话呢,我们首先呃,你应该做的是把它呃变成一个rest controller,然后呢,我们再呃给他做一下URL映射,对吧?那么这个ul映射的话,那它的呃这个URL呢是government,然后呢。我们来编写获取买CQ字段监控数据的这样的一个API,呃,那么这个API的话呢,我们就是一个get mapping对吧?我们先要定义它的ul,那就是买CQ data monitor对吧?呃,其实这个增删查改的或者说查询的,它它的一个代码呢,那写起来就是很简单了,当然我们要返回的数据是什么呢?是monitor detail的这样的一个列表对吧?然后呢,就是get myq data monitor,对吧?好。
09:20
呃,那么接下来的话呢,我们就开始写这个增删查改的代码,当然在这的话呢,我还是先要捕获一下SQL exception,然后以及class not found exception,然后呢,不要忘记抛异常对吧?然后我们最后呢,返回一个什么呢?呃,我们在这里面的话呢,我们作为防御呢,我们返回一个200SUCCESS,然后你有一个空列表,好,那这样的话呢,呃,我们就可以写上面的查询代码了,对吧?呃,首先定义驱动类。点CG.gdbc对吧,点driver好,然后呢,Connection等于driver manager.get connection对吧?那么它的URL什么的,JDBC冒号MY冒号,双斜杠locals的冒号3306。
10:24
写到明台对吧。呃,因为我们的这个监控的结果呢,是放在这个数据库里边的root root啊。connection.close对吧?关闭掉这个连接,然后呢,我们就可以开始写这个查询语句了,等于statement,然后呢,直接select芯from,买CQ monitor这张表,对吧?
11:05
然后呢,Result set等于select statement.xte好。啊,然后接下来的话呢,我们result等于一个new release monitor好。然后呢,我们写一个while循环呢,把里边的数据都给它取出来,放到列表里边,首先呢,Y一个detail,实例化一个monitor detail吧,然后呢,把它的每个字段都set一下。当然数据库的名字,那就是result set.get string。Database name对吧,然后呢,点。呃,Set table name result set.get追,然后呢,Table name detail.set field name result.get string field name,然后呢,就是detail.set field now right对吧?Result set.get double。
12:22
Field,那rate好,然后呢,我们在这边就是result.a把这个结果给它添加进来就OK了,呃,然后呢,把这个查询语句关闭掉,然后再return一个result.of200success对吧,然后呢是一个result好。然后呢,我们现在就可以重启云台这个应用了,对吧,我们就可以重启云台这个应用了啊,然后然后我们这个API呢,也写好了,对吧,我们API也写好了。
13:01
呃,然后呢,我们在这里边的话呢,我们就可以使用什么呢,我们可以使用posman来看一下它的数据,对吧?嗯,在这里边的话呢,就是。呃,Local host的冒号8080斜杠government斜杠买q mon,哎,回车你就会发现。我们把这些数据呢,对吧?呃,就是说监控的结果数据呢,都给它取出来了,然后呢,当然这些数据呢,我们在前端会选择把它可视化一下,对吧?所以在这的话,你点击MYCQ表数据质量监控啊,你就会发现它已经可视化出来了,对吧?它已经可视化出来了,当然我这个可视化呢,相对来说比较简陋,对吧?呃,但是也能在一定程度上说明一些问题,好,那到现在的话呢,呃,我们定时任务的调度模块呢就写完了,那接下来的话呢,呃,我们就要来学习如何分析haveve表的原数据质量,以及haveve的表级血缘关系是如何来进行计算的,对吧,如何来进行计算的。
我来说两句