美文网首页大数据 爬虫Python AI Sql大数据玩转大数据
spark实时监控sqlserver文件方法(追踪~增删改查)

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

作者: Java程序员YY | 来源:发表于2019-08-16 14:25 被阅读0次

    思路

    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(备注必填,方便通过)

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ehofsctx.html