一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于MYSQLBINLog变更数据的实时采集方法与流程

2022-02-21 06:26:09 来源:中国专利 TAG:
一种应用于mysqlbinlog变更数据的实时采集方法
技术领域
:1.本发明属于大数据
技术领域
:,具体涉及一种应用于mysqlbinlog变更数据的实时采集方法。
背景技术
::2.数据本身的价值是随着时间推移而降低的,只有推动数据的实时应用,才能及时、充分的利用数据的价值,让数据更好的为业务赋能,挖掘业务的数据价值。现有技术中,实时架构是以业务数据mysql和oracle为主要数据源,如何实时采集源系统的实时变更数据成为实时架构建设初期需要解决的难题。3.早期架构受限于当时的技术环境和市场的技术成熟度影响,实时采集方案大多为基于mysqlbinlog自身提供的binlogapi接口,自主研发的实时采集java程序,这种方案的原理是:基于mysqlbinlog提供的采集binlog日志的api接口,开发java应用小程序实现实时binlog日志采集。但是该方案存在以下缺陷:(1)独立于实时计算平台,维护成本较高;(2)基于配置文件采集,采集库表高度耦合,启动程序会连带正常采集库表一同启动,造成历史采集短暂业务数据采集中断,一定程度造成业务连续性影响;(3)资源浪费,当前采集程序部署在6个采集节点,采集任务分布不均,资源利用率较低,资源浪费严重;(4)配置文件冗长,繁杂的配置文件,手动配置,容易误或者错配,导致启动采集任务时候,造成短暂的业务采集中断,一定程度上影响业务连续;(5)采集密码,可逆配置到配置文件,具备数据库密码泄露风险。4.随着架构变化、技术迭代,当前采集方案稳定和性能弊端较为突出,难以维持现有实时架构数据实时采集支撑。因此,采集方案技术革新,迫在眉睫。技术实现要素:5.针对现有技术中存在的问题,本发明提供一种应用于mysqlbinlog变更数据的实时采集方法,其目的在于:通过简单的配置和工具执行,即可实现难度复杂的实时采集任务,同时又跟现有的实时生态架构无缝结合,充分利用集群资源,统一运维和监控,实现采集任务集成于实时计算服务平台,解决原有采集方式诸多不合理的地方。6.本发明采用的技术方案如下:一种应用于mysqlbinlog变更数据的实时采集方法,包括以下步骤:步骤1:分别在excel中的不同sheet中配置需采集的mysql数据库的数据库连接信息和采集字段信息,并配置对应的配置文件,所述配置文件用于解析excel模板位置、flinksql脚本输出文件配置信息以及所需的执行环境配置信息,仅打包成windows平台适配的exe应用程序的时候,配置一次即可;步骤2:执行flink_mysql脚本工具,实现flinkcdc采集脚本的自动生成;步骤3:将自动生成的flinkcdc采集脚本上传到flink客户端节点执行任务发布。7.采用该技术方案后,flinkcdc采集脚本实时采集excel中不同sheet的配置信息,研发人员只需要配置excel模板中的配置信息即可,点击执行模板工具打包而成的适配windows平台的可执行软件exe文件,即可生成对应的脚本文件,用于实时平台应用发布。8.优选的,步骤1具体包括以下步骤:步骤1.1:配置excel模板中的sheet名称为mysql_binlog的表格,配置需采集的mysql数据库的数据库连接信息;步骤1.2:配置excel模板中的sheet名称为mysql_column的表格,配置需采集的mysql数据库的表的采集字段信息;步骤1.3:配置config.ini文件,指定需要解析的excel模板位置、flinksql脚本输出文件配置信息以及所需的执行环境配置信息,仅打包成windows平台适配的exe应用程序的时候,配置一次即可。9.采用该优选技术方案后,研发人员只需要配置excel模板中的mysql_binlog模板中需要采集的mysql的采集地址、端口、数据库名称、表名称、输出流表topic名称等,以及mysql_column模板中采集需要的字段信息即可实现难度复杂的实时采集任务,同时又跟现有的实时生态架构无缝结合。10.优选的,步骤2具体包括以下步骤:步骤2.1使用pyinstallerꢀ‑fflk_mysql.py命令将工具代码打包成可适配windows平台执行的可执行的exe应用程序;步骤2.2:运行可执行文件,通过后端程序检测程序主目录下的config.ini文件,判断文件是否存在,不存在则提示弹框,显示config.ini配置文件不存在,存在则读取配置文件中配置的excel模板文件路径和执行环境相关属性,并检测配置路径下的模板文件和相关参数的正确性,不正确则弹出相关异常提示,正常则读取excel模板文件中的sheet名称为mysql_binlog的表格,获取采集模板生成所需要的mysql采集地址和库表等信息,其次再读取excel模板文件中的sheet名称为mysql_column中配置的mysql采集字段信息,将采集信息和字段信息作为入参传入模板函数,模板函数会将这些信息拼接成flinksql流表创建代码以及insert入数sql代码写入到对应的sql脚本文件,完成代码生成。11.进一步优选,步骤3具体包括以下步骤:步骤3.1:将工具生成的flinksql创建流表以及入数实时数仓接入层代码脚本上传到flinkonyarn的客户端;步骤3.2:调用flinktableapi启动jar包程序,将flinksql脚本作为入参传入jar包,完成流表创建及流式入数任务启动;步骤3.3:通过flinkui界面查看任务启动情况,以及通过kafka消费流表,观察数据采集情况。12.综上所述,由于采用了上述技术方案,本发明的有益效果是:1.本发明基于excel配置化自动生成采集脚本工具,通过解析excel配置的数据库采集的数据库地址、端口、数据库、表以及输出流表topic名称等配置信息,通过工具的sql模板,将解析的excel采配置信息做为入参传入,实现mysqlbinlog采集脚本的自动生成,减少了手动编写采集脚本的过程,提高了研发效率,将开发一个任务的时间从以前的一天,缩短到了分钟级。13.2.工具代码打包成windwos平台适配的可执行软件,可以不依赖研发工具pycharm,对于不熟悉python语言的数据研发同事,拿来即用,无需繁复的执行环境配置。14.3.本发明克服了前述的现有技术中存在的任务耦合严重、配置冗长、资源浪费的问题和可逆密码配置的缺陷,不影响业务的连续性,提高了资源利用率,且安全性更高。15.4.本发明利用集群资源,节省了单独部署使用的6台服务器,同时集成了统一的任务管理和监控生态,不用单独部署监控和开发脚本管理,实现了实时架构的统一和集成,降低了生态组件游离。16.5.本发明通过简单的配置和工具执行,即可实现难度复杂的实时采集任务,同时又跟现有的实时生态架构无缝结合,充分利用集群资源,实现采集任务集成于实时应用生态。17.6.本发明可集成到实时计算服务平台,形成统一的数据采集功能,有功能化服务的潜力。附图说明18.本发明将通过例子并参照附图的方式说明,其中:图1是本发明的流程图。具体实施方式19.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。20.在本技术实施例的描述中,需要说明的是,术语“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。21.下面结合图1对本发明作详细说明。22.一种应用于mysqlbinlog变更数据的实时采集方法,包括以下步骤:步骤1:分别在excel中的不同sheet中配置需采集的mysql数据库的数据库信息和字段信息,并配置对应的配置文件,所述配置文件用于解析excel模板位置、flinksql脚本输出文件配置信息以及所需的执行环境配置信息,仅打包成windows平台适配的exe应用程序的时候,配置一次即可;具体包括以下步骤:步骤1.1:配置excel模板中的sheet名称为mysql_binlog的表格,配置需采集的mysql数据库的数据库信息。例如:是否生成、实时流英文名、系统简称、源表英文名、源表业务含义、源表中文名、topic、采集类型、采集服务器、数据库类型、ip、端口、库名、所有者、配置文件、状态、备注等信息。23.步骤1.2:配置excel模板中的sheet名称为mysql_column的表格,配置需采集的mysql数据库的表的字段信息。例如:源表英文名、序号、源字段英文名、源字段类型、源字段中文名、键标识、是否生效、备注等信息。24.步骤1.3:配置config.ini文件,指定需要解析的excel模板位置、flinksql脚本输出文件配置信息以及所需的执行环境配置信息。例如:实时集群运行环境的kafka、zookeeper、elasticsearch等配置信息。25.步骤2:执行flink_mysql脚本工具,实现flinkcdc采集脚本的自动生成,包括将工具代码打包成可适配windows平台执行的可执行文件;具体包括以下步骤:步骤2.1使用pyinstallerꢀ‑fflk_mysql.py命令将工具代码打包成可适配windows平台执行的可执行文件。采用这种方案的优势是:打包成windwos平台适配的可执行软件,可以不依赖研发工具pycharm,对于不熟悉python语言的数据研发同事,拿来即用,无需繁复的执行环境配置,可将exe可执行文件图标自定义,发送到桌面快捷键。26.步骤2.2:运行可执行文件,通过后端程序检测程序主目录下的config.ini文件,判断文件是否存在,不存在则提示弹框,显示config.ini配置文件不存在,存在则读取配置文件中配置的excel模板文件路径和执行环境相关属性,并检测配置路径下的模板文件和相关参数的正确性,不正确则弹出相关异常提示,正常则读取excel模板文件中的sheet名称为mysql_binlog的表格,获取采集模板生成所需要的mysql采集地址和库表等信息,其次再读取excel模板文件中的sheet名称为mysql_column中配置的mysql采集字段信息,将采集信息和字段信息作为入参传入模板函数,模板函数会将这些信息拼接成flinksql流表创建代码以及insert入数sql代码写入到对应的sql脚本文件,完成代码生成。27.步骤3:将自动生成的flinkcdc采集脚本分别上传到各flink执行节点运行。28.具体包括以下步骤:步骤3.1:将工具生成的flinksql创建流表以及入数实时数仓o层代码脚本上传到flinkonyarn的客户端;步骤3.2:调用flinktableapi启动jar包程序,将flinksql脚本作为入参传入jar包,完成流表创建及流式入数任务启动;步骤3.3:通过flinkui界面查看任务启动情况,以及通过kafka消费流表,观察数据采集情况。29.本发明通过简单的配置和工具执行,即可实现难度复杂的实时采集任务,同时又跟现有的实时生态架构无缝结合,充分利用集群资源,实现采集任务集成于实时应用生态。30.以上所述实施例仅表达了本技术的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献