CN110008231A - MySQL数据回溯方法、存储介质 - Google Patents

MySQL数据回溯方法、存储介质 Download PDF

Info

Publication number
CN110008231A
CN110008231A CN201910207627.7A CN201910207627A CN110008231A CN 110008231 A CN110008231 A CN 110008231A CN 201910207627 A CN201910207627 A CN 201910207627A CN 110008231 A CN110008231 A CN 110008231A
Authority
CN
China
Prior art keywords
sentence
data
mysql
obtains
data field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910207627.7A
Other languages
English (en)
Other versions
CN110008231B (zh
Inventor
刘德建
詹彦安
范福生
黄钟贵
江洪
郑含章
李正
郑涛
岳万恕
陈宏展
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Tianyi Network Technology Co Ltd
Original Assignee
Fujian Tianyi Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Tianyi Network Technology Co Ltd filed Critical Fujian Tianyi Network Technology Co Ltd
Priority to CN201910207627.7A priority Critical patent/CN110008231B/zh
Publication of CN110008231A publication Critical patent/CN110008231A/zh
Application granted granted Critical
Publication of CN110008231B publication Critical patent/CN110008231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Machine Translation (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供MySQL数据回溯的方法、存储介质,方法包括:S1:获取MySQL执行语句集合;S2:获取目标数据对应的目标数据字段;S3:依据目标数据字段及其对应MySQL的表,获取当前匹配数据字段;S4:将MySQL执行语句集合文末设置为当前匹配起始位置;S5:由当前匹配起始位置开始倒序匹配当前匹配数据字段,获取对应的执行语句;S6:解析执行语句之前的其他执行语句,获取对执行语句内容变更的执行语句;S7:依据获取的执行语句获取最新的匹配数据字段,将S6获取执行语句的位置设置为当前匹配起始位置,返回执行S5;S8:顺序整合获取的执行语句。本发明便于数据审计、监管,且实现方式更便捷更有效。

Description

MySQL数据回溯方法、存储介质
技术领域
本发明涉及数据库数据分析领域,具体涉及MySQL数据回溯方法、存储介质。
背景技术
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库中,由此增加速度并提高了灵活性。但是,这也同时增加了MySQL数据解析和查询的难度。
本发明提供一种MySQL数据回溯的方法和对应的存储介质,能够推算MySQL数据的完整变化过程,从而实现MySQL数据变化的回溯,有利于MySQL数据的审计和监管,且相较于现有技术而言,无需业务做任务调整便可实现,更方便、更高效。
发明内容
本发明所要解决的技术问题是:提供一种MySQL数据回溯的方法和对应的存储介质,能够实现MySQL数据变化的回溯,便于数据审计和监管。
为了解决上述技术问题,本发明采用的技术方案为:
一种MySQL数据回溯的方法,包括:
S1:解析数据库binlog日志文件,获取MySQL执行语句集合;
S2:查询数据表,获取目标数据对应的目标数据字段;
S3:依据所述目标数据字段及其对应MySQL的表,获取当前匹配数据字段;
S4:将所述MySQL执行语句集合的文末设置为当前匹配起始位置;
S5:由所述当前匹配起始位置开始倒序匹配当前匹配数据字段,获取对应的执行语句;
S6:解析所获取的执行语句之前预设范围内的其他执行语句,从所述其他执行语句中获取对应所述所获取的执行语句进行内容变更的执行语句;
S7:依据S6步骤获取的执行语句获取最新的匹配数据字段,并将S6步骤获取执行语句的位置设置为当前匹配起始位置,然后返回执行S5步骤,直至无法再获取执行语句;
S8:顺序整合每次获取的执行语句,获取目标数据的变化过程。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述MySQL数据回溯的方法所包含的步骤。
本发明的有益效果在于:本发明能够通过MySQL日志推算数据变化过程,回溯数据生成的全过程,从而为数据审计、监管数据变化提供支持。具体由目标数据字段及其对应MySQL的表获取匹配数据字段后与解析得到的MySQL执行语句集合进行匹配来获取相关执行语句,再逐步逆向推算前一次的数据变化记录信息,以回溯目标数据的完整变化过程。本发明区别于现有技术,无需业务做任务调整就能获取目标数据的变化过程,能更方便、更有效地实现数据审计和监管。
附图说明
图1为本发明实施例一种MySQL数据回溯的方法的流程示意图;
图2为本发明实施例一的MySQL数据回溯的方法的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过MySQL日志推算数据变化过程,回溯数据生成的全过程,从而为数据审计、监管数据变化提供支持。
本发明涉及的技术术语解释:
请参照图1,本发明提供一种MySQL数据回溯的方法,包括:
S1:解析数据库binlog日志文件,获取MySQL执行语句集合;
S2:查询数据表,获取目标数据对应的目标数据字段;
S3:依据所述目标数据字段及其对应MySQL的表,获取当前匹配数据字段;
S4:将所述MySQL执行语句集合的文末设置为当前匹配起始位置;
S5:由所述当前匹配起始位置开始倒序匹配当前匹配数据字段,获取对应的执行语句;
S6:解析所获取的执行语句之前预设范围内的其他执行语句,从所述其他执行语句中获取对应所述所获取的执行语句进行内容变更的执行语句;
S7:依据S6步骤获取的执行语句获取最新的匹配数据字段,并将S6步骤获取执行语句的位置设置为当前匹配起始位置,然后返回执行S5步骤,直至无法再获取执行语句;
S8:顺序整合每次获取的执行语句,获取目标数据的变化过程。
从上述描述可知,本发明的有益效果在于:能够通过MySQL日志推算数据变化过程,回溯数据生成的全过程,从而为数据审计、监管数据变化提供支持。具体由目标数据字段及其对应MySQL的表获取匹配数据字段后与解析得到的MySQL执行语句集合进行匹配来获取相关执行语句,再逐步逆向推算前一次的数据变化记录信息,以回溯目标数据的完整变化过程。本发明区别于现有技术,无需业务做任务调整就能获取目标数据的变化过程,能更方便、更有效地实现数据审计和监管。
进一步的,所述S1:解析数据库binlog日志文件,获取MySQL执行语句集合,具体为:
S10:依据目标数据确定目标时间段;
S11:解析对应所述目标时间段的数据库binlog日志文件,获取对应的MySQL执行语句集合。
由上述描述可知,能够针对性地只对与目标时间段对应的数据库binlog日志文件进行解析,提高文件解析效率和数据追踪效率。
进一步的,所述目标数据包括用户账号及其关联数据;
所述S2:查询数据表,获取目标数据对应的目标数据字段;具体为:
S21:依据用户账号查询数据库的用户数据表,获取用户账号对应的目标数据字段;
S22:获取目标数据对应的包括所述用户账号对应的目标数据字段和所述关联数据的目标数据字段。
由上述描述可知,能够以用户账号对应MySQL执行语句的表述方式(键值)作为匹配条件之一,更准确地锁定用户账号的关联数据的变化过程。
进一步的,所述S3:依据所述目标数据字段及其对应MySQL的表,获取当前匹配数据字段;具体为:
S3:获取由用户账号、所述关联数据及其对应MySQL的表组成的当前匹配数据字段。
由上述描述可知,匹配条件包括用户账号、关联数据及其对应其对应MySQL的表构成,匹配的效率更高、匹配的针对性更高。
进一步的,若首次执行所述S5步骤的匹配结果若为无法获取对应的执行语句,则结束流程;若能获取对应的执行语句,则继续执行S6步骤。
由上述描述可知,本发明对应数据回溯为逆序匹配的过程,若匹配至MySQL执行语句集合的第一条执行语句均无法匹配成功,则数据回溯失败,及时结束流程;该结果对应目标数据出错,如关联数据与用户账号无法对应、用户账号出错等问题;且对应该匹配结果的数据回溯结果有效,同样具备参考意义,例如,可据此判定在所述用户账号准确无误的情况下,判定关联数据与用户账号不具备对应性。而匹配成功的情况,则可以依据所获取的执行语句推算下一次变化。
进一步的,S7:依据S6步骤获取的执行语句获取最新的匹配数据字段,并将S6步骤获取执行语句的位置设置为当前匹配起始位置,然后返回执行S5步骤,直至无法再获取执行语句;具体为:
S71:依据S6步骤获取的执行语句获取所述关联数据对应S3步骤所述表的键值,并依据所述键值与所述表获取最新的匹配数据字段;
S72:将获取执行语句的位置设置为当前匹配起始位置;
S73:由所述MySQL执行语句集合的当前匹配起始位置开始倒序与当前匹配数据字段进行匹配,获取对应的执行语句;
S74:解析S73步骤所获取的执行语句之前预设行数内的其他执行语句,判断是否能从所述其他执行语句中获取对应S73所获取的执行语句进行内容变更的执行语句;若是,则执行S75;若否,则执行S8;
S75:依据S74步骤获取的执行语句获取最新的匹配数据字段,返回执行S72步骤。
由上述描述可知,通过上述步骤,不断的循环重新确定匹配数据字段、匹配、解析、获取执行语句的步骤,能准确无误地逆向推算出目标数据的来源。
进一步的,所述关联数据为经验值、交互值或物品编码。
由上述描述可知,通过本申请,可以回溯与用户账号关联的经验值、交互值或物品的数据来源,为该数据的审计和监察提供准确地技术支持。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述一种MySQL数据回溯的方法所包含的步骤。
从上述描述可知,本发明的有益效果在于:对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程,且在执行后,能实现通过MySQL日志逆向推算数据变化过程,获取数据生成的全过程,从而为数据审计、监管数据变化提供支持;区别于现有技术,无需业务做任务调整就能获取目标数据的变化过程,能更方便、更有效地实现数据审计和监管的效果。
实施例一
本实施例提供一种MySQL数据回溯的方法,能够实现对目标数据变化过程的回溯,更方便、更准确地对目标数据进行审计和监察。
请参阅图2,具体包括以下步骤:
S1:获取(同步)MySQL数据库的binlog日志文件,并将其解析成可执行的明文MySQL执行语句集合。
可选地,所述MySQL执行语句集合以列表形式存储。
可选地,使用mysqlbinlog命令解析binlog日志文件。
优选地,所述S1具体包括:
S10:依据目标数据确定目标时间段;
S11:解析对应所述目标时间段的数据库binlog日志文件,获取对应的MySQL执行语句集合。
例如,有一张角色经验值记录表记录有玩家张三在2019-01-01的经验值达到10000,但GM在2019-01-05时想确认这个1000点是如何来的。此时,目标数据为玩家张三的经验值,可以设定目标时间段为当前时间点往前一定时间范围(一周或一个月),然后具备针对性地解析获取对应该这一时间段的binlog日志文件。如解析2018-12-30到2019-01-06之间MySQL的binlog日志文件,得到对应的MySQL执行语句集合。
依据目标时间段具有针对性地解析binlog日志文件,能准确且高效地仅提取出具备分析价值的MySQL执行语句集合,同时又能在一定程度上兼容人工记忆误差产生的错误。不仅提高了MySQL执行语句集合的获取效率和后续匹配获取执行语句的效率;同时又能确保分析结果的准确性。
S2:查询数据表,获取目标数据对应的目标数据字段。
其中,所述目标数据可以包括用户账号及其关联数据;所述关联数据可以是经验值、交互值或物品编码等其他与该用户账号当前或曾经具备关联关系的数据。对应上述实例,所述目标数据为玩家张三及其经验值。
其中,所述目标数据字段为目标数据在MySQL执行语句中的表述方式。例如,玩家张三在MySQL执行语句中使用其对应用户数据表的user_id进行表示;而其关联数据为交互值或经验值或物品编码的情况下,直接用交互值或经验值或物品编码表示。
具体而言,S2步骤具体为:
S21:依据用户账号查询数据库的用户数据表,获取用户账号对应的第一目标数据字段;
S22:获取由用户账号对应的第一目标数据字段以及以交互值/经验值/物品编码为第二目标数据字段共同组成的目标数据字段。
例如,依据玩家张三的用户账号查询数据库的用户数据表,得到其user_id为1;所述“user_id:1”即为用户账号对应的目标数据字段。而所述关联数据一般情况下无需另外查询数据库,可直接获取,这是因为在MySQL执行语句中通常直接使用关联数据本身进行表述。如目标数据为玩家张三的当前经验值;则关联数据为具体的经验值。因此,对应“玩家张三的当前经验值”这一目标数据,其目标数据字段可以为user_id:1+score:10000。
S3:依据所述目标数据字段及其对应MySQL的表,获取当前匹配数据字段;
具体而言,将依据上一步骤获取的目标数据字段及其对应MySQL的表构建匹配数据字段,即匹配条件。所述表具体依据目标数据进行确定。例如,目标数据为某用户的经验值,可知改变用户的经验值需要通过操作用户表实现,则所述表对应用户表。这是因为MySQL数据库中是分表存储的,依据目标数据选取对应表进行匹配,更具针对性,匹配效率更高,准确度也更高。
S4:将所述MySQL执行语句集合的文末设置为当前匹配起始位置。
由于是数据回溯的过程,因此需要从文末开始分析数据来源。
S5:由所述当前匹配起始位置开始倒序匹配当前匹配数据字段,获取对应的执行语句。
即,从MySQL执行语句集合的最后一个执行语句开始逆序分析每一条执行语句。
特别的,若上述步骤的匹配结果为无法获取对应的执行语句,则结束流程。此种情况对应匹配条件,即匹配数据字段出错的情况,若用户账号及其对应的id无误,且所述表无误(上述数据准确性的确认不存在难度),则只可能是关联数据有误,若关联数据本身确认无误,则证明该用户与关联关系不存在对应关系。该匹配结果同样具备参考价值。
若匹配结果为能够获取对应的执行语句,则继续执行S6步骤。
S6:解析所获取的执行语句之前预设范围内的其他执行语句,从所述其他执行语句中获取对应所述所获取的执行语句进行内容变更的执行语句。
具体而言,将依据S5获取的执行语句,解析出对该执行语句进行变更的内容,由于是逆向推理过程,因此该内容通常在执行语句之前的几行内,针对性的解析执行语句之后预设行数即可。
S7:依据S6步骤获取的执行语句获取最新的匹配数据字段,并将S6步骤获取执行语句的位置设置为当前匹配起始位置,然后返回执行S5步骤,直至无法再获取执行语句;
具体而言,依据上一步骤获取的执行语句(对S6的执行语句进行变更的执行语句),确定新的匹配数据字段。
例如,经过步骤S5至S7得到下述两条执行语句:
UPDATE游戏等级SET经验值+=1000WHERE编号=1;
UPDATE游戏等级SET经验值+=500WHERE编号=1;
由“UPDATE游戏等级SET经验值+=1000WHERE id=1”可知,当前值10000逆向得到上一次9000;
由“UPDATE游戏等级SET经验值+=500WHERE id=1”可知,当前值9000逆向得到上一次8500;
然后,获取最新的匹配数据字段:
INSERT INTO游戏等级(编号,人物,经验值)VALUES(1,’张三’,8500)然后返回执行S5步骤进行匹配。
优选的,所述S7步骤具体包括:
S71:依据S6步骤获取的执行语句获取所述关联数据对应S3步骤所述表的键值,并依据所述键值与所述表获取最新的匹配数据字段;
所述键值,即经验值对应用户表的id;构建由所述键值和所述表“用户表”构成的最新匹配数据字段。
S72:将最近一次获取执行语句的位置设置为当前匹配起始位置;用于继续往上逆推。
S73:由所述MySQL执行语句集合的当前匹配起始位置开始倒序与当前匹配数据字段进行匹配,获取对应的执行语句;即逆推获取上一次数据变化的记录。
S74:解析S73步骤所获取的执行语句之前预设行数内的其他执行语句,判断是否能从所述其他执行语句中获取对应S73所获取的执行语句进行内容变更的执行语句;若是,则执行S75;若否,则执行S8;
通过该步骤继续逆序解析出变更的内容,通过逆向计算上一次对应值,获取上一次数据变化的完整信息;若无法获取进行内容变更的执行语句,则证明为当前关联数据的起始数值,通过执行S8整理完整数据变化过程。
S75:依据S74步骤获取的执行语句获取最新的匹配数据字段,返回执行S72步骤。
若能不断的逆向解析出变更的内容,则不断逆向推理下一次对应值,直至不再变更为止。
S8:顺序整合每次获取的执行语句,获取目标数据的变化过程。
由于每次获取的执行语句都对应目标数据变更情况的记录,因此通过整合执行语句,即可获取对应目标数据的完整变化过程,例如经验值从初始值到当前值的变化过程。
实施例二
本实施例提供一具体运用场景:
假设发现玩家1的等级经验值580025比较怪异,达到一个正常没法达到的值,这时候想去看下该玩家为什么会达到这样的值时,可以使用实施例一的方法进行如下操作;
这里假设用户账号不是当天创建的,是很早以前就创建了,从创建时候往当前分析需要消耗非常大的资源,因此选择从当前往回推。
1、依据玩家1的用户账号,可以得到其对应user表的id值为1;其中,user数据表是数据库中当前user表的数据,格式可以如下表1所示:
id username level score
1 玩家1 30 580025
2 玩家2 3 1500
3 玩家3 2 1500
4 玩家4 0 1350
表1
2、把binlog日志(原始文件)通过mysqlbinlog解析成内容为MySQL执行语句集合的文件;
3、从文件的最后一行开始倒顺分析文件内容,找出执行语句是操作用户表并且操作记录中的user_id为1的记录,可以据此找到最早的一条记录为:
UPDATE`user`SET`score`='580025'WHERE(`id`='1')LIMIT 1;
与当前数据比较,其经验值score=580025相符合;
获取数据:
id username level score
--------------------------------------
1 玩家1 30 580025
4、继续逆序分析文件内容,找下一条记录,可以找到:
UPDATE`user`SET`score`='580030'WHERE(`id`='1')LIMIT 1;
结合上一条数据逆推算,可以得到:
id username level score
------------------------------------
1 玩家1 30 580030
可知,玩家1的变为经验值580025之前的值为580030。
同理继续逆向分析可获取每一次经验值的变化,从而获知当前经验值的来源。下述为顺序整理得到的玩家1当前经验值的逆序变化过程:
日志时间:190202 16:47:06
UPDATE`user`SET`score`='580025'WHERE(`id`='1')LIMIT 1
id username level score
------------------------------------------------------
1 玩家1 30 580025
日志时间:190202 16:46:58
UPDATE`user`SET`score`='580030'WHERE(`id`='1')LIMIT 1
id username level score
------------------------------------------------------
1 玩家1 30 580030
日志时间:190202 16:46:51
UPDATE`user`SET`score`='580010'WHERE(`id`='1')LIMIT 1
id username level score
------------------------------------------------------
1 玩家1 30 580010
日志时间:190202 16:46:41
UPDATE`user`SET`score`='58008'WHERE(`id`='1')LIMIT 1
id username level score
------------------------------------------------------
1 玩家1 30 58008
日志时间:190202 14:31:56
UPDATE`user`SET`level`='30',`score`='5800'WHERE(`id`='1')LIMIT 1
id username level score
------------------------------------------------------
1 玩家1 30 5800
日志时间:190202 14:31:06
UPDATE`user`SET`level`='2',`score`='1400'WHERE(`id`='1')LIMIT 1
id username level score
------------------------------------------------------
1 玩家1 2 1400。
由此可知,玩家1的当前经验值580030是在日志时间:190202 14:31:06时发生了突变,上述数据变化过程可以作为数据审计的技术支持。
实施例三
本实施例对应实施例一和实施例二,提供一种具体实例,用于对步骤S5和S6的匹配和解析执行语句的方法做进一步限定。
以一个MySQL执行语句集合的一个具体片段为例进行说明:
具体片段内容如下:
#at 1213
#190202 14:25:18 server id 1 end_log_pos 1045 CRC32 0x41e66b40 IntvarSET INSERT_ID=1/*!*/;
#190202 14:25:18 server id 1 end_log_pos 1197 CRC32 0x8466c9e5 Querythread_id=9 exec_time=0 error_code=0
SET TIMESTAMP=1549088718/*!*/;
INSERT INTO`user`(`username`,`level`,`score`)VALUES('玩家1','0','0')/*!*/;
上述片段中,“#”开头的行为非操作行,说明行;
其中,SET设置值;SET INSERT_ID=1设置插入语句的主键自增编号为1;SETTIMESTAMP=1549088718设置当前时间戳。
因此,可以通过匹配INSERT、UPDATE、DELETE操作语句,得到具体的操作语句行;
SQL语句的解析方式主要分几个部分:操作类型、操作表、赋值、约束条件;可同时判断赋值部分和约束部分来匹配是不是业务要的语句;
例如,上述语句可解析为:操作类型INSERT;操作表user;赋值:username=玩家1,level=0,score=0,id=1。
实施例四
本实施例对应实施例一至实施例三,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一至实施例三任意一个实施例所述的一种MySQL数据回溯的方法所包含的步骤。具体的步骤内容在此不进行复述,详情请参阅上述记载。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本发明提供的一种MySQL数据回溯的方法、存储介质,能够实现目标数据变化过程的回溯,便于数据审计、监管;同时,无需业务做任务调整即可实现,实现方式更便捷更有效;进一步的,本发明的数据分析处理更具针对性,能显著提高结果获取效率,同时保证结果准确性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种MySQL数据回溯的方法,其特征在于,包括:
S1:解析数据库binlog日志文件,获取MySQL执行语句集合;
S2:查询数据表,获取目标数据对应的目标数据字段;
S3:依据所述目标数据字段及其对应MySQL的表,获取当前匹配数据字段;
S4:将所述MySQL执行语句集合的文末设置为当前匹配起始位置;
S5:由所述当前匹配起始位置开始倒序匹配当前匹配数据字段,获取对应的执行语句;
S6:解析所获取的执行语句之前预设范围内的其他执行语句,从所述其他执行语句中获取对应所述所获取的执行语句进行内容变更的执行语句;
S7:依据S6步骤获取的执行语句获取最新的匹配数据字段,并将S6步骤获取执行语句的位置设置为当前匹配起始位置,然后返回执行S5步骤,直至无法再获取执行语句;
S8:顺序整合每次获取的执行语句,获取目标数据的变化过程。
2.如权利要求1所述的一种MySQL数据回溯的方法,其特征在于,所述S1:解析数据库binlog日志文件,获取MySQL执行语句集合,具体为:
S10:依据目标数据确定目标时间段;
S11:解析对应所述目标时间段的数据库binlog日志文件,获取对应的MySQL执行语句集合。
3.如权利要求1所述的一种MySQL数据回溯的方法,其特征在于,所述目标数据包括用户账号及其关联数据;
所述S2:查询数据表,获取目标数据对应的目标数据字段;具体为:
S21:依据用户账号查询数据库的用户数据表,获取用户账号对应的目标数据字段;
S22:获取目标数据对应的包括所述用户账号对应的目标数据字段和所述关联数据的目标数据字段。
4.如权利要求3所述的一种MySQL数据回溯的方法,其特征在于,所述S3:依据所述目标数据字段及其对应MySQL的表,获取当前匹配数据字段;具体为:
S3:获取由用户账号、所述关联数据及其对应MySQL的表组成的当前匹配数据字段。
5.如权利要求4所述的一种MySQL数据回溯的方法,其特征在于,若首次执行所述S5步骤的匹配结果为无法获取对应的执行语句,则结束流程;若能获取对应的执行语句,则继续执行S6步骤。
6.如权利要求4所述的一种MySQL数据回溯的方法,其特征在于,S7:依据S6步骤获取的执行语句获取最新的匹配数据字段,并将S6步骤获取执行语句的位置设置为当前匹配起始位置,然后返回执行S5步骤,直至无法再获取执行语句;具体为:
S71:依据S6步骤获取的执行语句获取所述关联数据对应S3步骤所述表的键值,并依据所述键值与所述表获取最新的匹配数据字段;
S72:将获取执行语句的位置设置为当前匹配起始位置;
S73:由所述MySQL执行语句集合的当前匹配起始位置开始倒序与当前匹配数据字段进行匹配,获取对应的执行语句;
S74:解析S73步骤所获取的执行语句之前预设行数内的其他执行语句,判断是否能从所述其他执行语句中获取对应S73所获取的执行语句进行内容变更的执行语句;若是,则执行S75;若否,则执行S8;
S75:依据S74步骤获取的执行语句获取最新的匹配数据字段,返回执行S72步骤。
7.如权利要求3所述的一种MySQL数据回溯的方法,其特征在于,所述关联数据为经验值、交互值或物品编码。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-7任意一项所述的一种MySQL数据回溯的方法所包含的步骤。
CN201910207627.7A 2019-03-19 2019-03-19 MySQL数据回溯方法、存储介质 Active CN110008231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910207627.7A CN110008231B (zh) 2019-03-19 2019-03-19 MySQL数据回溯方法、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910207627.7A CN110008231B (zh) 2019-03-19 2019-03-19 MySQL数据回溯方法、存储介质

Publications (2)

Publication Number Publication Date
CN110008231A true CN110008231A (zh) 2019-07-12
CN110008231B CN110008231B (zh) 2021-04-27

Family

ID=67167424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910207627.7A Active CN110008231B (zh) 2019-03-19 2019-03-19 MySQL数据回溯方法、存储介质

Country Status (1)

Country Link
CN (1) CN110008231B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515907A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种分布式存储节点的数据同步方法及相关装置
CN112883014A (zh) * 2021-03-25 2021-06-01 上海众源网络有限公司 数据回溯方法、装置、计算机设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653624B1 (en) * 2005-04-18 2010-01-26 Emc Corporation File system change tracking
US8589357B2 (en) * 2006-10-20 2013-11-19 Oracle International Corporation Techniques for automatically tracking and archiving transactional data changes
US20140114905A1 (en) * 2012-10-18 2014-04-24 Oracle International Corporation Associated information propagation system
CN104424269A (zh) * 2013-08-30 2015-03-18 中国电信股份有限公司 数据血统分析方法与装置
CN104915390A (zh) * 2015-05-25 2015-09-16 广州精点计算机科技有限公司 一种etl数据血统查询系统及查询方法
US9659042B2 (en) * 2012-06-12 2017-05-23 Accenture Global Services Limited Data lineage tracking
CN106991196A (zh) * 2017-05-02 2017-07-28 山东浪潮通软信息科技有限公司 一种通用的数据追溯方法及系统
CN107169023A (zh) * 2017-04-07 2017-09-15 广东精点数据科技股份有限公司 基于sql语义自动解析的数据血统分析系统及方法
CN109325078A (zh) * 2018-09-18 2019-02-12 拉扎斯网络科技(上海)有限公司 基于结构数据的数据血缘确定方法及装置
CN109446279A (zh) * 2018-10-15 2019-03-08 顺丰科技有限公司 基于neo4j大数据血缘关系管理方法、系统、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653624B1 (en) * 2005-04-18 2010-01-26 Emc Corporation File system change tracking
US8589357B2 (en) * 2006-10-20 2013-11-19 Oracle International Corporation Techniques for automatically tracking and archiving transactional data changes
US9659042B2 (en) * 2012-06-12 2017-05-23 Accenture Global Services Limited Data lineage tracking
US20140114905A1 (en) * 2012-10-18 2014-04-24 Oracle International Corporation Associated information propagation system
CN104424269A (zh) * 2013-08-30 2015-03-18 中国电信股份有限公司 数据血统分析方法与装置
CN104915390A (zh) * 2015-05-25 2015-09-16 广州精点计算机科技有限公司 一种etl数据血统查询系统及查询方法
CN107169023A (zh) * 2017-04-07 2017-09-15 广东精点数据科技股份有限公司 基于sql语义自动解析的数据血统分析系统及方法
CN106991196A (zh) * 2017-05-02 2017-07-28 山东浪潮通软信息科技有限公司 一种通用的数据追溯方法及系统
CN109325078A (zh) * 2018-09-18 2019-02-12 拉扎斯网络科技(上海)有限公司 基于结构数据的数据血缘确定方法及装置
CN109446279A (zh) * 2018-10-15 2019-03-08 顺丰科技有限公司 基于neo4j大数据血缘关系管理方法、系统、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
毛瑞雪: "基于数据血缘的审计证据追踪技术研究与应用", 《中国优秀硕士学位论文全文数据库》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515907A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种分布式存储节点的数据同步方法及相关装置
CN110515907B (zh) * 2019-08-16 2022-03-08 济南浪潮数据技术有限公司 一种分布式存储节点的数据同步方法及相关装置
CN112883014A (zh) * 2021-03-25 2021-06-01 上海众源网络有限公司 数据回溯方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110008231B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN105512042B (zh) 一种数据库的测试数据的自动生成方法、装置及测试系统
CN108536752B (zh) 一种数据同步方法、装置和设备
CN110292775B (zh) 获取差异数据的方法及装置
CN105373541B (zh) 数据库的数据操作请求的处理方法和系统
EP3218811B1 (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
CN107544984A (zh) 一种数据处理的方法和装置
US8661341B1 (en) Simhash based spell correction
CN110008231A (zh) MySQL数据回溯方法、存储介质
CN106484699B (zh) 数据库查询字段的生成方法及装置
CN111008521A (zh) 生成宽表的方法、装置及计算机存储介质
US20170091082A1 (en) Test db data generation apparatus
CN108241676A (zh) 实现数据同步的方法及设备
West Modelling expert opinion
CN110737432B (zh) 一种基于词根表的脚本辅助设计方法及装置
EP3633669A1 (en) Method and apparatus for correcting time delay between accompaniment and dry sound, and storage medium
CN109191078A (zh) 一种流程业务建模方法、装置及设备
CN109409531A (zh) 一种基于序列化文件的机器学习方法、装置及设备
CN110427470B (zh) 问答处理方法、装置及电子设备
CN109992598A (zh) MySQL数据审计方法、存储介质
CN109978430A (zh) 一种解析用户地址的方法、装置、服务器及存储介质
CN110647421B (zh) 数据库处理方法、装置、系统以及电子设备
CN112434062A (zh) 准实时数据处理方法、装置、服务器及存储介质
CN109977134A (zh) MySQL数据追踪方法、存储介质
CN109660587B (zh) 基于随机数的数据推送方法、装置、存储介质及服务器
Sylim et al. Development of a low-cost electronic data collection tool for a health facility survey: lessons learned in the field

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant