CN109213826B - 数据处理方法和设备 - Google Patents

数据处理方法和设备 Download PDF

Info

Publication number
CN109213826B
CN109213826B CN201710527452.9A CN201710527452A CN109213826B CN 109213826 B CN109213826 B CN 109213826B CN 201710527452 A CN201710527452 A CN 201710527452A CN 109213826 B CN109213826 B CN 109213826B
Authority
CN
China
Prior art keywords
data
information
query
object information
ancestry
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.)
Active
Application number
CN201710527452.9A
Other languages
English (en)
Other versions
CN109213826A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710527452.9A priority Critical patent/CN109213826B/zh
Publication of CN109213826A publication Critical patent/CN109213826A/zh
Application granted granted Critical
Publication of CN109213826B publication Critical patent/CN109213826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据处理方法和设备,用于高效地建立数据源的数据和使用该数据的使用对象信息的对应关系。本发明实施例方法包括:从数据源获取使用对象信息和SQL语句,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息;根据SQL语句构建局部查询血统,局部查询血统用于记载该数据的处理历史;从局部查询血统获取该数据;建立该数据和使用对象信息的对应关系。从数据源获取使用对象信息和SQL语句,通过获取数据源的SQL语句即获取了数据源存储的数据。然后,先根据SQL语句构建局部查询血统,再从局部查询血统获取数据源存储的数据。这样,数据处理设备即可自动且高效地建立数据和使用对象信息的对应关系。

Description

数据处理方法和设备
技术领域
本发明涉及数据管理领域,尤其涉及一种数据处理方法和设备。
背景技术
数据的变化往往会使得数据的使用对象受到影响,为此,在数据管理领域需要进行数据迁移影响分析,以分析数据的结构或位置变化后影响到的使用对象。
现有的分析方式是,使用人工方式分别收集数据源的数据和使用该数据的使用对象信息。从而,可确定出受该数据的变化影响的使用对象。
这样的方式浪费大量的人力物力,执行效率较低。
发明内容
本发明实施例提供了一种数据处理方法和设备,用于高效地建立数据源的数据和使用该数据的使用对象信息的对应关系。
本发明实施例的第一方面提供一种数据处理方法,该方法包括:从数据源获取使用对象信息和SQL语句,其中,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息。执行本发明实施例的方法的数据处理设备可从一个数据源中获取一个或多个SQL语句。该使用对象信息包括但不限于用户信息、应用程序信息等。该数据源存储的数据包括但不限于数据库信息、表信息、列信息和视图等。然后,根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史,从局部查询血统可方便获取该数据源存储的数据。例如,该局部查询血统是一种树形数据结构,用树的深度优先或广度优先算法遍历局部查询血统,找出局部查询血统的树中的叶子结点。该叶子节点即为数据源存储的数据。获取该数据后,即可使用该数据和使用对象信息建立数据和使用对象信息的对应关系。在该对应关系中,使用对象信息是使用该数据的对象的信息。
这样,通过获取数据源的SQL语句即获取了数据源存储的数据。而从数据源获取使用对象信息和SQL语句,使得使用对象信息为使用该SQL语句包括的该数据的对象的信息。然后,先根据SQL语句构建局部查询血统,因局部查询血统用于记载数据的处理历史,从而可以从局部查询血统获取数据源存储的数据,这样的数据获取方式更简便高效。从而,数据处理设备即可建立数据和使用对象信息的对应关系。通过这样的方式,设备可自动且高效地建立数据和使用对象信息的对应关系,从而节省了成本。
结合本发明实施例的第一方面,在本发明实施例的第一方面的第一种实现方式中,从数据源获取使用对象信息和SQL语句,包括:从数据源的DBMS日志获取使用对象信息和SQL语句。例如,通过文件监控工具监控DBMS日志,以提取并收集使用对象信息和SQL语句。从DBMS日志获取相关信息的方式可适用于多种数据源类型,使得本发明实施例的方法适用范围广。
结合本发明实施例的第一方面的第一种实现方式,本发明实施例的第一方面的第二种实现方式中,从数据源的DBMS日志获取使用对象信息和SQL语句之前,本实现方式的方法还包括:确定目标数据源的类型,该目标数据源为待连接的数据源。例如,从数据源的表信息中的元数据中获取目标数据源的类型信息,从而可确定目标数据源的类型。然后,根据预先建立的数据源的类型和插件的对应关系,从预存的插件池获取与目标数据源的类型对应的目标插件,其中插件池包括至少一个插件。从而,数据处理设备通过目标插件接入目标数据源,以从目标数据源的DBMS日志获取使用对象信息和SQL语句。插件为预先开发的用于接入数据源的程序模块,不同的插件可分别对应于不同数据源的特有部分,这样,通过插件,本发明实施例的方法可实现数据源的自动适配,并连接不同的数据源,以获取数据源的信息。
结合本发明实施例的第一方面,在本发明实施例的第一方面的第三种实现方式中,根据SQL语句构建局部查询血统,包括:使用explain命令对SQL语句进行处理,以生成查询计划。然后,解析查询计划,得到局部查询血统。因DBMS支持explain命令语句,而通过解析查询计划可得到局部查询血统,从这样得到局部查询血统的方式较为通用,有助于从不同数据源上正确获取到局部查询血统。
结合本发明实施例的第一方面,在本发明实施例的第一方面的第四种实现方式中,可在多个数据源的场景实现本发明实施例的方法,此时,从数据源获取使用对象信息和SQL语句,包括:从多个数据源获取使用对象信息和SQL语句,以得到多个SQL语句。相应地,根据SQL语句构建局部查询血统,包括:根据每一SQL语句分别构建局部查询血统,得到多个局部查询血统。而从局部查询血统获取数据,包括:从每一局部查询血统获取数据。
相应地,建立数据和使用对象信息的对应关系,包括:根据属于同一数据源的数据和使用对象信息,建立数据和使用对象信息的对应关系。属于同一数据源的数据和使用对象信息,表示该使用对象信息为使用该数据源的数据的对象。
这样,即可从多个数据源获取使用对象信息和SQL语句,以建立出数据和使用对象信息的多个对应关系。
结合本发明实施例的第一方面的第四种实现方式,在本发明实施例的第一方面的第五种实现方式中,根据每一SQL语句分别构建局部查询血统,得到多个局部查询血统之后,本发明实现方式的方法还包括:整合多个局部查询血统,得到全局查询血统。这样即可通过多个局部查询血统得到全局查询血统,从而将该多个局部查询血统的数据关联起来,得到更为丰富的数据的血统信息。
结合本发明实施例的第一方面的第五种实现方式,在本发明实施例的第一方面的第六种实现方式中,根据属于同一数据源的数据和使用对象信息,建立数据和使用对象信息的对应关系之后,本实现方式的方法还包括:获取目标数据,该目标数据例如可以为待修改的数据、管理员需要查询的数据等。因全局查询血统由多个局部查询血统得到,全局查询血统的数据间的关系信息更为丰富。从而根据目标数据从全局查询血统可获取衍生数据,该衍生数据由目标数据衍生得到。然后,从对应关系中,确定分别与目标数据和衍生数据对应的使用对象信息。可以同时使用目标数据和其衍生数据从对应关系中获取使用对象信息,也可以先后使用目标数据和其衍生数据从对应关系中获取使用对象信息。根据目标数据从该对应关系中获取的使用对象信息,为直接受该目标数据影响的使用对象信息;根据衍生数据从对应关系中获取的使用对象信息,因衍生数据为目标数据衍生的数据,从而,该使用对象信息也受目标数据的影响。这样,本实现方式的方法可全面高效地获取到与目标数据关联的使用对象信息。
结合本发明实施例的第一方面、或者第一方面的第一种至第六种实现方式中的任意一种,在本发明实施例的第一方面的第七种实现方式中,使用对象信息包括用户信息和/或应用程序信息。即该用户信息为使用该数据的用户的信息,该应用程序信息为使用该数据的应用程序的信息。
结合本发明实施例的第一方面、或者第一方面的第一种至第六种实现方式中的任意一种,在本发明实施例的第一方面的第八种实现方式中,该数据源存储的数据包括数据库信息、表信息、列信息和视图中的一种或多种。
第二方面,本发明实施例中提供一种数据处理设备,该数据处理设备具有上述方法中数据处理设备的功能。该功能可以通过硬件实现,也可能通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
一种可能的实现方式中,该数据处理设备包括:
信息获取模块,用于从数据源获取使用对象信息和SQL语句,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息;
构建模块,用于根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史;
处理模块,用于从局部查询血统获取数据;
处理模块,还用于建立数据和使用对象信息的对应关系。
另一种可能的实现方式中,该数据处理设备包括:
接收器,处理器;
该接收器执行如下动作:从数据源获取使用对象信息和SQL语句,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息;
该处理器执行如下动作:根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史;
该处理器执行如下动作:从局部查询血统获取数据;
该处理器执行如下动作:建立数据和使用对象信息的对应关系。
第三方面,本申请实施例提供一种计算机存储介质,该计算机存储介质存储有程序代码,该程序代码用于指示执行上述第一方面的方法。
本发明实施例的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明实施例的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
从数据源获取使用对象信息和SQL语句,其中,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息。然后,根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史。跟着,从局部查询血统获取数据,从而建立数据和使用对象信息的对应关系。这样,因SQL语句包括数据源存储的数据,通过获取数据源的SQL语句即获取了数据源存储的数据。而从数据源获取使用对象信息和SQL语句,使得使用对象信息为使用该SQL语句包括的该数据的对象的信息。为了建立该数据和使用该数据的对象的使用对象信息的对应关系,先根据SQL语句构建局部查询血统,因局部查询血统用于记载数据的处理历史,从而可以从局部查询血统获取数据源存储的数据,这样的数据获取方式更简便高效。从而,数据处理设备即可建立数据和使用对象信息的对应关系。通过这样的方式,设备可自动建立数据和使用对象信息的对应关系,与人工建立的方式相比,本发明实施例的方法和设备可高效地建立数据源的数据和使用该数据的使用对象信息的对应关系,从而节省了成本。并为管理员提供了数据和使用对象信息的对应关系,通过该对应关系管理员还可确定使用数据的使用对象。
附图说明
图1为本发明一实施例提供的一种查询血统的示意图;
图2为现有的一种自动生成查询血统的方法的示意图;
图3为本发明另一实施例提供的数据处理方法涉及的数据-用户-应用程序的关系的示意图;
图4为本发明另一实施例提供的一种数据处理方法的方法流程图;
图5为本发明另一实施例提供的一种数据处理设备的结构示意图;
图6为本发明另一实施例提供的一种数据处理方法的方法流程图;
图7为图6所示实施例涉及的一种查询血统的示意图;
图8为图6所示实施例涉及的部分执行步骤的示意图;
图9为图6所示实施例涉及的全局查询血统生成与维护的执行示意图;
图10为图6所示实施例涉及的对应关系的存储方式的示意图;
图11为图6所示实施例涉及的数据处理设备的部分模块的执行示意图;
图12为图6所示实施例涉及的数据处理设备的查询模块的执行示意图;
图13为图6所示实施例的数据处理方法的具体执行架构示意图;
图14为本发明实施例提供的一种数据处理设备的结构示意图;
图15是本发明实施例提供的一种数据处理设备的硬件结构示意图。
具体实施方式
本发明实施例提供了一种数据处理方法和设备,用于高效地建立数据源的数据和使用该数据的使用对象信息的对应关系。
为了对本发明实施例提供的数据处理方法和设备有更直观的了解,本发明实施例先介绍本发明实施例的数据处理方法和设备涉及到的一些术语和应用场景。
〃影响分析:
影响分析(Impact Analysis,IA)是指用定性或定量的方式描述影响因子与优化目标之间的关系。影响因子是自变量,优化目标是因变量。影响分析的目标是找出自变量与因变量的关系,评价每个影响因子的重要性,合理地管理与分配资源,使优化目标达到最优。在计算机领域中,影响分析有多种表现形式,其中一种为数据迁移影响分析,它分析数据的结构或位置变化后影响到的业务,程序和用户。数据迁移影响分析的目标是,极小化数据变化或移动带来的影响,即用最小的代价来应对业务变迁对现有系统的影响。
本发明实施例提供的数据处理方法和设备关注多个关系型数据(仓)库之间,数据变化对整个系统的影响(包括对程序/应用和用户的影响)。影响因子是数据的结构或位置,优化目标是极小化数据变化对业务、程序/应用和用户的影响。随着公司发展和业务需要,系统中数据的结构与位置难免会发生变化。影响分析可以让数据管理员快速分析出在什么地方做数据修改影响的下流业务,程序/应用和用户最少,并通知相关的人员或用户做好数据变化的应对方案。
虽然数据迁移影响分析的概念在计算机领域早已存在,但实现数据迁移影响分析的方法十分原始。目前很多小型公司使用人工维护数据-程序-用户目录的方式来实现数据迁移影响分析。当新业务上线或加入时,管理员必需人工找出影响到的程序和用户,浪费大量的人力物力。业务增加新的数据时,须向管理员提出申请,减慢对新业务的响应速度。
下文提供一现有的实现场景:
某企业内部有多种数据(仓)库,多个使用这些数据的应用与用户。随着企业的发展与业务变迁,数据schema难免发生变化。为此,需要执行如下处理:
1)DBA(database administrator,数据库管理员)人工维护多个部门的应用和数据关系;
2)部门要增加或修改表结构时需要向DBA提交申请,DBA更新记录;
3)DBA增加或修改表结构时,需通知相关部们更新相应的应用。
可见现有的做法不但繁锁,而且影响企业业务响应速度。本发明实施例提供的数据处理方法和设备可以自动建立数据-应用程序-用户关系,当数据schema发生变时,能自动发现受影响的应用或用户,并通知相关人员,以减轻DBA的工作量,加快业务响应速度。
〃查询血统:
随着数据库和网络的发展,数据血统(Data Lineage)作为一个独立的研究领域建立起来,其内容主要包括数据血统的计算、存储、传播和查询等。数据血统记载了数据处理的整个历史,包括数据的起源和随着时间推移而演变的整个过程。
本发明实施例提供的数据处理方法和设备关注数据结构变化造成的影响,在有的实施例中,不仅关注直接使用变化数据的应用与用户,还关注使用基于变化数据的衍生数据的应用与用户。而联系变化数据与其衍生数据的桥梁就是数据血统。
数据血统是较为宽泛的概念,本发明实施例关注的是基于SQL(Structured QueryLanguage,结构化查询语言)构建的数据血统,称为查询血统(Query Lineage,QL)。
下面提供一例子以进行说明:
先提供三个SQL语句:
create table t3as select id,canSQL,canShell,payment from t1 where id>1000;
insert into table t3select*from t2 where payment>800 and id<1000anddate=…;
create table t4 as select*from t3 where id>1000 and payment<800。
其中,t1、t2和t3指表信息,表t1,t2是基本表,存放公司员工的基本能力与工资,id是员工编号,canSQL表示是否会SQL,canShell表示是否会Linux Shell编程,payment是每小时工资,data表示员工加入公司的日期。
上述的三个SQL语句表示:
1)第一个SQL用于创建表t3,数据来自表t1中id大于1000的数据。
2)第二个SQL用于将表t2中的id小于1000,工资大于800的员工插入表t3。
3)第三个SQL用于创建表t4,数据来自t3中id大于1000,工资小于800的数据。
上述表间关系可用图1进行表示。其中,图1为查询血统的示意图。
从形式上看,表t3的数据来自表t1和t2,表t4的数据来自表t3(即图1所示的查询血统)。但是,从语义上讲,表t4中的数据与表t2无关,因为t2向t3中插入数据的条件是“payment>800 and id<1000”,而创建表t4的条件是“id>1000 and payment<800”。
设第二个SQL语句会周期性执行,如果管理员执行了如下语句:
alter table t2 drop column canSQL。
即将表t2中的canSQL列删除。
这语句从字面上讲只会影响表t2,但是周期性执行的每二个语句会受到影响,因为表t2的字段与表t3的不对应。
从上述例子可知:1、查询血统是通过查询构建的数据血统;2、数据结构变化造成的影响,不仅要关注直接使用变化数据的应用与用户,还要关注使用变化数据的衍生数据的应用与用户。
〃查询血统的生成:
关于查询血统的生成有多种方式,现举出一二示例:
一种自动生成查询血统的方法,其用操作(Operation)、查询树(Query Tree)构建原始的血统信息。当有新的与数据结构改变相关的操作、查询树生成时,系统会自动维护/更新数据血统。具体使用到了四个模块,如图2所示,其技术方案流程概括如下:
1)原始血统服务模块201:接收原始操作202连同它对应的查询树203,然后将信息传给血统维持模块204。
2)血统维持模块204:它监控新的数据增加,删除,移动等对应的操作205、操作状态206及查询树统计信息207。发现增加,删除,移动等操作后,查找并应用相应规则对原始的查询树进行更新。血统维持模块是整个专利的核心,其中有复杂的规则匹配与逻辑控制流程。
3)血统规则(208,209):规则库209中存放定义好的规则,血统规则208是规则库与血统维持模块204的接口,二者配合将规则应用于原始查询树。具本而言,血统维持模块向血统规则请求规则,然后血统规则从规则库查询到符合条件的规则,并返回给血统规则,最终传给血统维持模块,应用规则。
4)血统输出210:从血统维持模块204输出的更新血统信息,可用于展示与分析。
具体实现细节可参阅专利名称为“AUTOMATIC GENERATION OF A QUERY LINEAGE”(自动生成查询血统),专利号为US20110137922A1的专利申请文件。
〃数据、应用程序信息、用户信息的获取:
数据源存储的数据、以及使用该数据的应用程序、用户是客观存在的,它们之间的关系如图3所示。其中,数据间的关系通过数据血统来描术,用户可通过应用程序使用数据。
其次,关于SQL语句的获取,用户(如远程调用用户)可从数据(仓)库的日志中获取SQL语句。即构建数据-应用程序信息-用户信息三者的对应关系的原始信息是可以获取得到的。详细的获取方式可参阅下文的描述。
根据上文的描述,下文将对本发明实施例提供的数据处理方法和设备进行介绍。
参阅图4,其为本发明实施例提供的一种数据处理方法的方法流程图。参考上文的描述,本发明实施例的数据处理方法,包括:
步骤401:从数据源获取使用对象信息和SQL语句。
其中,SQL语句包括数据源存储的数据,使用对象信息为使用该数据的对象的信息。
例如,该数据源存储的数据包括但不限于数据库信息、表信息、列信息和视图。使用对象信息包括但不限于用户信息、应用程序信息等,该用户信息即使用该数据的用户的信息,例如用户名,该应用程序信息即使用该数据的应用程序的信息,例如应用程序名等。
数据处理设备可以从一个或多个数据源获取使用对象信息和SQL语句。其中,属于同一数据源的使用对象信息和SQL语句包括的数据相互对应。数据处理设备可以从一个数据源获取一个或多个SQL语句。
可以理解,数据处理设备从数据源获取使用对象信息和SQL语句的具体实现方式有多种,例如,如下述图6所示实施例将描述的从数据源的DBMS(Database ManagementSystem,数据库管理系统)日志获取使用对象信息和SQL语句的方式。对此,下文将进行详细描述。
在本发明有的实施例中,从数据源获取使用对象信息和SQL语句的方式还可以如下所示:
1)若DBMS提供相关API(Application Programming Interface,应用程序编程接口),则通过DBMS提供的相关API,数据处理设备只需调用该API即可实现从数据源获取使用对象信息和SQL语句。
2)若系统提供Hook机制,则通过Hook等以插件的方式,主动从DBMS系统的数据源获取使用对象信息和SQL语句。该方式系统开销小。
3)通过扫描日志,从数据源的日志中获取使用对象信息和SQL语句。
步骤402:根据SQL语句构建局部查询血统。
其中,局部查询血统用于记载该数据的处理历史。
数据处理设备获取到SQL语句后,即可使用该SQL语句构建出局部查询血统。其中,局部查询血统为根据一个SQL语句构建得到的查询血统,当从一个数据源可获取多个SQL语句时,可根据该多个SQL语句中的每一SQL语句构建得到局部查询血统。关于查询血统的详细描述可参考上文相应的内容。
步骤403:从局部查询血统获取数据。
数据处理设备得到局部查询血统后,因该局部查询血统包括了数据源存储的数据,从而可以从该局部查询血统中获取数据源存储的数据。
步骤404:建立数据和使用对象信息的对应关系。
根据步骤403获取的数据,以及步骤401获取的使用对象信息,即可建立得到数据和该使用对象信息的对应关系。在该对应关系中,数据和使用对象信息属于同一的数据源,即该使用对象信息为使用该数据的对象的信息。
建立得到该对应关系后,用户即可利用该对应关系确定与数据对应的使用对象信息,当用户需要对一些数据进行修改时,即可根据该对应关系确定受待修改数据影响的使用对象信息。
综上所述,本发明实施例的数据处理方法从数据源获取使用对象信息和SQL语句,其中,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息。然后,根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史。跟着,从局部查询血统获取数据,从而建立数据和使用对象信息的对应关系。这样,因SQL语句包括数据源存储的数据,通过获取数据源的SQL语句即获取了数据源存储的数据。而从数据源获取使用对象信息和SQL语句,使得使用对象信息为使用该SQL语句包括的该数据的对象的信息。为了建立该数据和使用该数据的对象的使用对象信息的对应关系,先根据SQL语句构建局部查询血统,因局部查询血统用于记载数据的处理历史,从而可以从局部查询血统获取数据源存储的数据,这样的数据获取方式更简便高效。从而,数据处理设备即可建立数据和使用对象信息的对应关系。通过这样的方式,设备可自动建立数据和使用对象信息的对应关系,与人工建立的方式相比,本发明实施例的方法和设备可高效地建立数据源的数据和使用该数据的使用对象信息的对应关系,从而节省了成本。
在对本发明实施例的数据处理方法进行进一步的详细描述之前,先对执行本发明实施例的方法的设备涉及到的模块进行简单介绍,以更好地理解下文的详细描述。
在本发明有的实施例中,本发明实施例的数据处理设备可包括如下几个模块:信息获取模块、构建模块、血统整合模块、处理模块、查询模块。在本发明有的实施例中,可将信息获取模块和构建模块集成为第一单元,而将血统整合模块和处理模块集成为第二单元。该数据处理设备还可以包括存储数据库。具体的设备结构示意图可如图5所示。
其中,在第一单元中,信息获取模块利用无侵入的插件方法从数据源的DBMS日志中提取用户信息,应用程序信息和SQL语句。构建模块根据SQL语句构建得到局部血统信息。
第二单元中,血统整合模块用局部查询血统构建并维护全局查询血统,并将该全局查询血统存储于存储数据库中。处理模块统计用户信息、应用程序信息,以及数据源的数据,即数据库信息、表信息、列信息等,可构建出数据-应用程序信息-用户信息三者的对应关系,并将该对应关系存于存储数据库中。
查询模块可使得管理员可以查询数据-应用程序信息-用户信息的对应关系,也可以查询数据schema更改影响到应用程序信息标识的应用程序和/或用户信息标识的用户。在构建得到全局查询血统的实施例中,管理员还可以通过查询模块确定目标数据的衍生数据,以及与衍生数据对应的用户信息和应用程序信息。
该图5所示的数据处理设备可用于执行图6所示的方法,关于本发明实施例的数据处理设备的结构的更多描述可参考图13所示的数据处理设备的实施例的描述。
图6为本发明实施例提供的一种数据处理方法的方法流程图,参考上文的描述,以及图4所示的实施例,下文将对本发明实施例提供的一种数据处理方法进行详细描述,在该实施例中,以获取多个数据源的信息为场景,获取的数据源的信息包括数据源存储的数据、以及使用该数据的对象的信息,即使用对象信息,其中,该使用对象信息包括用户信息和/或应用程序信息,下文将以使用对象信息为用户信息和应用程序信息为例,进行说明。
参阅图6,本发明实施例的数据处理方法包括:
步骤601:从多个数据源的DBMS日志获取用户信息、应用程序信息和SQL语句。
数据处理设备从多个数据源获取使用对象信息和SQL语句,因从每一数据源至少获取一个SQL语句,当从多个数据源获取SQL语句时,数据处理设备得到多个SQL语句。
其中,SQL语句包括数据源存储的数据,用户信息和应用程序信息为使用对象信息的具体形式,使用对象信息为使用数据的对象的信息。这些,用户信息、应用程序信息和SQL语句即为本发明实施例的方法收集的基本信息。
其中,数据源存储的数据包括数据库信息、表信息、列信息和视图中的一种或多种。视图可为由查询数据库表产生的信息。
在大数据时代,多种数据源并存,如MySQL,Oracle,Impala,Hive,Spark等数据源,怎样跨多数据源建立查询血统是一大挑战。该挑战的关键在于怎样处理不同数据源的差异,构建统一的查询血统。从不同的数据源中获得有用信息的难易程度不同,从多个数据源收集统一的信息较为困难。
为此,本发明实施例的数据处理方法为了实现跨数据源影响分析,则需要适配多个不同数据源,建立通用的信息提取方式。本发明实施例的方法从数据源的DBMS日志获取使用对象信息和SQL语句,从而该信息获取方式具有通用性,在多个不同类型的数据源的场景中,可实现从不同数据源获取用户信息、应用程序信息和SQL语句。
具体来说,本发明实施例的方法可通过文件监控工具,如Logstash,Commons IO等,监控DBMS日志,然后从DBMS日志提取并收集SQL语句和该SQL语句对应的用户信息和应用程序信息。
可以理解,本发明实施例还可以通过其它的方式从数据源获取使用对象信息和SQL语句。具体详见上述的图4所示的实施例。
在本发明有的实施例中,为了更好地适配多数据源,并降低开发成本,在步骤601之前,本发明实施例的方法还包括如下步骤:
步骤A1:确定目标数据源的类型。
数据处理设备在连接目标数据源之前,先确定目标数据源的类型。例如,数据处理设备从建表的元数据中获取得到目标数据源的类型信息,从而可确定出目标数据源的类型。
步骤A2:根据预先建立的数据源的类型和插件的对应关系,从预存的插件池获取与目标数据源的类型对应的目标插件。
其中,插件池包括至少一个插件。
本发明实施例的方法可提供一个包括至少一个插件的插件池,以供数据处理设备利用,当数据处理设备确定了待连接的目标数据源的类型后,即可根据预先建立的数据源的类型和插件的对应关系,确定出对应的目标插件。实现了根据不同的数据源,自动地从插件池中选择对应的插件。
步骤A3:通过目标插件接入目标数据源。
数据处理设备可通过目标插件接入目标数据源,主要是对于不同数据源特有的部分以插件的方式接入。从而对目标数据源执行步骤601,即从目标数据源的DBMS日志获取使用对象信息和SQL语句。
具体来说,插件为一程序模块,插件与监控工具约定了接口,数据处理设备确定了目标插件,监控工具可跟据该约定的接口自动调用插件中的代码。以接入目标数据源,从而监控目标数据源的DBMS日志。通过插件,即可以一种无侵入的方式连接数据源。
步骤602:根据SQL语句构建局部查询血统。
其中,局部查询血统用于记载数据的处理历史。局部查询血统是一种树形数据结构,关于局部查询血统的更多介绍可参考上文的详细描述。
在SQL语句为多个时,步骤602的具体实现是:根据每一SQL语句分别构建局部查询血统,得到多个局部查询血统。即根据一个SQL语句得到一个局部查询血统。
要获得局部查询血统就要对SQL语句进行分析,关于根据SQL语句构建局部查询血统的具体实现方式有多种,例如,通过从DBMS提取查询语句的内部表示,然后从内部表示中提取出局部查询血统。
为了能适用于多数据源的场景,根据SQL语句构建局部查询血统的具体实现方式还可以为:使用explain(解释)命令对SQL语句进行处理,以生成查询计划,然后,解析查询计划,得到局部查询血统。
对于后一实现方式,即使SQL语句存在别名替换,视图扩展等现象,仍可得到正确的结果。即使DBMS不支持直接获取查询语句的内部表示,该方式仍可得到局部查询血统。下文将对该使用explain命令的实现方式进一步进行具体说明。
具体来说,用JDBC(java database connector,java数据库连接器)向数据源发送命令:“explain query”,得到结构化的文本,然后用正则表达式或Antlr等工具解析文本,得到一个树形数据结构。
例如,下面举出一个用explain命令执行SQL语句的示例:
Figure BDA0001338738390000101
Figure BDA0001338738390000111
如上所示,在select(选择)语句前加上explain就可以对SQL语句进行分析。
SQL的explain可通过图形化或基于文本的方式详细说明了SQL语句的每个部分是如何执行以及何时执行的。例如,可得到这样的一些信息:数据库信息、表信息、列信息和视图等。
在上述示例中,SQL语句的语义是:用表t,mysql97_r中的a字段做连接,以表t中的b字段为过滤条件(b>2),取回表t中的a,b两个字段,并按a字段排序。其中,表t在Hive的default数据中,表mysql97_r是一个视图,实际数据在MySQL的test数据库中,表名为r。如果执行:
create table tmp as select t1.a,t1.b from t t1join mysql97_r t2ont1.a=t2.a where t1.b>2order by t1.a
则构建出的查询血统如图7所示。事实上,所有的数据只与Hive的default数据中表t有关,与mysql97_r无关,如果按字面意义去建立数据血统会出错。在本发明有的实施例中,数据处理方法可根据过滤条件与逻辑处理数据间的关系,避免在形式上建立查询血统时产生错误的查询血统。
上述示例的语句中只提到表t,没有说明它在什么主机,什么数据库中,也不能区分它是真实表还是视图。因此,要对查询进行解析才能建立正确的查询血统。
考察上述的用explain命令执行SQL语句的示例,会发现建立正确数据血统的信息都包涵其中。用到了DBMS hive的default数据库中的表t,字段a,b([a#682,b#683])。用到了DBMS MySQL的test数据库中的表r,字段a([a#686])。但是最终输出是[a#682,b#683],即hive的default数据库中的表t的字段a,b。tmp表中的数据只来自于hive的default数据库中的表t。
通过上述explain命令生成查询计划后,因每个DBMS返回的格式可能不一样,然后再对查询计划进行解析得到局部查询血统。
步骤601和步骤602的具体实现可参阅图8所示的执行框图。可见,通过使用插件从DBMS日志中提取用户信息、应用程序信息和SQL语句,并采用通用的explain命令以及解析查询计划的方式从各数据源得到局部查询血统,本发明实施例的数据处理方法能够建立跨数据源的局部查询血统,能将多个数据源中的数据关联起来,且因不需要输入查询内部表示形式,本发明实施例的方法适用于多种类型的数据源,实现跨多数据源建立查询血统。这样,本发明实施例的数据处理方法即提供了一种获取多种数据源局部查询血统的方式与框架。
步骤603:整合多个局部查询血统,得到全局查询血统。
数据处理设备在获取到多个数据源的多个局部查询血统后,整合该多个局部查询血统,得到全局查询血统。
在本发明实施例中,局部查询血统是指通过一个SQL语句得到的数据血统,该SQL语句如create,insert等。全局查询血统是指将所有获取到的局部查询血统整合起来,得到的数据间血统的总图。
在得到全局查询血统后,数据处理设备可将该全局查询血统进行存储,例如存储到数据库中。
在本发明有的实施例中,数据处理设备即可得到全局查询血统,还可维护全局查询血统的更新。维护血统是一复杂的工作,目前已有方案解决此问题,详见上文举出的一种自动生成查询血统的方法的示例。参阅图9,为便于理解,对全局查询血统的更新和维护的方法,现再略述如下:
1)监控数据增加,删除,移动等操作。发现增加,删除,移动等操作后,查找并应用相应规则对原始的查询树进行更新。
2)规则库(配置信息)中存放定义好的规则,供血统维持模块使用。具本而言,血统维持模块向血统规则库请求规则,然后将符合条件的规则应用于全局数血统。
3)生成的全局查询血统,并将其存于外存,以方便查找。
可以理解,在本发明有的实施例中,可以不包括步骤603。
步骤604:从每一局部查询血统获取数据。
数据处理设备可从得到的局部查询血统获取数据源存储的数据。
因局部查询血统是一种树形数据结构,可用树的深度优先或广度优先算法在树中遍历数据,找出树中的叶子结点。叶子结点中的数据库信息,表信息和视图等即为数据源存储的数据。
步骤605:根据属于同一数据源的数据、用户信息和应用程序信息,建立数据、用户信息和应用程序信息的对应关系。
通过上述步骤的执行,数据处理设备获取到的信息包括:用户信息;应用程序信息;以及局部查询血统中的信息:引用到的数据库信息、表信息、列信息、视图等,以及它们的血统关系。
这样,数据处理设备即可方便地将属于同一数据源的数据和用户信息、应用程序信息进行整理,关联起来,建立得到数据-用户信息-应用程序信息三者的对应关系。然后结构化存储该对应关系到外存,例如存储到数据库中,以供用户查询使用。具体的存储方式可如图10所示。
数据处理设备在建立了该对应关系后,可存储该对应关系,如将该对应关系存储到查询(搜索)引擎中,如DBMS,Elastic Search,Slor等查询(搜索)引擎。从而管理员通过查询(搜索)引擎根据待修改的数据进行受影响的用户信息和应用程序信息的查询。
关于步骤603至步骤605,涉及到数据处理设备的血统整合模块和处理模块,如图11所示,处理模块执行从局部查询血统获取数据,并建立数据和使用对象信息的对应关系的步骤,即步骤604和步骤605。血统整合模块执行整合多个局部查询血统,得到全局查询血统的步骤,即步骤603。
在构建了全局查询血统的实施例中,本发明实施例的方法,还可以利用该全局查询血统获取由该待修改数据衍生得到的衍生数据。从而在建立的对应关系中,查询出与该衍生数据对应的用户信息和/或应用程序信息,待修改数据的修改也会影响到与该衍生数据对应的用户信息和/或应用程序信息。这样,用户即可及时确定并通知数据的修改影响到的使用数据的用户,并且衍生数据的扩展查找,可以实现全面地确定出受影响的用户和应用程序。
下面即对查询过程进行说明。
步骤606:获取目标数据。
上述对应关系建立后,数据处理设备获取目标数据,该目标数据例如为用户输入数据处理设备的待修改的数据。
步骤607:根据目标数据从全局查询血统获取衍生数据。
其中,衍生数据由目标数据衍生得到。
数据处理设备用目标数据查询全局查询血统,根据目标数据从全局查询血统获取目标数据的衍生数据。
具体来说,全局数据血统也是树形结构,用深度优先或广度优先算法在全局数据血统的树中遍历并匹配目标数据。如果目标数据匹配到数据,则匹配到的数据的子树(即所有孩子结点)就是目标数据的衍生数据。
步骤608:从对应关系中,确定分别与目标数据和衍生数据对应的用户信息和/或应用程序信息。
数据处理设备获取到了目标数据和该目标数据的衍生数据后,即可使用这些数据在步骤605建立的数据-用户信息-应用程序信息三者的对应关系中进行查询,从该对应关系中,确定分别与目标数据和衍生数据对应的用户信息和/或应用程序信息。这些确定到的用户信息和/或应用程序信息,即为在对目标数据进行修改后,受到影响的数据使用对象。具体的查询示意图可参阅图12。
可见,本发明实施例的方法通过全局查询血统的使用,确定出待修改数据的衍生数据,从而管理员即可使用待修改的数据从建立的数据-用户信息-应用程序信息的对应关系中确定出数据的修改直接影响到的用户和应用程序,也可以使用该衍生数据从建立的数据-用户信息-应用程序信息的对应关系中确定出数据的修改间接影响到的用户和应用程序。即,本发明实施例的数据处理方法不仅考虑使用目标数据和应用程序信息/用户信息的关系,还考虑目标数据的衍生数据与应用程序信息/用户信息的关系,而全局查询血统即为联系目标数据与其衍生数据的桥梁。该目标数据为待修改数据时,通过本发明实施例的方法,管理员可在数据(仓)库上做影响分析,当数据结构发生改变时快速定位受影响的程序/应用和用户。当数据发生更改时,能快速且全面地发现所有受影响的用户和/或应用程序,以实现全面的影响分析操作。
这样,通过上述的步骤建立了对应关系后,管理员可通过该数据处理设备进行信息的查询,例如,在要修改数据时,如管理员想修改Schema的数据,则数据处理设备可根据全局查询血统确定出待修改数据的衍生数据,根据建立的该对应关系,查询出受该待修改的数据和衍生数据影响的用户信息和/或应用程序信息。
关于图6所示的实施例,下文举一具体实现场景进行描述,如下:
如图13所示,用户预先对每个数据源编写一个agent(插件),将所有agent放在一起,形成agent pool(插件池)。数据处理设备在连接不同的数据源时,会自动根数据源选择相应的agent。通过选择到的agent连接目标数据源,然后,agent输出的信息是:user(用户信息),application(应用程序信息)和SQL语句,这样,数据处理设备即可获取到这些信息。然后,数据处理设备对SQL语句使用explain命令得到查询计划,并解析该查询计划,得到局部查询血统。这样,数据处理设备即可得到user、application和局部查询血统。局部查询血统包括两个作用,一作用是数据处理设备整合局部查血血统,得到全局查询血统,另一作用是从局部查询血统获取数据源存储的数据,然后,数据处理设备根据属于同一数据源的局部查询血统和user、application,建立得到数据-user-application的对应关系,并将该对应关系存于搜索工具,如Solr,ElasticSearch中,以使得管理员可以通过搜索工具直接搜索该对应关系或对应关系中的信息。通过该对应关系,数据处理设备即可获知当前数据Schema修改会直接受到影响的用户信息与应用程序信息,通过全局查询血统,本发明实施例的数据处理方法还可获知当前数据Schema的衍生数据,从而根据该衍生数据在对应关系中进行数据匹配,以确定衍生数据对应的用户信息与应用程序信息,该用户信息与应用程序信息即为潜在受影响的用户与应用。
可以理解,本发明实施例的方法还可以不建立全局查询血统,这样,管理人员通过查询对应关系可获知当前数据Schema修改会直接受到影响的用户信息与应用程序信息。此时,数据处理设备可以通过agent从各个数据源收集用户信息、应用程序信息和SQL语句。然后对SQL语句进行explain命令的执行和解析操作,得到局部查询血统,根据该局部查询血统得到数据源存储的表信息,列信息等数据。将数据源存储的数据和用户信息、应用程序信息进行组合,即可得到数据-用户信息-应用程序信息的对应关系,存储该对应关系就可以得到一个负载信息收集系统。通过该负载信息收集系统,管理员可监控数据源系统,并可获知哪些表、列被高频使用;某个用户使用了哪些表、列;被执行最多的查询是哪个;哪些表经常更新等。
这样,当数据Schema变化时,本发明实施例的数据处理方法可以快速发现因schema改变而受影响的应用与用户,可减小DBA的工作量,使使用本发明实施例的方法的用户的业务响应能力增强。
综上所述,因SQL语句包括数据源存储的数据,通过获取数据源的SQL语句即获取了数据源存储的数据。而从数据源获取使用对象信息和SQL语句,使得使用对象信息为使用该SQL语句包括的该数据的对象的信息。为了建立该数据和使用该数据的对象的使用对象信息的对应关系,先根据SQL语句构建局部查询血统,因局部查询血统用于记载数据的处理历史,从而可以从局部查询血统获取数据源存储的数据,这样的数据获取方式更简便高效。从而,数据处理设备即可建立数据和使用对象信息的对应关系。通过这样的方式,设备可自动建立数据和使用对象信息的对应关系,与人工建立的方式相比,本发明实施例的方法和设备可高效地建立数据源的数据和使用该数据的使用对象信息的对应关系,从而节省了成本。
图14为本发明实施例提供的一种数据处理设备的结构示意图,该数据处理设备可执行上述图4和图6所示的数据处理方法,参考上述内容,本发明实施例的数据处理设备包括:
信息获取模块1401,用于从数据源获取使用对象信息和SQL语句,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息;
构建模块1402,用于根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史;
处理模块1403,用于从局部查询血统获取数据;
处理模块1403,还用于建立数据和使用对象信息的对应关系。
可选地,
信息获取模块1401,还用于从数据源的DBMS日志获取使用对象信息和SQL语句。
可选地,
本发明实施例的数据处理设备还包括连接模块1404,
连接模块1404,用于确定目标数据源的类型;
连接模块1404,还用于根据预先建立的数据源的类型和插件的对应关系,从预存的插件池获取与目标数据源的类型对应的目标插件,插件池包括至少一个插件;
连接模块1404,还用于通过目标插件接入目标数据源;
信息获取模块1401,还用于从目标数据源的DBMS日志获取使用对象信息和SQL语句。
可选地,
构建模块1402,还用于使用explain命令对SQL语句进行处理,以生成查询计划;
构建模块1402,还用于解析查询计划,得到局部查询血统。
可选地,
信息获取模块1401,还用于从多个数据源获取使用对象信息和SQL语句,以得到多个SQL语句;
构建模块1402,还用于根据每一SQL语句分别构建局部查询血统,得到多个局部查询血统;
处理模块1403,还用于从每一局部查询血统获取数据;
处理模块1403,还用于根据属于同一数据源的数据和使用对象信息,建立数据和使用对象信息的对应关系。
可选地,
本发明实施例的数据处理设备还包括血统整合模块1405,
血统整合模块1405,用于整合多个局部查询血统,得到全局查询血统。
可选地,
本发明实施例的数据处理设备还包括查询模块1406;
查询模块1406,用于获取目标数据;
查询模块1406,还用于根据目标数据从全局查询血统获取衍生数据,衍生数据由目标数据衍生得到;
查询模块1406,还用于从对应关系中,确定分别与目标数据和衍生数据对应的使用对象信息。
可选地,
使用对象信息包括用户信息和/或应用程序信息。
可选地,
数据包括数据库信息、表信息、列信息和视图中的一种或多种。
综上所述,信息获取模块1401从数据源获取使用对象信息和SQL语句,其中,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息。然后,构建模块1402根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史。跟着,处理模块1403从局部查询血统获取数据,从而处理模块1403建立数据和使用对象信息的对应关系。这样,因SQL语句包括数据源存储的数据,通过获取数据源的SQL语句即获取了数据源存储的数据。而从数据源获取使用对象信息和SQL语句,使得使用对象信息为使用该SQL语句包括的该数据的对象的信息。为了建立该数据和使用该数据的对象的使用对象信息的对应关系,先根据SQL语句构建局部查询血统,因局部查询血统用于记载数据的处理历史,从而可以从局部查询血统获取数据源存储的数据,这样的数据获取方式更简便高效。从而,数据处理设备即可建立数据和使用对象信息的对应关系。通过这样的方式,设备可自动建立数据和使用对象信息的对应关系,与人工建立的方式相比,本发明实施例的方法和设备可高效地建立数据源的数据和使用该数据的使用对象信息的对应关系,从而节省了成本。
图15是本发明实施例提供的一种数据处理设备的硬件结构示意图,该数据处理设备1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在数据处理设备1500上执行存储介质1530中的一系列指令操作。
数据处理设备1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由数据处理设备所执行的步骤可以基于该图15所示的数据处理设备结构,即该数据处理设备可用于执行上述图4和图6所示实施例的数据处理方法,上述图14所示的数据处理设备的各模块可集成在本发明实施例的数据处理设备上。
具体情况如下:
该中央处理器1522,具有如下功能:
从数据源获取使用对象信息和SQL语句,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息;
根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史;
从局部查询血统获取数据;
建立数据和使用对象信息的对应关系。
可选的,该中央处理器1522,具体还具有如下功能:从数据源的DBMS日志获取使用对象信息和SQL语句。
可选的,从数据源的DBMS日志获取使用对象信息和SQL语句之前,该中央处理器1522,具体还具有如下功能:确定目标数据源的类型;根据预先建立的数据源的类型和插件的对应关系,从预存的插件池获取与目标数据源的类型对应的目标插件,插件池包括至少一个插件;通过目标插件接入目标数据源;从目标数据源的DBMS日志获取使用对象信息和SQL语句。
可选的,该中央处理器1522,具体还具有如下功能:使用explain命令对SQL语句进行处理,以生成查询计划;解析查询计划,得到局部查询血统。
可选的,该中央处理器1522,具体还具有如下功能:从多个数据源获取使用对象信息和SQL语句,以得到多个SQL语句;根据每一SQL语句分别构建局部查询血统,得到多个局部查询血统;从每一局部查询血统获取数据;根据属于同一数据源的数据和使用对象信息,建立数据和使用对象信息的对应关系。
可选的,根据每一SQL语句分别构建局部查询血统,得到多个局部查询血统之后,该中央处理器1522,具体还具有如下功能:整合多个局部查询血统,得到全局查询血统。
可选的,根据属于同一数据源的数据和使用对象信息,建立数据和使用对象信息的对应关系之后,该中央处理器1522,具体还具有如下功能:获取目标数据;根据目标数据从全局查询血统获取衍生数据,衍生数据由目标数据衍生得到;从对应关系中,确定分别与目标数据和衍生数据对应的使用对象信息。
可选地,使用对象信息包括用户信息和/或应用程序信息。
可选地,数据包括数据库信息、表信息、列信息和视图中的一种或多种。
综上所述,中央处理器1522从数据源获取使用对象信息和SQL语句,其中,SQL语句包括数据源存储的数据,使用对象信息为使用数据的对象的信息。然后,中央处理器1522根据SQL语句构建局部查询血统,局部查询血统用于记载数据的处理历史。跟着,中央处理器1522从局部查询血统获取数据,从而建立数据和使用对象信息的对应关系。这样,因SQL语句包括数据源存储的数据,通过获取数据源的SQL语句即获取了数据源存储的数据。而从数据源获取使用对象信息和SQL语句,使得使用对象信息为使用该SQL语句包括的该数据的对象的信息。为了建立该数据和使用该数据的对象的使用对象信息的对应关系,先根据SQL语句构建局部查询血统,因局部查询血统用于记载数据的处理历史,从而可以从局部查询血统获取数据源存储的数据,这样的数据获取方式更简便高效。从而,数据处理设备即可建立数据和使用对象信息的对应关系。通过这样的方式,设备可自动建立数据和使用对象信息的对应关系,与人工建立的方式相比,本发明实施例的方法和设备可高效地建立数据源的数据和使用该数据的使用对象信息的对应关系,从而节省了成本。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (19)

1.一种数据处理方法,其特征在于,包括:
从数据源获取使用对象信息和结构化查询语言SQL语句,所述SQL语句包括所述数据源存储的数据,所述使用对象信息为使用所述数据的对象的信息;
根据所述SQL语句构建局部查询血统,所述局部查询血统用于记载所述数据的处理历史;
从所述局部查询血统获取所述数据;
建立所述数据和所述使用对象信息的对应关系,所述对应关系中的所述数据和所述使用对象信息属于同一的数据源。
2.根据权利要求1所述的方法,其特征在于,
所述从数据源获取使用对象信息和SQL语句,包括:
从数据源的数据库管理系统DBMS日志获取使用对象信息和SQL语句。
3.根据权利要求2所述的方法,其特征在于,
所述从数据源的DBMS日志获取使用对象信息和SQL语句之前,所述方法还包括:
确定目标数据源的类型;
根据预先建立的数据源的类型和插件的对应关系,从预存的插件池获取与所述目标数据源的类型对应的目标插件,所述插件池包括至少一个插件;
通过所述目标插件接入所述目标数据源;
所述从数据源的DBMS日志获取使用对象信息和SQL语句,包括:
从所述目标数据源的DBMS日志获取使用对象信息和SQL语句。
4.根据权利要求1所述的方法,其特征在于,
所述根据所述SQL语句构建局部查询血统,包括:
使用explain命令对所述SQL语句进行处理,以生成查询计划;
解析所述查询计划,得到局部查询血统。
5.根据权利要求1所述的方法,其特征在于,
所述从数据源获取使用对象信息和SQL语句,包括:
从多个数据源获取使用对象信息和SQL语句,以得到多个SQL语句;
所述根据所述SQL语句构建局部查询血统,包括:
根据每一所述SQL语句分别构建局部查询血统,得到多个局部查询血统;
所述从所述局部查询血统获取所述数据,包括:
从每一所述局部查询血统获取所述数据;
所述建立所述数据和所述使用对象信息的对应关系,包括:
根据属于同一数据源的所述数据和所述使用对象信息,建立所述数据和所述使用对象信息的对应关系。
6.根据权利要求5所述的方法,其特征在于,
所述根据每一所述SQL语句分别构建局部查询血统,得到多个局部查询血统之后,所述方法还包括:
整合所述多个局部查询血统,得到全局查询血统。
7.根据权利要求6所述的方法,其特征在于,
所述根据属于同一数据源的所述数据和所述使用对象信息,建立所述数据和所述使用对象信息的对应关系之后,所述方法还包括:
获取目标数据;
根据所述目标数据从所述全局查询血统获取衍生数据,所述衍生数据由所述目标数据衍生得到;
从所述对应关系中,确定分别与所述目标数据和所述衍生数据对应的使用对象信息。
8.根据权利要求1至7任一项所述的方法,其特征在于,
所述使用对象信息包括用户信息和/或应用程序信息。
9.根据权利要求1至7任一项所述的方法,其特征在于,
所述数据包括数据库信息、表信息、列信息和视图中的一种或多种。
10.一种数据处理设备,其特征在于,包括:
信息获取模块,用于从数据源获取使用对象信息和SQL语句,所述SQL语句包括所述数据源存储的数据,所述使用对象信息为使用所述数据的对象的信息;
构建模块,用于根据所述SQL语句构建局部查询血统,所述局部查询血统用于记载所述数据的处理历史;
处理模块,用于从所述局部查询血统获取所述数据;
所述处理模块,还用于建立所述数据和所述使用对象信息的对应关系,所述对应关系中的所述数据和所述使用对象信息属于同一的数据源。
11.根据权利要求10所述的设备,其特征在于,
所述信息获取模块,还用于从数据源的DBMS日志获取使用对象信息和SQL语句。
12.根据权利要求11所述的设备,其特征在于,
所述设备还包括连接模块,
所述连接模块,用于确定目标数据源的类型;
所述连接模块,还用于根据预先建立的数据源的类型和插件的对应关系,从预存的插件池获取与所述目标数据源的类型对应的目标插件,所述插件池包括至少一个插件;
所述连接模块,还用于通过所述目标插件接入所述目标数据源;
所述信息获取模块,还用于从所述目标数据源的DBMS日志获取使用对象信息和SQL语句。
13.根据权利要求10所述的设备,其特征在于,
所述构建模块,还用于使用explain命令对所述SQL语句进行处理,以生成查询计划;
所述构建模块,还用于解析所述查询计划,得到局部查询血统。
14.根据权利要求10所述的设备,其特征在于,
所述信息获取模块,还用于从多个数据源获取使用对象信息和SQL语句,以得到多个SQL语句;
所述构建模块,还用于根据每一所述SQL语句分别构建局部查询血统,得到多个局部查询血统;
所述处理模块,还用于从每一所述局部查询血统获取所述数据;
所述处理模块,还用于根据属于同一数据源的所述数据和所述使用对象信息,建立所述数据和所述使用对象信息的对应关系。
15.根据权利要求14所述的设备,其特征在于,
所述设备还包括血统整合模块,
所述血统整合模块,用于整合所述多个局部查询血统,得到全局查询血统。
16.根据权利要求15所述的设备,其特征在于,
所述设备还包括查询模块;
所述查询模块,用于获取目标数据;
所述查询模块,还用于根据所述目标数据从所述全局查询血统获取衍生数据,所述衍生数据由所述目标数据衍生得到;
所述查询模块,还用于从所述对应关系中,确定分别与所述目标数据和所述衍生数据对应的使用对象信息。
17.根据权利要求10至16任一项所述的设备,其特征在于,
所述使用对象信息包括用户信息和/或应用程序信息。
18.根据权利要求10至16任一项所述的设备,其特征在于,
所述数据包括数据库信息、表信息、列信息和视图中的一种或多种。
19.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-9任意一项所述的方法。
CN201710527452.9A 2017-06-30 2017-06-30 数据处理方法和设备 Active CN109213826B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710527452.9A CN109213826B (zh) 2017-06-30 2017-06-30 数据处理方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710527452.9A CN109213826B (zh) 2017-06-30 2017-06-30 数据处理方法和设备

Publications (2)

Publication Number Publication Date
CN109213826A CN109213826A (zh) 2019-01-15
CN109213826B true CN109213826B (zh) 2021-10-22

Family

ID=64992109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710527452.9A Active CN109213826B (zh) 2017-06-30 2017-06-30 数据处理方法和设备

Country Status (1)

Country Link
CN (1) CN109213826B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196888B (zh) * 2019-05-27 2024-05-10 深圳前海微众银行股份有限公司 基于Hadoop的数据更新方法、装置、系统及介质
CN110968592B (zh) * 2019-12-06 2023-11-21 深圳前海环融联易信息科技服务有限公司 元数据采集方法、装置、计算机设备及计算机可读存储介质
CN111666115B (zh) * 2020-05-27 2023-11-07 杭州数澜科技有限公司 用于寻找引擎插件的装置、方法及存储介质
CN111897932A (zh) * 2020-07-21 2020-11-06 深圳市维度统计咨询股份有限公司 一种文本大数据的查询处理方法及系统
CN113986254A (zh) * 2020-07-27 2022-01-28 阿里巴巴集团控股有限公司 微前端系统、生成方法及服务器系统
CN112115141B (zh) * 2020-09-09 2023-04-18 陕西云基华海信息技术有限公司 一种基于图数据库的数据血统分析的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092970A (zh) * 2013-01-24 2013-05-08 华为技术有限公司 一种数据库操作方法及设备
CN104216888A (zh) * 2013-05-30 2014-12-17 中国电信股份有限公司 数据处理任务关系设置方法及系统
CN104899225A (zh) * 2014-03-07 2015-09-09 北京四达时代软件技术股份有限公司 对象关系映射方法、装置及处理器
CN104915390A (zh) * 2015-05-25 2015-09-16 广州精点计算机科技有限公司 一种etl数据血统查询系统及查询方法
US9213707B2 (en) * 2012-10-12 2015-12-15 Watson Manwaring Conner Ordered access of interrelated data files

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213707B2 (en) * 2012-10-12 2015-12-15 Watson Manwaring Conner Ordered access of interrelated data files
CN103092970A (zh) * 2013-01-24 2013-05-08 华为技术有限公司 一种数据库操作方法及设备
CN104216888A (zh) * 2013-05-30 2014-12-17 中国电信股份有限公司 数据处理任务关系设置方法及系统
CN104899225A (zh) * 2014-03-07 2015-09-09 北京四达时代软件技术股份有限公司 对象关系映射方法、装置及处理器
CN104915390A (zh) * 2015-05-25 2015-09-16 广州精点计算机科技有限公司 一种etl数据血统查询系统及查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SQL-JOIN的语法结构与查询结果分析;常逢佳;《文教资料》;20060831;第157-158页 *

Also Published As

Publication number Publication date
CN109213826A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
CN109213826B (zh) 数据处理方法和设备
US11100103B2 (en) Data sharing in multi-tenant database systems
US10635486B2 (en) Processing data sets in a big data repository
US20240020295A1 (en) Incremental refresh of a materialized view
US8005818B2 (en) Apparatus and method for maintaining metadata version awareness during set evaluation for OLAP hierarchies
KR102037232B1 (ko) 분산형 데이터베이스 쿼리 엔진을 위한 시스템 및 방법
US6366901B1 (en) Automatic database statistics maintenance and plan regeneration
CN110291517A (zh) 图数据库中的查询语言互操作性
US11914591B2 (en) Sharing materialized views in multiple tenant database systems
US8417690B2 (en) Automatically avoiding unconstrained cartesian product joins
RU2507574C2 (ru) Постраничное разбиение иерархических данных
US11294861B2 (en) Data pruning based on metadata
WO2010045331A2 (en) Method and apparatus for gathering and organizing information pertaining to an entity
CN112162983A (zh) 数据库索引建议处理方法、装置、介质和电子设备
US8200673B2 (en) System and method for on-demand indexing
US7185004B1 (en) System and method for reverse routing materialized query tables in a database
US11544294B2 (en) Distributing tables in a distributed database using consolidated grouping sources
CN110580247A (zh) 针对数据共享平台实现数据库操作效率优化功能的系统及其方法
Nerić et al. Big Data Optimization Using Hive
CN117131027A (zh) 数据质量检测方法、装置、终端设备以及存储介质

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