大数据 爬虫Python AI Sql大数据玩转大数据

spark实时监控sqlserver文件方法(追踪~增删改查)

2019-08-16  本文已影响0人  Java程序员YY

思路

Spark对SQLserve监控一旦不单只有增量监控(指增删改查全要监控)后,据我所知,目前就我个人想法只有两方面入手

一个是不断遍历该表然后新表对比后表,即可准实时实现变化追踪,这样的实现方法最简单,但其消耗资源与时间是非常严重的.尤其当源表十分庞大时,这做法就显得相当不理智了.(其实这方法本来就不理智)

第二个则是利用SQLserver的CDC功能让其自主监控源表并生成一个只会出现增量变化的CDC表,通过 flume-ng-sql-source(这是一个大咖自主写的 第三方flume中source组件) flume-kafka监控该表并传至spark进行分析

实现

1.开启代理服务器。

SqlServer启用CDC功能必须开启代理服务器!!!

SqlServer启用CDC功能必须开启代理服务器!!!

SqlServer启用CDC功能必须开启代理服务器!!!

2.创建CDC表

本次范例源表为test库里的table1表

1.开启数据库的监控功能

检测源表所在数据库是否开启监控,因为想监控源表必须先开启源表所在数据库的监控

命令为

select name,is_cdc_enabled from sys.databases

从上图我们可以看到test库状态为0,即未开启监控。因此需要我们转到库下开启监控

use test

go

exec sp_cdc_enable_db

select name,is_cdc_enabled from sys.databases

我们可以看到test状态由0成功变成1,说明我们已开启test库的监控功能

2.设置监控表

输入以下命令

use test

exec sp_cdc_enable_table

@source_schema = 'dbo',

@source_name = 'table1',

@role_name = cdc_admin,

@index_name = NULL,

@supports_net_changes = 1

运行,我们便会看到以下画面

说明我们监控文件创建成功,刷新test数据库我们可以看到

可以看到在系统表中生成一个cdc.dbo_table1_CT的监控表,

源表table1格式

当我我们在table1中添加新内容如 id 18 name 蔡徐坤打篮球

table1

可见监控表成功追踪到了我们的增量操作,如何在该表查看我们的操作状态呢?在_$operation列中可以查看

1 = delete,2 = insert,3 = update(旧值),4 = update(新值)。

注增加或删除操作只会增添一行,而修改则会增添2行,第一行为旧值而第二行为修改的新值

3.flume中添加第三方包

我们都知道flume是一个非常好的监控工具,但是flume官网里并没有找到可以直接连接SQLserver功能,因此我们需要自行添加该功能的工具包flume-ng-sql-source

小编这里整理了一些相关的学习资料和学习视频,可免费领取。

加微信:18410263200

通过验证备注:111(备注必填,方便通过)

上一篇下一篇

猜你喜欢

热点阅读