CN114328504A - 数据联合查询方法、装置、设备及计算机可读存储介质 - Google Patents
数据联合查询方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114328504A CN114328504A CN202110994560.3A CN202110994560A CN114328504A CN 114328504 A CN114328504 A CN 114328504A CN 202110994560 A CN202110994560 A CN 202110994560A CN 114328504 A CN114328504 A CN 114328504A
- Authority
- CN
- China
- Prior art keywords
- joint
- data
- operator
- query
- preset
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004364 calculation method Methods 0.000 claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 44
- 230000003993 interaction Effects 0.000 claims abstract description 28
- 230000000977 initiatory effect Effects 0.000 claims abstract description 13
- 238000004458 analytical method Methods 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 30
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000005457 optimization Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000012216 screening Methods 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims 1
- 239000000126 substance Substances 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000007405 data analysis Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 239000003999 initiator Substances 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据联合查询方法、装置、设备及计算机可读存储介质;涉及数据库技术与区块链技术,方法包括:对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;联合查询语句用于向第一设备与第二设备同步发起数据联合查询;基于预设安全协议,将联合查询算子转化为第一联合安全算子;将第一联合安全算子,与第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表;基于联合数据表,完成对至少一个算子的处理,实现数据联合查询。通过本申请,能够提高数据联合查询的安全性。
Description
技术领域
本申请涉及数据库技术与区块链技术,尤其涉及一种数据联合查询方法、装置、设备及计算机可读存储介质。
背景技术
目前,数据联合分析场景中经常涉及跨数据源的两表或多表求交集的操作。相关技术在进行跨数据源的两表或多表求交集处理时,主要通过在互相授权的基础上进行跨源数据交换,并基于交换的数据进行交集计算,得到用于数据联合分析的交集数据内容。相关技术的数据联合查询方法存在数据被参与交换的对方窃取或被第三方截获的风险,从而降低了数据联合分析的安全性。
发明内容
本申请实施例提供一种数据联合查询方法、装置、设备及计算机可读存储介质,能够提高数据联合查询的安全性。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种数据联合查询方法,包括:
对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;
基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
将所述第一联合安全算子,与所述第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表;
基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
第二方面,本申请实施例提供一种数据联合查询方法,包括:
基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子;
将所述第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与所述第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表。
第三方面,本申请实施例提供一种数据联合查询装置,包括:
第一解析处理模块,用于对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;
第一转化模块,用于基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
第一计算模块,用于将所述第一联合安全算子,与所述第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表;
处理模块,用于基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
上述装置中,所述第一解析处理模块,用于对所述联合查询语句进行词法解析与语法解析,得到所述联合查询语句对应的语法关系结构;所述语法关系结构包含所述联合查询语句中至少一个字符单元以及每个字符单元之间的上下文关系;在所述语法关系结构中,将所述至少一个字符单元中的预设联合运算符与预设筛选关键字所对应的子结构划分为联合查询算子,并通过遍历所述语法关系结构,基于预设业务规则划分出所述至少一个算子中的其他算子,从而得到包含所述联合查询算子的所述至少一个算子。
上述装置中,所述第一计算模块,用于根据所述联合查询算子中预设联合运算符对应的第一数据表名,获取所述第一数据表名对应的预设数据表权限;所述第一数据表名为所述第一设备的第一数据表的表名;根据所述预设筛选关键字对应的等值连接条件中包含的第一求交字段名,获取所述第一求交字段名对应的预设字段权限;
上述装置中,所述数据联合查询装置还包括权限校验模块,所述权限校验模块,用于在所述预设数据表权限与所述预设字段权限中的任一个不满足预设联合查询权限条件的情况下,进行告警提示,不执行所述联合查询算子。
上述装置中,所述数据联合查询装置还包括优化模块,所述优化模块,用于根据预设优化策略,对所述语法关系结构进行优化;其中,所述预设优化策略至少包括:列裁剪、谓词下推、常量折叠中的至少一个;或者,通过所述预设优化策略,对所述联合查询算子进行优化。
上述装置中,所述第一计算模块,还用于根据所述第一联合安全算子中的第一数据表名与第一求交字段名,从自身对应的预设第一存储空间中获取所述第一待求交数据;通过第一执行引擎,与所述第二设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据的数据加密传输与交集计算,得到联合数据表。
上述装置中,所述第一计算模块,还用于通过所述第一执行引擎运行所述第一联合安全算子,对所述第一待求交数据进行加密,得到第一中间加密数据;将所述第一中间加密数据发送至所述第二设备,以使所述第二设备通过执行所述第二联合安全算子对所述第一中间加密数据进行加密,得到第一加密数据;接收所述第二设备发送的所述第一加密数据,以及所述第二设备发送的第二中间加密数据;所述第二中间加密数据为所述第二设备通过执行所述第二联合安全算子,对所述第二待求交数据进行加密得到的加密数据;通过所述第一联合安全算子,对所述第二中间加密数据进行加密,得到第二加密数据;对所述第一加密数据与所述第二加密数据进行求交集计算,得到所述联合数据表。
第四方面,本申请实施例提供一种数据联合查询装置,包括:
第二解析处理模块与第二转化模块,用于基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子;
第二计算模块,用于将所述第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与所述第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表。
上述装置中,所述第二计算模块,还用于根据所述第二联合安全算子中的第二数据表名与第二求交字段名,从自身对应的预设第二存储空间中获取所述第二待求交数据;通过第二执行引擎,与所述第一设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据的数据加密传输与交集计算,得到联合数据表。
上述装置中,所述第二计算模块,还用于接收所述第一设备发送的所述第一中间加密数据,通过所述第二执行引擎运行所述第二联合安全算子,对所述第一中间加密数据进行加密,得到第一加密数据;将所述第一加密数据发送至所述第一设备;通过所述第二联合安全算子,对所述第二待求交数据进行加密,得到第二中间加密数据;将所述第一加密数据与所述第二中间加密数据发送至所述第一设备,以使所述第一设备通过所述第一联合安全算子对所述第二中间加密数据进行加密,得到第二加密数据;对所述第一加密数据与所述第二加密数据进行求交集计算,得到所述联合数据表。
第五方面,本申请实施例提供一种数据联合查询系统,包括第一设备与第二设备,所述第一设备与所述第二设备互相连接,其中,
所述第一设备,用于接收联合查询语句,并对所述联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
所述第二设备,用于接收所述联合查询语句,并基于所述联合查询语句与所述预设安全协议得到第二联合安全算子;
所述第一设备与所述第二设备,还用于通过同步执行所述第一联合安全算子与所述第二联合安全算子,以密文形式对所述第一设备的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,在所述第一设备或所述第二设备中的至少一个设备上得到联合数据表;
所述第一设备或所述第二设备,还用于基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
第六方面,本申请实施例提供一种第一设备,包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现如上述第一方面的数据联合查询方法。
第七方面,本申请实施例提供一种第二设备,包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现如上述第二方面的数据联合查询方法。
第八方面,本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的数据联合查询方法。
第九方面,本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本申请实施例提供的数据联合查询方法。
本申请实施例具有以下有益效果:
通过对联合查询语句进行解析,从中划分出联合查询算子转化为第一联合安全算子,并结合第二设备上的第二联合安全算子进行同步的安全密文传输与计算,实现了去中心化的分布式计算过程,无需将数据发送到第三方服务器进行数据分析,并通过加密传输与计算方式,同时保护了数据联合分析的双方的数据隐私,从而提高了数据联合查询的安全性。
附图说明
图1是本申请实施例提供的目前数据联合查询的交互过程示意图;
图2A是本申请实施例提供的数据联合查询系统架构的一个可选的结构示意图;
图2B是本申请实施例提供的数据联合查询系统应用于区块链网络的一个可选的结构示意图;
图3是本申请实施例提供的数据联合查询装置的一个可选的结构示意图;
图4是本申请实施例提供的数据联合查询装置的一个可选的结构示意图;
图5是本申请实施例提供的数据联合查询方法的一个可选的流程示意图;
图6是本申请实施例提供的数据联合查询方法的一个可选的流程示意图;
图7是本申请实施例提供的AST树的一个可选的示意图;
图8是本申请实施例提供的AST树的一个可选的示意图;
图9是本申请实施例提供的数据联合查询方法的一个可选的流程示意图;
图10是本申请实施例提供的数据联合查询方法的一个可选的流程示意图;
图11是本申请实施例提供的数据联合查询方法的一个可选的流程示意图;
图12是本申请实施例提供的数据联合查询方法的一个可选的交互流程示意图
图13是本申请实施例提供的实际应用场景中的数据联合查询方法的一个可选的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)联合数据分析(Federated Analytics,FA):联合数据分析是一种分布式联机分析处理(On-Line Analytical Processing,OLAP),该方法分散了分析数据的过程,从而无需将数据发送到集中式的服务器就可以进行数据分析,且在这个过程中,还可以保护用户隐私。
2)隐私保护集合交集(Private Set Intersection,PSI)协议允许持有各自数据集合的两方执行双方集合的交集运算。PSI协议结束之后,一方或两方能够得到交集结果,但是双方都无法获知交集以外的对方集合数据的任何信息。
3)结构化查询语言(Structured Query Language,SQL)是一种特定目的编程语言,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理。
4)Spark SQL:支持使用命令行界面和ODBC/JDBC服务器编写SQL语言,操作Spark。
5)连接(JOIN):SQL中的JOIN语句用于将数据库中的两个或多个表组合起来。
6)抽象语法树(Abstract Syntax Tree,AST):或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。
在传统SQL或者泛SQL(如Spark SQL)应用场景里,两表或多表求交集(JOIN操作)是多表联合分析场景下最重要和最常用的操作之一。例如,参与方A为某应用(如游戏、社交、短视频等)的运营部门,持有APP用户行为日志(如注册、登录、使用时长、操作行为等),参与方B为APP推广渠道方,持有曝光数据。A和B双方希望联合计算某时间段内指定渠道的曝光量或充值情况,这就需要对双方的数据表进行JOIN,抽取符合条件的数据进行统计分析。目前的相关技术在实现多表求交集时,通常是利用SQL中的“连接(JOIN)”语句,将数据库中的两个或多个不同的表组合起来。
然而,在实际应用场景中,由于用户隐私保护、数据保护法规、商业利益竞争等因素,不同机构的不同部门之间通常是独立存储、独立维护数据的。这些分散在不同机构的数据不能直接集中在一起,导致“数据孤岛”现象普遍存在。如图1所示,用户A和用户B两方分别各自持有自身的数据:用户A持有数据表A,用户B持有数据表B,其中,可以通过不同的存储空间或不同的访问权限,对数据表A与数据表B相应地进行物理隔离或权限隔离。在A、B两方想利用对方的数据完成多表求交集功能的场景下,目前的相关技术在进行多表求交集操作时,通常是由A和B两方分别通过主机A与主机B申请对方的数据权限,在得到授权的基础上通过执行SQL中的JOIN语句,以明文形式与对方交互数据表A与数据表B,进而在主机A上使用数据表A与数据表B的明文进行JOIN计算,并在主机B上使用数据表B与数据表A的明文进行JOIN计算,从而跨源求得数据表A与数据表B的交集数据。
可以看出,目前的相关技术中,在实现两表求交集操作时,由于A和B互相授予权限,需要把涉及到的数据表以明文形式迁移到对方的设备,或者第三方的计算节点,存在明文数据被对方或第三方窃取或泄漏的风险,数据联合查询的安全性较低。
本申请实施例提供一种数据联合查询方法、装置、设备和计算机可读存储介质,能够提高数据联合查询的安全性。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备包括第一设备与第二设备,可以实施为笔记本电脑,平板电脑,台式计算机,智能电视,机顶盒,智能车载设备,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备等各种类型的终端,但并不局限于此;也可以实施为服务器。在电子设备实施为服务器时,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器等等,本申请实施例不作限定。下面,将说明电子设备实施为终端时示例性应用。
参见图2A,图2A是本申请实施例提供的数据联合查询系统100的一个可选的架构示意图,第一设备可以实现为终端400-1,第二设备可以实现为终端400-2。第一设备的第一数据表存储在数据库500-1的预设第一存储空间中,第一设备的第二数据表存储在数据库500-2的预设第二存储空间中。其中,终端400-1通过网络连接终端400-2,网络可以是广域网或者局域网,又或者是二者的组合;终端400-1与数据库500-1之间通过有线或无线通信方式进行直接或间接地连接;终端400-2与数据库500-2之间通过有线或无线通信方式进行直接或间接地连接。终端400-1归属于用户1,终端400-2归属于用户2,对于需要对第一数据表或第二数据表中指定的求交字段进行联合查询的场景,用户1或用户2可以分别在终端400-1或终端400-2上,向终端400-1与终端400-2同时发出包含联合查询语句的指令,发起数据联合查询。
终端400-1,用于接收联合查询语句,并对联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;联合查询语句用于向第一设备与第二设备同步发起数据联合查询;基于预设安全协议,将联合查询算子转化为第一联合安全算子。
终端400-2,用于接收联合查询语句,并基于联合查询语句与预设安全协议得到第二联合安全算子。
终端400-1与终端400-2,还用于通过同步执行第一联合安全算子与第二联合安全算子,以密文形式对第一设备的第一待求交数据与第二设备的第二待求交数据进行数据交互与联合计算,终端400-1与终端400-2中的至少一个可以得到联合计算的结果,即联合数据表;从而实现了终端400-1与终端400-2之间数据交互的明文隔离。
终端400-1还用于在得到联合数据表的情况下,基于联合数据表,完成对至少一个算子的处理,实现数据联合查询。
终端400-2,还用于在得到联合数据表的情况下,基于联合数据表,完成对至少一个算子的处理,实现数据联合查询。
在一些实施例中,数据库500-1与数据库500-2可以分别部署在两个独立的物理存储空间中,也可以部署在同一物理存储空间,通过不同的访问权限和操作权限互相隔离;终端400-1以及终端400-2也可是也可以通过有线或无线通信方式进行直接或间接地连接,具体的根据实际情况进行选择,本申请实施例不作限定。
在一些实施例中,终端400-1与数据库500-1可以部署在同一台主机上,也可以部署在不同的主机上。示例性地,数据库500-1可以部署在终端400-1所连接的云平台的存储空间中,终端400-1通过网络连接访问云平台存储空间,并在通过云平台的权限验证的情况下,可以访问和操作数据库500-1中partya.tablea的数据;同样地,终端400-2与数据库500-2也可以部署在相同主机或分别部署在不同主机上。具体的根据实际情况进行选择,本申请实施例不作限定。
在一些实施例中,终端400-1可以实施为单台主机,也可以实施为分布式计算的主机集群,终端400-2同样,具体的根据实际情况进行选择,本申请实施例不作限定。
在一些实施例中,终端400-1与终端400-2也可以实施为同一台主机上的两个不同客户端;示例性地,可以是同一台主机上的两种应用分别对应的客户端,对两种应用产生的应用数据进行数据联合分析。具体的根据实际情况进行选择,本申请实施例不作限定。
在一些实施例中,联合查询语句也可以由终端400-1与终端400-2之外的第三方设备发出,并从终端400-1或终端400-2获取联合数据表,进行数据联合查询,具体的根据实际情况进行选择,本申请实施例不作限定。
本申请实施例还可以通过区块链技术来实现,参见图2B,图2B是本申请实施例提供的数据联合查询系统100应用于区块链网络的一个可选的结构示意图。客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)可以通过网络通信的形式连接形成分布式的区块链网络,节点之间可以通过本申请实施例提供的方法进行数据联合查询。区块链网络中各节点涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链网络中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链网络中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链网络中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链网络中节点提交的记录数据。
在一些实施例中,如图2B所示,终端400-1与终端400-2可以加入区块链网络600而成为其中的一个节点。区块链网络600的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备,都可以在不需要授权的情况下接入区块链网络600,以作为区块链网络600的共识节点,例如终端400-1映射为区块链网络600中的共识节点600-1终端400-2映射为区块链网络600中的共识节点600-2。
以区块链网络600为联盟链为例,终端400-1与终端400-2在获得授权后可以接入区块链网络600而成为节点。终端400-1对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子,并基于预设安全协议,将联合查询算子转化为第一联合安全算子后,可以通过执行智能合约的方式将第一联合安全算子,与终端400-2上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与终端400-2的第二待求交数据进行数据交互与联合计算,得到联合数据表,并将联合数据表发送至区块链网络600中进行共识。当共识通过时,基于联合数据表,完成对至少一个算子的处理,实现数据联合查询。可见,通过区块链网络中的多个节点对数据联合计算得到的联合数据表进行共识确认,可以利用共识机制,避免个别节点错误操作或计算对数据联合查询的影响,进一步提高了数据联合查询的安全性和准确性。
参见图3,图3是本申请实施例提供的终端400-1的结构示意图,图3所示的终端400-1包括:至少一个处理器410-1、存储器450-1、至少一个网络接口420-1和用户接口430-1。终端400-1中的各个组件通过总线系统440-1耦合在一起。可理解,总线系统440-1用于实现这些组件之间的连接通信。总线系统440-1除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440-1。
处理器410-1可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430-1包括使得能够呈现媒体内容的一个或多个输出装置431-1,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430-1还包括一个或多个输入装置432-1,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450-1可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450-1可选地包括在物理位置上远离处理器410-1的一个或多个存储设备。
存储器450-1包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450-1旨在包括任意适合类型的存储器。
在一些实施例中,存储器450-1能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451-1,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452-1,用于经由一个或多个(有线或无线)网络接口420-1到达其他计算设备,示例性的网络接口420-1包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453-1,用于经由一个或多个与用户接口430-1相关联的输出装置431-1(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454-1,用于对一个或多个来自一个或多个输入装置432-1之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器450-1中的数据联合查询装置455-1,其可以是程序和插件等形式的软件,包括以下软件模块:第一解析处理模块4551-1、第一转化模块4552-2、第一计算模块4553-1和处理模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
参见图4,图4是本申请实施例提供的终端400-2的结构示意图,图4所示的终端400-2包括:至少一个处理器410-2、存储器450-2、至少一个网络接口420-2和用户接口430-2。终端400-2中的各个组件通过总线系统440-2耦合在一起。上述模块与图3中相同名称模块的功能描述一致,此处不再赘述。图4中同样示出了存储在存储器450-2中的数据联合查询装置455-2,其可以是程序和插件等形式的软件,包括以下软件模块:第二解析处理模块4551-2、第二转化模块4552-2、第二计算模块4553-2,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据联合查询方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
将结合本申请实施例提供的应用于第一设备,即终端400-1的示例性应用和实施,说明本申请实施例提供的数据联合查询方法。参见图5,图5是本申请实施例提供的数据联合查询方法的一个可选的流程示意图。将结合图5示出的步骤进行说明。
S101、对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;联合查询语句用于向第一设备与第二设备同步发起数据联合查询。
本申请实施例提供的数据联合查询方法可以广泛地适用于联合计算和联合数据分析场景中的多表求交集操作。在实际应用中可以实施为联合计算或联合数据的基本安全算子,供联合计算工程产品中的其他模块,如联合计算模块或联合分析模块来调用。也可以应用在联合计算平台的形式的公有云或私有云中,提供联合计算服务与安全联合分析。具体的根据实际情况进行选择,本申请实施例不作限定。
在一些实施例中,发起方用户可以在第一设备或第二设备上输入联合查询语句,发起数据联合查询。第一设备或第二设备通过人机交互接口接收联合查询语句,启动自身对联合查询语句的处理,并根据联合查询语句生成联合查询请求,将联合查询请求通过网络发送至对侧设备,以使对侧设备同步启动对联合查询语句的处理。
在一些实施例中,发起方用户也可以在第三方设备上,通过联合查询语句,同时向第一设备和第二设备发起数据联合查询,第一设备和第二设备在接收到联合查询语句的情况下同步启动对联合查询语句的处理。
在一些实施例中,联合查询语句可以是MYSQL、SQLServer、SparkSQL、Hive等关系型数据库的标准SQL或泛SQL语法形式的指令语句,具体的根据实际情况进行选择,本申请实施例不作限定。
在一些实施例中,联合查询语句可以包括基于ANSI标准的JOIN语句,用于计算两张或多张表交集部分的数据。其中,JOIN语句可以包括内连接(INNER),全外连接(FULLOUTER),左外连接(LEFT OUTER),右外连接(RIGHT OUTER)和交叉连接(CROSS)等多种方式。示例性地,在表名为Employee的表1与表名为Department的表2中,Department.DepartmentID是主键,Employee.DepartmentID是外键,以内连接方式实现表1与表2的求交集的JOIN语句可以如下所示:
SELECT*
FROM employee
INNER JOIN department
ON employee.DepartmentID=department.DepartmentID
Name | DepartmentID |
Rafferty | 31 |
Jones | 33 |
Heisenberg | 33 |
Robinson | 34 |
Smith | 34 |
Williams | NULL |
表1
DepartmentID | DepartmentName |
31 | Sales |
33 | Engineering |
34 | Clerical |
35 | Marketing |
表2
上述求交集的JOIN语句的执行结果可以如表3所示:
Employee.Name | Employee.DepartmentID |
Robinson | 34 |
Jones | 33 |
Smith | 34 |
Heisenberg | 33 |
Rafferty | 31 |
表3
在一些实施例中,联合查询语句也可以是其他多表数据联合操作的语句,具体的根据实际情况进行选择,本申请实施例不作限定。
本申请实施例中,第一设备可以对人机交互语言形式的联合查询语句进行解析,理解联合查询语句中包含的指令的含义,并对其中包含的一个或多个运算单元进行粒度划分,得到联合查询语句对应的至少一个算子。这里,在数据联合查询场景中,联合查询语句中至少包含联合查询操作,如求交集操作的语句部分,用于计算不同参与方的数据表的交集部分,作为数据联合查询的基础。因此,至少一个算子中至少包含联合查询操作对应的联合查询算子。
S102、基于预设安全协议,将联合查询算子转化为第一联合安全算子。
本申请实施例中,第一设备可以基于预设安全协议,将交集计算任务转化为第一联合安全算子,以通过第一联合安全算子,在不泄露数据明文内容的条件下,对跨源求交集操作进行安全保护。
在一些实施例中,第一设备可以采用同态加密、差分隐私、半同态加密、秘密分享、多方安全计算等预设安全协议构建交集安全算子。示例性地,可以通过多方安全计算协议构PSI算子。也可以基于其他预设安全协议进行具体实现逻辑的封装,以构建出其他类型的第一联合安全算子,具体的根据实际情况进行选择,本申请实施例不作限定。
需要说明的是,本申请实施例中,第二设备上运行的第二联合安全算子需要与第一联合安全算子使用相同的安全协议构建,以实现第一设备与第二设备的密文交互。
S103、将第一联合安全算子,与第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表。
本申请实施例中,第一设备在将联合查询算子转化为第一联合安全算子的情况下,可以通过执行引擎启动对至少一个算子的处理。
在一些实施例中,第一设备可以将至少一个算子中的查询算子分发至至少一个执行引擎进行并行地处理。至少一个引擎可以部署在第一设备上,也可以部署在至少一个第三方设备上,由第一设备进行驱动。具体的根据实际情况进行选择,本申请实施例不作限定。
本申请实施例中,第一设备的执行引擎对第一联合安全算子的执行,需要与第二设备同步。这里,第二设备可以同样对联合查询语句进行解析与算子划分,以及安全协议转换处理,得到联合查询语句中的联合查询算子对应的第二联合安全算子。这样,在第一设备启动对第一联合安全算子的执行的情况下,通过预设安全协议,如PSI协议,在第二设备上同步启动对第二联合安全算子的执行。
本申请实施例中,PSI协议允许持有各自数据集合的参与方安全的执行计算集合的交集运算。PSI协议结束之后,一方或多方能够得到交集结果,但是任一参与方都无法获知交集以外的其他参与方集合数据的任何信息。在一些实施例中,PSI协议的实现方案可以包括基于盲签名的方案、基于不经意传输的方案和基于Freedman协议的方案等等,具体的根据实际情况进行选择,本申请实施例不作限定。
本申请实施例中,第一设备可以与第二设备同步执行第一联合安全算子与第二联合安全算子,以密文形式交互第一设备的第一待求交数据与第二设备的第二待求交数据,并进行求交集计算,得到联合数据表。
S104、基于联合数据表,完成对至少一个算子的处理,实现数据联合查询。
本申请实施例中,联合数据表包含了第一待求交数据与第二待求交数据中的等值映射关系。第一设备可以基于联合数据表,执行至少一个算子中表征其他运算操作的算子,以实现基于联合数据表的不同数据处理功能,从而完成对至少一个算子的处理,实现对第一待求交数据与第二待求交数据的数据联合查询。
在一些实施例中,至少一个算子中可以包含有计数算子,第一设备可以基于联合数据表,通过计数算子统计联合数据表中的数据项个数,作为第一待求交数据与第二待求交数据的交集数据的个数,从而实现计数功能的数据联合查询。或者,第一设备也可以通过求最大值算子、求最小值算子等,基于联合数据表实现交集数据求极值功能的数据联合查询,具体的根据实际情况进行选择,本申请实施例不作限定。
可以理解的是,通过对联合查询语句进行解析,从中划分出联合查询算子转化为第一联合安全算子,并结合第二设备上的第二联合安全算子进行同步的安全密文传输与计算,实现了去中心化的分布式计算过程,无需将数据发送到第三方服务器进行数据分析,并通过加密传输与计算方式,同时保护了数据联合分析的双方的数据隐私,从而提高了数据联合查询的安全性。
在一些实施例中,基于图5,如图6所示,S101可以通过S1011-S1012至实现,将结合各步骤进行说明。
S1011、对联合查询语句进行词法解析与语法解析,得到联合查询语句对应的语法关系结构;语法关系结构包含联合查询语句中至少一个字符单元以及每个字符单元之间的上下文关系。
本申请实施例中,第一设备可以通过词法解析与语法解析,实现对联合查询语句的语法分析,得到联合查询语句对应的语法关系结构。这里,语法关系结构包含联合查询语句中至少一个字符单元以及每个字符单元之间的上下文关系。
示例性地,在联合查询语句为SQL语句的情况下,第一设备可以将SQL语句中的字符序列分解为至少一个独立的词法单元(Token),每个词法单元可以包含<类型,值>格式的数据。并根据不同数据库SQL执行引擎所提供的字典,将至少一个词法单元分别归类为关键字、表达式、字面量和操作符等不同的类型,进而从至少一个Token中识别各类短语作为字符单元,将识别出的字符单元作为节点,以递归的方式逐层构建出一颗抽象语法树(Abstract Syntax Tree,AST),作为语法关系结构。这里,AST是SQL语句的语法关系结构的一种树状形式的抽象表示,AST中的节点与SQL语句内容是一一对应的,通过遍历整个AST可以拼接出一个与AST语义相同的SQL语句。
在一些实施例中,第一设备可以QueryParser、Druid SQL Parser、SparkSQL等对联合查询语句进行词法解析与语法解析,得到AST作为联合查询语句对应的语法关系结构,也可以通过其他的解析方法来实现,具体的根据实际情况进行选择,本申请实施例不作限定。
示例性地,在联合查询语句为如下所示的SQL语句的情况下,第一设备对联合查询语句进行词法解析和语法集合后,所得到的抽象语法树AST可以如图7所示。
SELECT COUNT(DISTINCT partya.table.id)
FROM partya.tablea
JOIN partyb.tableb
ON partya.tablea.id=partyb.tableb.id;
本申请实施例中,AST中的节点包括叶子节点与非叶子节点。其中,叶子节点为字面量类型的字符单元对应的节点,可以包括联合查询语句中表名、字段名、数值、字符串等,如图7中的pa.ta.id节点、pb.tb.id节点、pa.ta节点与pb.tb节点。非叶子节点可以包括联合查询语句中的关键字或保留字符类型的字符单元对应的节点,如图7中的Select节点、Expression节点、From节点、JOIN节点、ON节点等等。
S1012、在语法关系结构中,将至少一个字符单元中的预设联合运算符与预设筛选关键字所对应的子结构划分为联合查询算子,并通过遍历语法关系结构,基于预设业务规则划分出至少一个算子中的其他算子,从而得到包含联合查询算子的至少一个算子。
本申请实施例中,第一设备可以根据上下文关系遍历语法关系结构,在遍历过程中,将至少一个字符单元中的预设联合运算符与预设筛选关键字及其相关联的上下文关系所对应的子结构划分为联合查询算子,语法关系结构中的其他部分从而基于至少一个字符单元中的求交集运算符得到联合查询算子,并通过遍历语法关系结构中的其他部分,基于预设业务规则进行运算单元的划分,直至对语法关系结果遍历完毕,得到包含联合查询算子的至少一个算子。
在一些实施例中,在语法关系结构为AST的情况下,第一设备可以将AST中的每个节点作为字符单元,从AST中的叶子节点开始,遍历叶子节点的父节点,以及父节点的父节点,在遍历过程中,如果遍历经过的节点可以构成一个数据运算的最小运算单元,则将这些节点划分为一个算子。示例性地,第一设备可以从图7中的叶子节点pa.ta.id开始遍历,遍历至From节点时,可以确定出如图8中的子树80作为联合查询算子。第一设备以上述方式继续对AST的其他部分进行遍历,直至完成对AST树的遍历,得到至少一个算子。
在一些实施例中,预设业务规则可以是以最小功能单元对对语法关系结构进行遍历与划分,也可以根据实际需要采用其他运算单元划分粒度作为预设业务规则,具体的根据实际情况进行选择,本申请实施例不作限定。
可以理解的是,本申请实施例中,通过将数据联合查询语句进行语法关系结构的构建与算子划分,得到联合查询语句对应的至少一个算子,从而可以以至少一个算子为单位实施安全运算,从而提高了数据联合分析的安全性。
在一些实施例中,基于图6,S102中得到联合查询算子之后,第一设备还可以执行S201-S203,对联合查询算子进行安全计算权限分析,如图9所示,将结合各步骤进行说明,
S201、根据联合查询算子中预设联合运算符对应的第一数据表名,获取第一数据表名对应的预设数据表权限;第一数据表名为第一设备的第一数据表的表名。
本申请实施例中,第一设备可以根据联合查询算子中预设联合运算符,获取预设联合运算符在第一设备上对应的数据表对象的名称,即第一数据表名。
在一些实施例中,对于图8中示出的联合查询算子80,第一设备可以通过预设联合运算符JOIN,获取JOIN运算符对应的第一设备上的数据表名,如pa.ta,作为第一数据表名。
本申请实施例中,第一设备可以预先在预设的元数据库中注册自身拥有的数据表中各项记录的预设操作权限。示例性地,根据第一数据表的表名、各个字段的字段名或列名等等,在预设的元数据库中分别配置相应的预设操作权限。这里,预设的元数据库可以是第三方设备上的数据库,也可以部署在第一设备有权限访问的任意位置,具体的根据实际情况进行选择,本申请实施例不作限定。
本申请实施例中,第一设备可以从预设的元数据库中,获取第一数据表名对应的预设数据表权限。
S202、根据预设筛选关键字对应的等值连接条件中包含的第一求交字段名,获取第一求交字段名对应的预设字段权限。
本申请实施例中,第一设备可以根据联合查询算子中预设筛选关键字对应的等值连接条件,获取等值连接条件中包含的第一数据表名下的求交字段名,即第一求交字段名。
在一些实施例中,对于图8中示出的联合查询算子80,第一设备可以通过预设筛选关键字ON,获取关键字ON对应的等值连接条件“pa.ta.id=pb.tb.id”中包含的第一数据表名pa.ta下的求交字段名pa.ta.id作为第一求交字段名。
本申请实施例中,第一设备可以从预设的元数据库中,获取第一求交字段名对应的预设字段权限。
S203、在预设数据表权限与预设字段权限中的任一个不满足预设联合查询权限条件的情况下,进行告警提示,不执行联合查询算子。
本申请实施例中,第一设备可以根据预设数据表权限与预设字段权限,对联合查询算子的操作进行权限检查,在预设数据表权限与预设字段权限中的任一个不满足预设联合查询权限条件的情况下,也即联合查询算子所要操作的第一数据表名或第一求交字段名对应的数据内容不允许参与数据联合查询操作的情况下,进行告警提示,拒绝执行联合查询算子,不进行联合查询算子的安全转化以及后续的执行操作。
在一些实施例中,第一设备可以对一些记录有隐私数据,如明细数据的字段进行权限保护,禁止其参与数据联合查询,而允许由明细数据通过计算后产生的中间数据,如汇总后生成的聚合性数据参与数据联合查询,以此来设置预设联合查询权限,实现对第一设备中的数据内容的隐私保护。因此,第一设备根据预设数据表权限与预设字段权限的情况下,对于一些可能会造成隐私数据的泄露的联合查询算子,如对某个数据列的明细发起查询的单列SELECT查询,第一设备可以根据预设联合查询权限,及时发起告警提示,拒绝执行可能造成数据泄露的联合查询操作。
可以理解的是,本申请实施例中,通过对联合查询算子的权限操作进行校验,可以防止数据联合查询的发起方访问到未被授权的数据,从而保护了数据联合查询参与方的隐私,进一步提高了数据联合查询的安全性。
在一些实施例中,S101中得到语法关系结构之后,第一设备还可以根据预设优化策略,对语法关系结构进行优化。示例性地,通用的SQL查询优化方法可以无缝地应用与本申请实施例的数据联合查询方法流程中。或者,在一些实施例中,由于联合查询算子涉及多方的安全联合计算,可能涉及加密和解密操作(例如,同态加密),所需要的计算耗时往往更长,计算代价更高。为此,第一设备也可以为联合查询算子进行针对性的优化。这里,预设的优化策略可以包括基于代价的优化策略,如列裁剪、谓词下推、常量折叠中的至少一个,具体的根据实际情况进行选择,本申请实施例不作限定。
示例性地,以下SQL语句可以用于统计在20210101日期中通过点击游戏红点登录游戏账号的数量:
SELECT count(distinct t1.suin)cnt
FROM db_ieg::t_game_login_detail partition(p_20210101)t1//t1存储游戏的登录明细
JOIN db_wxg::t_red_dot_click_detail partition(p_20210101)t2//t2存储游戏红点的点击情况
ON t1.suin=t2.commid;
第一设备可以通过列裁剪的优化方式,对上述SQL语句进行优化,得到如下所示的优化后的SQL语句:SELECT COUNT(DISTINCT partya.table.id)
FROM partya.tablea
JOIN partyb.tableb
ON partya.tablea.id=partyb.tableb.id;
可以理解的是,本申请实施例中,通过对语法关系结构进行优化,可以简化数据联合查询的处理流程,提高数据联合查询的效率。
在一些实施例中,基于图5、图6或图9,S103可以通过S1031-S1032来实现,如图10所示,将结合各步骤进行说明。
S1031、根据第一联合安全算子中的第一数据表名与第一求交字段名,从自身对应的预设第一存储空间中获取第一待求交数据。
本申请实施例中,第一设备可以根据第一联合安全算子中的第一数据表名与第一求交字段名,从第一设备对应的预设第一存储空间中确定第一数据表名对应的第一数据表,并从第一数据表中获取第一求交字段名对应的字段记录,作为第一待求交数据。
示例性地,第一数据表userdata1可以如表4所示:
User_ID | User_Name |
1 | Name A |
2 | Name B |
3 | Name C |
4 | Name D |
表4
在第一联合安全算子中的第一数据表名为userdata1,第一求交字段名为User_ID的情况下,第一设备获取的第一待求交数据如表5所示:
User_ID |
1 |
2 |
3 |
4 |
表5
S1032、通过第一执行引擎,与第二设备分别同步运行第一联合安全算子与第二联合安全算子,对第一待求交数据与第二待求交数据进行数据加密传输与交集计算,得到联合数据表
本申请实施例中,第一设备可以通过第一执行引擎运行第一联合安全算子,并通过第二设备同步运行第二联合安全算子,通过第一联合安全算子与第二联合安全算子的同步运行,对第一待求交数据与第二待求交数据进行数据加密传输与交集计算,得到联合数据表。
在一些实施例中,在预设安全协议为PSI协议的情况下,第一设备可以通过执行第一联合安全算子,使用PSI协议的公钥对第一待求交数据进行加密,得到第一中间加密数据;将第一中间加密数据发送至第二设备,以使第二设备通过第二联合安全算子,使用PSI协议的公钥对第一中间加密数据进行加密,得到第一加密数据;并且,第一设备可以接收第二设备发送的第一加密数据,以及第二设备通过第二联合安全算子对第二待求交数据进行加密得到的第二中间加密数据;通过第一联合安全算子,对第二中间加密数据进行加密,得到第二加密数据;进而,第一设备可以对密文形式的对第一加密数据与第二加密数据进行求交集计算,得到联合数据表。示例性地,第一设备计算第一加密数据与第二加密数据中至少一条相同记录,将至少一条相同记录的等值映射关系作为联合数据表。
将结合本申请实施例提供的应用于第二设备,即终端400-2的示例性应用和实施,说明本申请实施例提供的数据联合查询方法。参见图11,图11是本申请实施例提供的数据联合查询方法的一个可选的流程示意图。将结合图11示出的步骤进行说明。
S301、基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子。
本申请实施例中,第二设备在接收到联合查询语句的情况下,基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子的过程与S101-S102中的处理过程描述一致,此处不再赘述。
S302、将第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表。
本申请实施例中,第二设备可以根据第二联合安全算子中的第二数据表名与第二求交字段名,从自身对应的预设第二存储空间中获取第二待求交数据;
示例性地,第二数据表userdata2可以如表6所示:
User_ID | User_Name |
2 | Name B |
3 | Name C |
5 | Name E |
6 | Name F |
表6
在第二联合安全算子中的第二数据表名为userdata2,第二求交字段名为User_ID的情况下,第二设备获取的第二待求交数据如表7所示:
User_ID |
2 |
3 |
5 |
6 |
表7
本申请实施例中,第二设备可以通过第二执行引擎,与第一设备分别同步运行第一联合安全算子与第二联合安全算子,对第一待求交数据与第二待求交数据进行数据加密传输与交集计算,得到联合数据表。
在一些实施例中,在第一联合安全算子与第二联合安全算子为基于PSI协议实现的PSI算子的情况下,结合上述第一设备的执行过程,第一设备与第二设备同步执行第一联合安全算子与第二联合安全算子进行密文数据交互与交集过程可以如图12所示。
S401-1、第一设备通过第一执行引擎运行第一联合安全算子。
S401-2、第二设备通过第二执行引擎运行第二联合安全算子。
本申请实施例中,S401-1与S401-2同步执行。
S402、第一设备对第一待求交数据进行加密,得到第一中间加密数据。
S403、第一设备将第一中间加密数据发送至第二设备。
S404、第二设备对第一中间加密数据进行加密,得到第一加密数据。
S405、第二设备将第一加密数据发送至第一设备。
S406、第二设备对第二待求交数据进行加密,得到第二中间加密数据。
S407、第二设备将第二中间加密数据发送至第一设备。
这里,S406可以在S401-2之后,S407之前执行,示例性地,可以与S402同步执行,也可以在S404或405之后执行,本申请实施例不作限定。
S408、第一设备对第二中间加密数据进行加密,得到第二加密数据。
本申请实施例中,对于第一设备一方计算得到联合数据表的情况,S408之后,可以直接执行S410-1。
S409、第一设备将第二加密数据发送至第二设备。
S410-1、第一设备对第一加密数据与第二加密数据进行求交集计算,得到联合数据表。
S410-2、第二设备对第一加密数据与第二加密数据进行求交集计算,得到联合数据表。
本申请实施例中,对于第二设备一方计算得到联合数据表的情况,S408之后,可以直接执行S410-2。对于第一设备与第二设备同时得到联合数据表的情况,可以第一设备与第二设备可以同步执行S410-1与S410-2。
在一些实施例中个,基于上述表5与表7,联合数据表中可以包含userdata1中的User_ID2和3与userdata2中的User_ID2和3为相同数据记录的等值映射关系,从而,第一设备或第二设备可以基于上述等值映射关系,进行进一步的数据联合分析,完成数据联合查询。
可以理解的是,本申请实施例中,通过PSI协议构建联合安全算子,利用PSI的安全性来严格保证第一设备和第二设备任一方数据表的明文数据不会泄露,从而提高了数据联合查询的安全性。
下面,将结合图13,介绍本申请实施例在一些实际场景中的示例性应用。
在一些实施例中,本申请实施例提供的数据联合查询方法可以应用于计算广告的实际效果。示例性地,线上广告是一种重要的广告形式。对于广告的有效程度的衡量的常见方法是计算转换率,也就是浏览广告的用户中有多少用户最终浏览了相应的商品页面,或是最终购买了相应的商品或是服务。因此,可以通过本申请实施例提供的数据联合查询方法,计算浏览广告的用户信息(由广告发送方占有)和完成相应交易的用户信息(由商家占有)的交集(如计算交易总额或是总交易量等),与此同时保证双方的用户信息的私密性,避免一方的信息暴露给另一方,造成用户和商家或是广告主的隐私泄露。
在一些实施例中,本申请实施例提供的数据联合查询方法可以应用于寻找联系人场景。示例性地,当一个用户注册使用一种新的通讯软件B时,可以从用户的现有的通讯软件A的联系人中寻找有哪些已经注册了通讯软件B,通过本申请实施例提供的数据联合查询方法安全地实现将通讯软件A的联系人发送给通讯软件B的服务提供商,实现联系人的安全导入。
为上述应用场景中,在接收到用于进行广告效果分析或联系人导入的联合查询SQL语句的情况下,第一设备可以使用语法解析器或通过安全联合计算编译器,对SQL语句进行编译,将SQL语句转换为如图7所示的抽象语法树。第一设备对获得的AST进行权限分析。对于合法的查询操作,对安全联合查询SQL命令进行最小功能划分;并在底层计算协议的实现上,根据PSI协议把AST转换成以安全计算算子作为联合安全算子,以原子任务的形式分发到执行引擎进行分布式计划的执行。在所述执行计划中,PSI算子对应AST中From子树,去重算子和计数算子分别对应AST中的Distinct和Count子树或节点。当遍历到From节点时,通过Join和On节点分别获取数据联合查询参数参与双方,如参与方partya和参与方partyb分别对应的输入表“pa.ta”、“pb.tb”以及等值连接条件“=”,等值条件代表“pa.ta.id=pb.tb.id”。
如图13所示,PSI任务在partya和partyb两方成对出现,如图13右侧所示,一个属于partya方,另外一个属于partyb方。PSI任务最主要的参数是输入表table以及求交字段id。因此,对于partya方的PSI任务,其table和id字段分别为“pa.ta”和“pa.ta.id”;对于partyb方的PSI任务,其table和id字段分别为“pb.tb”和“pb.tb.id”。partya和partyb两方的PSI任务配置好参数之后,同时启动。等到任务结束,可以得到partya和partyb两方在“pa.ta.id=pb.tb.id”的内容,并且各自私有的内容均不被泄漏。
下面继续说明本申请实施例提供的数据联合查询装置255的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器450-1的数据联合查询装置455-1中的软件模块可以包括:第一解析处理模块4551-1、第一转化模块4552-2、第一计算模块4553-1和处理模块4554,其中,
所述第一解析处理模块4551-1,用于对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;
所述第一转化模块4552-1,用于基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
所述第一计算模块4553-1,用于将所述第一联合安全算子,与所述第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表;
所述处理模块4554,用于基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
在一些实施例中,所述第一解析处理模块4551-1,用于对所述联合查询语句进行词法解析与语法解析,得到所述联合查询语句对应的语法关系结构;所述语法关系结构包含所述联合查询语句中至少一个字符单元以及每个字符单元之间的上下文关系;在所述语法关系结构中,将所述至少一个字符单元中的预设联合运算符与预设筛选关键字所对应的子结构划分为联合查询算子,并通过遍历所述语法关系结构,基于预设业务规则划分出所述至少一个算子中的其他算子,从而得到包含所述联合查询算子的所述至少一个算子。
在一些实施例中,所述第一计算模块4553-1,用于根据所述联合查询算子中预设联合运算符对应的第一数据表名,获取所述第一数据表名对应的预设数据表权限;所述第一数据表名为所述第一设备的第一数据表的表名;根据所述预设筛选关键字对应的等值连接条件中包含的第一求交字段名,获取所述第一求交字段名对应的预设字段权限;
在一些实施例中,所述数据联合查询装置455-1还包括权限校验模块,所述权限校验模块,用于在所述预设数据表权限与所述预设字段权限中的任一个不满足预设联合查询权限条件的情况下,进行告警提示,不执行所述联合查询算子。
在一些实施例中,所述数据联合查询装置455-1还包括优化模块,所述优化模块,用于根据预设优化策略,对所述语法关系结构进行优化;其中,所述预设优化策略至少包括:列裁剪、谓词下推、常量折叠中的至少一个;或者,通过所述预设优化策略,对所述联合查询算子进行优化。
在一些实施例中,所述第一计算模块4553-1,还用于根据所述第一联合安全算子中的第一数据表名与第一求交字段名,从自身对应的预设第一存储空间中获取所述第一待求交数据;通过第一执行引擎,与所述第二设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据的数据加密传输与交集计算,得到联合数据表。
在一些实施例中,所述第一计算模块4553-1,还用于通过所述第一执行引擎运行所述第一联合安全算子,对所述第一待求交数据进行加密,得到第一中间加密数据;将所述第一中间加密数据发送至所述第二设备,以使所述第二设备通过执行所述第二联合安全算子对所述第一中间加密数据进行加密,得到第一加密数据;接收所述第二设备发送的所述第一加密数据,以及所述第二设备发送的第二中间加密数据;所述第二中间加密数据为所述第二设备通过执行所述第二联合安全算子,对所述第二待求交数据进行加密得到的加密数据;通过所述第一联合安全算子,对所述第二中间加密数据进行加密,得到第二加密数据;对所述第一加密数据与所述第二加密数据进行求交集计算,得到所述联合数据表。
在一些实施例中,如图4所示,存储在存储器450-2中的数据联合查询装置455-2中的软件模块可以包括以下软件模块:第二解析处理4551-2、第二转化模块4552-2、第二计算模块4553-2,其中,
第二解析处理4551-2与第二转化模块4552-2,用于基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子;
第二计算模块4553-2,用于将所述第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与所述第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表。
在一些实施例中,所述第二计算模块4553-2,还用于根据所述第二联合安全算子中的第二数据表名与第二求交字段名,从自身对应的预设第二存储空间中获取所述第二待求交数据;通过第二执行引擎,与所述第一设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据的数据加密传输与交集计算,得到联合数据表。
在一些实施例中,所述第二计算模块4553-2,还用于接收所述第一设备发送的所述第一中间加密数据,通过所述第二执行引擎运行所述第二联合安全算子,对所述第一中间加密数据进行加密,得到第一加密数据;将所述第一加密数据发送至所述第一设备;通过所述第二联合安全算子,对所述第二待求交数据进行加密,得到第二中间加密数据;将所述第一加密数据与所述第二中间加密数据发送至所述第一设备,以使所述第一设备通过所述第一联合安全算子对所述第二中间加密数据进行加密,得到第二加密数据;对所述第一加密数据与所述第二加密数据进行求交集计算,得到所述联合数据表。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机程序或可执行指令,在计算机程序或可执行指令在电子设备上运行的情况下,电子设备执行如本申请实施例中所述的数据联合查询方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图5、6、9、10、11中示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,本申请实施例通过对联合查询语句进行解析,从中划分出联合查询算子转化为第一联合安全算子,并结合第二设备上的第二联合安全算子进行同步的安全密文传输与计算,实现了去中心化的分布式计算过程,无需将数据发送到第三方服务器进行数据分析,并通过加密传输与计算方式,同时保护了数据联合分析的双方的数据隐私,从而提高了数据联合查询的安全性。并且,过对联合查询算子的权限操作进行校验,可以防止数据联合查询的发起方访问到未被授权的数据,从而保护了数据联合查询参与方的隐私,进一步提高了数据联合查询的安全性。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种数据联合查询方法,其特征在于,包括:
对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;
基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
将所述第一联合安全算子,与所述第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表;
基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
2.根据权利要求1所述的方法,其特征在于,所述对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子,包括:
对所述联合查询语句进行词法解析与语法解析,得到所述联合查询语句对应的语法关系结构;所述语法关系结构包含所述联合查询语句中至少一个字符单元以及每个字符单元之间的上下文关系;
在所述语法关系结构中,将所述至少一个字符单元中的预设联合运算符与预设筛选关键字所对应的子结构划分为联合查询算子,并通过遍历所述语法关系结构,基于预设业务规则划分出所述至少一个算子中的其他算子,从而得到包含所述联合查询算子的所述至少一个算子。
3.根据权利要求2所述的方法,其特征在于,所述将所述至少一个字符单元中的预设联合运算符与预设筛选关键字所对应的子结构划分为联合查询算子之后,所述方法还包括:
根据所述联合查询算子中预设联合运算符对应的第一数据表名,获取所述第一数据表名对应的预设数据表权限;所述第一数据表名为所述第一设备的第一数据表的表名;
根据所述预设筛选关键字对应的等值连接条件中包含的第一求交字段名,获取所述第一求交字段名对应的预设字段权限;
在所述预设数据表权限与所述预设字段权限中的任一个不满足预设联合查询权限条件的情况下,进行告警提示,不执行所述联合查询算子。
4.根据权利要求2或3所述的方法,其特征在于,所述对所述联合查询语句进行词法解析与语法解析,得到所述联合查询语句对应的语法关系结构之后,所述方法还包括:
根据预设优化策略,对所述语法关系结构进行优化;其中,
所述预设优化策略至少包括:列裁剪、谓词下推、常量折叠中的至少一个;
所述在所述语法关系结构中,将所述至少一个字符单元中的预设联合运算符与预设筛选关键字所对应的子结构划分为联合查询算子之后,所述方法还包括:
通过所述预设优化策略,对所述联合查询算子进行优化。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述第一联合安全算子,与所述第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表,包括:
根据所述第一联合安全算子中的第一数据表名与第一求交字段名,从自身对应的预设第一存储空间中获取所述第一待求交数据;
通过第一执行引擎,与所述第二设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据进行数据加密传输与交集计算,得到联合数据表。
6.根据权利要求5所述的方法,其特征在于,所述通过第一执行引擎,与所述第二设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据进行数据加密传输与交集计算,得到联合数据表,包括:
通过所述第一执行引擎运行所述第一联合安全算子,对所述第一待求交数据进行加密,得到第一中间加密数据;
将所述第一中间加密数据发送至所述第二设备,以使所述第二设备通过执行所述第二联合安全算子对所述第一中间加密数据进行加密,得到第一加密数据;
接收所述第二设备发送的所述第一加密数据,以及所述第二设备发送的第二中间加密数据;所述第二中间加密数据为所述第二设备通过执行所述第二联合安全算子,对所述第二待求交数据进行加密得到的加密数据;
通过所述第一联合安全算子,对所述第二中间加密数据进行加密,得到第二加密数据;
对所述第一加密数据与所述第二加密数据进行求交集计算,得到所述联合数据表。
7.一种数据联合查询方法,其特征在于,包括:
基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子;
将所述第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与所述第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表。
8.根据权利要求7所述的方法,其特征在于,所述将所述第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与所述第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表,包括:
根据所述第二联合安全算子中的第二数据表名与第二求交字段名,从自身对应的预设第二存储空间中获取所述第二待求交数据;
通过第二执行引擎,与所述第一设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据进行数据加密传输与交集计算,得到联合数据表。
9.根据权利要求8所述的方法,其特征在于,所述通过第二执行引擎,与所述第一设备分别同步运行所述第一联合安全算子与所述第二联合安全算子,对所述第一待求交数据与所述第二待求交数据进行数据加密传输与交集计算,得到联合数据表,包括:
接收所述第一设备发送的所述第一中间加密数据,通过所述第二执行引擎运行所述第二联合安全算子,对所述第一中间加密数据进行加密,得到第一加密数据;
通过所述第二联合安全算子,对所述第二待求交数据进行加密,得到第二中间加密数据;
将所述第一加密数据与所述第二中间加密数据发送至所述第一设备,以使所述第一设备通过所述第一联合安全算子对所述第二中间加密数据进行加密,得到第二加密数据;
对所述第一加密数据与所述第二加密数据进行求交集计算,得到所述联合数据表。
10.一种数据联合查询系统,其特征在于,包括第一设备与第二设备,所述第一设备与所述第二设备互相连接,其中,
所述第一设备,用于接收联合查询语句,并对所述联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
所述第二设备,用于接收所述联合查询语句,并基于所述联合查询语句与所述预设安全协议得到第二联合安全算子;
所述第一设备与所述第二设备,还用于通过同步执行所述第一联合安全算子与所述第二联合安全算子,以密文形式对所述第一设备的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,在所述第一设备或所述第二设备中的至少一个设备上得到联合数据表;
所述第一设备或所述第二设备,还用于基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
11.一种数据联合查询装置,其特征在于,包括:
第一解析处理模块,用于对接收到的联合查询语句进行解析与运算单元划分,得到包含联合查询算子的至少一个算子;所述联合查询语句用于向第一设备与第二设备同步发起数据联合查询;
第一转化模块,用于基于预设安全协议,将所述联合查询算子转化为第一联合安全算子;
第一计算模块,用于将所述第一联合安全算子,与所述第二设备上的第二联合安全算子同步执行,以密文形式对自身的第一待求交数据与所述第二设备的第二待求交数据进行数据交互与联合计算,得到联合数据表;
处理模块,用于基于所述联合数据表,完成对所述至少一个算子的处理,实现数据联合查询。
12.一种数据联合查询装置,其特征在于,包括:
第二解析处理模块与第二转化模块,用于基于预设安全协议,对接收到的联合查询语句与进行解析处理与转化,得到第二联合安全算子;
第二计算模块,用于将所述第二联合安全算子,与第一设备上的第一联合安全算子同步执行,以密文形式对自身的第二待求交数据与所述第一设备的第一待求交数据进行数据交互与联合计算,得到联合数据表。
13.一种第一设备,其特征在于,包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现权利要求1至6中任一项所述的方法。
14.一种第二设备,其特征在于,包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现权利要求7至9中任一项所述的方法。
15.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时,实现权利要求1至6中任一项,或权利要求7至9中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110994560.3A CN114328504A (zh) | 2021-08-27 | 2021-08-27 | 数据联合查询方法、装置、设备及计算机可读存储介质 |
PCT/CN2022/107690 WO2023024789A1 (zh) | 2021-08-27 | 2022-07-25 | 一种数据联合查询方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
US18/335,424 US20230325389A1 (en) | 2021-08-27 | 2023-06-15 | Method and apparatus for federated data query, electronic device, and computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110994560.3A CN114328504A (zh) | 2021-08-27 | 2021-08-27 | 数据联合查询方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328504A true CN114328504A (zh) | 2022-04-12 |
Family
ID=81044853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110994560.3A Pending CN114328504A (zh) | 2021-08-27 | 2021-08-27 | 数据联合查询方法、装置、设备及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230325389A1 (zh) |
CN (1) | CN114328504A (zh) |
WO (1) | WO2023024789A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647662A (zh) * | 2022-05-13 | 2022-06-21 | 富算科技(上海)有限公司 | 数据检索方法、装置、电子设备、存储介质 |
CN114969830A (zh) * | 2022-07-18 | 2022-08-30 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、系统和可读存储介质 |
CN115168410A (zh) * | 2022-09-07 | 2022-10-11 | 北京镜舟科技有限公司 | 算子执行方法、装置、电子设备及存储介质 |
CN115292353A (zh) * | 2022-10-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
WO2023024789A1 (zh) * | 2021-08-27 | 2023-03-02 | 腾讯科技(深圳)有限公司 | 一种数据联合查询方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
CN115795547A (zh) * | 2022-12-09 | 2023-03-14 | 京信数据科技有限公司 | 用于查询数据的方法、装置、终端及计算机存储介质 |
WO2024016547A1 (zh) * | 2022-07-22 | 2024-01-25 | 蚂蚁区块链科技(上海)有限公司 | 一种基于多方协作的数据查询方法及装置 |
CN117892924A (zh) * | 2024-03-12 | 2024-04-16 | 天津理工大学 | 一种机房设备的部署规划方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506227B (zh) * | 2023-06-27 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10614242B2 (en) * | 2016-09-30 | 2020-04-07 | Northwestern University | System and method for secure query processing for private data networks |
CN111382174B (zh) * | 2018-12-28 | 2023-10-17 | 百度在线网络技术(北京)有限公司 | 多方数据联合查询方法、装置、服务器和存储介质 |
CN112860738B (zh) * | 2021-04-23 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 针对多方安全数据库的查询优化方法、装置和系统 |
CN114328504A (zh) * | 2021-08-27 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 数据联合查询方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-08-27 CN CN202110994560.3A patent/CN114328504A/zh active Pending
-
2022
- 2022-07-25 WO PCT/CN2022/107690 patent/WO2023024789A1/zh unknown
-
2023
- 2023-06-15 US US18/335,424 patent/US20230325389A1/en active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023024789A1 (zh) * | 2021-08-27 | 2023-03-02 | 腾讯科技(深圳)有限公司 | 一种数据联合查询方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
CN114647662A (zh) * | 2022-05-13 | 2022-06-21 | 富算科技(上海)有限公司 | 数据检索方法、装置、电子设备、存储介质 |
CN114969830A (zh) * | 2022-07-18 | 2022-08-30 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、系统和可读存储介质 |
CN114969830B (zh) * | 2022-07-18 | 2022-09-30 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、系统和可读存储介质 |
WO2024016547A1 (zh) * | 2022-07-22 | 2024-01-25 | 蚂蚁区块链科技(上海)有限公司 | 一种基于多方协作的数据查询方法及装置 |
CN115168410A (zh) * | 2022-09-07 | 2022-10-11 | 北京镜舟科技有限公司 | 算子执行方法、装置、电子设备及存储介质 |
CN115168410B (zh) * | 2022-09-07 | 2022-12-20 | 北京镜舟科技有限公司 | 算子执行方法、装置、电子设备及存储介质 |
CN115292353A (zh) * | 2022-10-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN115795547A (zh) * | 2022-12-09 | 2023-03-14 | 京信数据科技有限公司 | 用于查询数据的方法、装置、终端及计算机存储介质 |
CN117892924A (zh) * | 2024-03-12 | 2024-04-16 | 天津理工大学 | 一种机房设备的部署规划方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023024789A1 (zh) | 2023-03-02 |
US20230325389A1 (en) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114328504A (zh) | 数据联合查询方法、装置、设备及计算机可读存储介质 | |
EP3144826B1 (en) | A method and apparatus for representing compound relationships in a graph database | |
US9672247B2 (en) | Translating queries into graph queries using primitives | |
US9317542B2 (en) | Declarative specification of data integration workflows for execution on parallel processing platforms | |
US20210224290A1 (en) | Accessing listings in a data exchange | |
US9378241B1 (en) | Concatenated queries based on graph-query results | |
US9298829B2 (en) | Performing a function on rows of data determined from transitive relationships between columns | |
JP6751771B2 (ja) | 解析データセットのための細粒セキュリティ | |
US20130166552A1 (en) | Systems and methods for merging source records in accordance with survivorship rules | |
WO2017048303A1 (en) | Graph-based queries | |
CN111382174A (zh) | 多方数据联合查询方法、装置、服务器和存储介质 | |
WO2020214430A1 (en) | User interface for building a data privacy pipeline and contractual agreement to share data | |
US11907390B2 (en) | Method and apparatus for visual construction of knowledge graph system | |
JP5944039B2 (ja) | 企業のコンテンツ管理における複数のオブジェクトをレポーティングするためのシステム及び方法 | |
US9378239B1 (en) | Verifying graph-based queries | |
CN115280299A (zh) | 合规实体合并和访问 | |
US11741258B2 (en) | Dynamic data dissemination under declarative data subject constraints | |
US20210397601A1 (en) | Enforcing path consistency in graph database path query evaluation | |
CN113452683A (zh) | 一种数据库行列级权限控制的方法和系统 | |
EP2570943B1 (en) | Protection of data privacy in an enterprise system | |
CN115292353B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
US8527552B2 (en) | Database consistent sample data extraction | |
US20140244673A1 (en) | Systems and methods for visualizing master data services information | |
Do et al. | BML: A Data Mapping Language for Blockchain Platforms | |
CN116028956A (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 |