CN116431630A - 一种基于隐私计算的数据处理方法及相关设备 - Google Patents
一种基于隐私计算的数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN116431630A CN116431630A CN202310305519.XA CN202310305519A CN116431630A CN 116431630 A CN116431630 A CN 116431630A CN 202310305519 A CN202310305519 A CN 202310305519A CN 116431630 A CN116431630 A CN 116431630A
- Authority
- CN
- China
- Prior art keywords
- data
- columns
- column
- type
- data set
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 62
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000007667 floating Methods 0.000 claims description 44
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 229910002056 binary alloy Inorganic materials 0.000 claims description 4
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011158 quantitative evaluation Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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/258—Data format conversion from or to a database
-
- 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
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供了一种基于隐私计算的数据处理方法及相关设备,应用于执行大规模数据处理的计算引擎。该方法包括:获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
Description
技术领域
本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种基于隐私计算的数据处理方法及相关设备。
背景技术
在针对数据集进行存储、读取和网络传输等处理时,数据集中的每列数据都需要添加schema描述(例如描述每列数据的数据类型和名称等等)。然而,在大规模数据处理场景中(例如多方参与的隐私计算),由于数据量十分庞大,数据集的列数可能会达到几千列、上万列甚至更多,进而产生几千列、上万列的schema描述,极大程度上增加了计算引擎的数据处理负担,进而降低了计算引擎的数据处理性能。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种基于隐私计算的数据处理方法及相关设备。
第一方面,本说明书提供了一种基于隐私计算的数据处理方法,应用于计算引擎,所述方法包括:
获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;
将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;
对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
在一示出的实施方式中,所述将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集,包括:
将所述多个数据列中数据类型相同的数据列进行合并,并将每个数据列中的数据分别转换成二进制,以获得与所述至少一种数据类型一一对应的所述至少一个数据列;
其中,合并后得到的所述至少一个数据列中的每个数据列包括多个字节串,所述多个字节串中的第i个字节串包括数据类型相同的数据列各自包含的第i个数据的二进制表示;i为大于或者等于1的整数。
在一示出的实施方式中,所述计算引擎包括用于执行大规模数据处理的spark计算引擎。
在一示出的实施方式中,所述待处理的数据集和所述合并后的数据集为dataframe数据集。
在一示出的实施方式中,所述至少一种数据类型包括整型、单精度浮点型、双精度浮点型中的至少一种。
在一示出的实施方式中,所述对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,包括:
对所述合并后的数据集包括的所述至少一个数据列分别添加关于数据类型的schema描述。
在一示出的实施方式中,所述与隐私计算相关的数据处理包括:数据格式转化、数据存储、数据读取、数据传输中的任意一种或多种。
第二方面,本说明书提供了一种基于隐私计算的数据处理装置,应用于计算引擎,所述装置包括:
获取单元,用于获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;
合并单元,用于将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;
数据处理单元,用于对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
在一示出的实施方式中,所述合并单元,具体用于:
将所述多个数据列中数据类型相同的数据列进行合并,并将每个数据列中的数据分别转换成二进制,以获得与所述至少一种数据类型一一对应的所述至少一个数据列;
其中,合并后得到的所述至少一个数据列中的每个数据列包括多个字节串,所述多个字节串中的第i个字节串包括数据类型相同的数据列各自包含的第i个数据的二进制表示;i为大于或者等于1的整数。
在一示出的实施方式中,所述计算引擎包括用于执行大规模数据处理的spark计算引擎。
在一示出的实施方式中,所述待处理的数据集和所述合并后的数据集为dataframe数据集。
在一示出的实施方式中,所述至少一种数据类型包括整型、单精度浮点型、双精度浮点型中的至少一种。
在一示出的实施方式中,所述数据处理单元,具体用于:
对所述合并后的数据集包括的所述至少一个数据列分别添加关于数据类型的schema描述。
在一示出的实施方式中,所述与隐私计算相关的数据处理包括:数据格式转化、数据存储、数据读取、数据传输中的任意一种或多种。
相应地,本说明书还提供了一种计算设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述第一方面所述的基于隐私计算的数据处理方法。
相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述第一方面所述的基于隐私计算的数据处理方法。
综上所述,本申请先获取待处理的数据集,该待处理的数据集可以包括多个数据列,该多个数据列可以包括至少一种数据类型。然后,本申请可以将该多个数据列中数据类型相同的数据列进行合并,获得合并后的数据集。其中,合并后的数据集仅包括与上述至少一种数据类型一一对应的至少一个数据列。后续可以仅针对这至少一个数据列分别添加schema描述,然后再基于该添加了schema描述的至少一个数据列进行与隐私计算相关的数据处理。如此,本申请通过将原有数据集中数据类型相同的多列数据合并成1列的方式,实现了将原有数据集中成千上万的数据列合并成寥寥几列数据,从而直接大幅度减少了schema描述,即减少了整个数据集的schema信息内容,进而提升了整体的数据处理性能。
附图说明
图1是一示例性实施例提供的一种基于隐私计算的数据处理方法的流程示意图;
图2是一示例性实施例提供的一种待处理的数据集的示意图;
图3是一示例性实施例提供的一种合并后的数据集的示意图;
图4是一示例性实施例提供的一种基于隐私计算的数据处理装置的结构示意图;
图5是一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
此外,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本说明书中的部分用语进行解释说明,以便于本邻域技术人员理解。
(1)spark,是专为大规模数据处理而设计的快速通用的计算引擎。在实际应用中,spark计算引擎可以用于参与隐私计算。Spark是基于可伸缩的分布式数据集(ResilientDistributed Dataset,RDD)和scala(一种编程语言)实现的,其中,scala属于强类型语言,在指定变量类型时必须确定数据类型。
(2)schema,用于描述数据属性,例如包括数据的名称、数据类型,等等。在使用spark计算引擎进行隐私计算时,通常需要采用schema描述数据的数据类型。
(3)DataFrame,是一种数据集,一般为表格型的数据结构。dataframe包含一组有序的数据列,每个数据列的数据类型可以不同,比如包括整型(Integer)、单精度浮点型(float)、双精度浮点型(double),等等,此外,还可以是字符串型或者布尔型的数据,等等。一般情况下,一个Integer数据通常占用4个字节(32位),一个float数据通常占用4个字节(32位),一个double数据通常占用8个字节(64位)。
(4)隐私计算,是面向隐私信息全生命周期保护的计算理论和方法,具体是指在处理视频、音频、图像、图形、文字、数值、泛在网络行为信息流等信息时,对所涉及的隐私信息进行描述、度量、评价和融合等操作,形成一套符号化、公式化且具有量化评价标准的隐私计算理论、算法及应用技术,支持多系统融合的隐私信息保护。
然而,在隐私计算场景下,由于隐私计算往往是多方参与,各方的明文数据不出域,因此,在多方进行联合计算时,各方往往需要先对自身持有的明文数据进行加密处理,然后,经过加密处理后的明文数据可以通过DataFrame数据集的形式跨网络传输给另一方,从而实现在保护各方隐私数据的前提下进行联合计算。并且,在每次数据集进行跨网络传输前均需要对数据集中的每列数据添加schema描述(主要包括描述每列数据的数据类型)。进一步地,如上所述,由于隐私计算过程中经常需要对原始数据进行加密处理,且加密处理后的数据的体量将进一步膨胀,因此隐私计算场景下涉及的数据量十分庞大,上述数据集中可能包含几千列上万列甚至更多列的数据,从而产生几千列、上万列的schema描述,使得执行数据处理的Spark等计算引擎的数据处理性能急剧下降,进而影响隐私计算效率。
基于此,本说明书提供了一种基于相同的数据类型,将数据集中成千上万列的数据合并成寥寥几列数据,从而大幅度减少schema描述,进而提升数据处理性能的技术方案。
在实现时,本申请先获取待处理的数据集,该待处理的数据集可以包括多个数据列,该多个数据列可以包括至少一种数据类型。然后,本申请可以将该多个数据列中数据类型相同的数据列进行合并,获得合并后的数据集。其中,合并后的数据集仅包括与上述至少一种数据类型一一对应的至少一个数据列。后续可以仅针对这至少一个数据列分别添加schema描述,然后再基于该添加了schema描述的至少一个数据列进行与隐私计算相关的数据处理。
在以上技术方案中,本申请通过将原有数据集中数据类型相同的多列数据合并成1列的方式,实现了将原有数据集中成千上万的数据列合并成寥寥几列数据,从而直接大幅度减少了schema描述,进而提升了整体的数据处理性能,尤其可以大幅度提升了数据的跨网络传输性能。
请参阅图1,图1是一示例性实施例提供的一种基于隐私计算的数据处理方法的流程示意图。如图1所示,该方法可以应用于执行大规模数据处理的计算引擎,例如包括执行与隐私计算相关的数据处理的计算引擎,该计算引擎可以运行在相应的计算设备上。示例性的,该计算设备可以包括智能可穿戴设备、智能手机、平板电脑、笔记本电脑、台式电脑、车载计算机、服务器,或者由多台服务器构成的服务器集群或者云计算服务中心,等等,本说明书对此不做具体限定。如图1所示,该方法具体可以包括如下步骤S101-步骤S103。
步骤S101,获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型。
如上所述,在大规模数据处理场景中,例如在多方参与的隐私计算场景中,各个计算设备中的计算引擎通常会涉及大量的数据处理。在一示出的实施方式中,该计算引擎可以为用于执行大规模数据处理的spark计算引擎,或者其他任何可能的计算引擎,本说明书对此不做具体限定。
在一示出的实施方式中,计算引擎可以先获取待处理的数据集,该待处理的数据集可以包括多个数据列,该多个数据列中的每个数据列可以包括多个数据(或者说多行数据),一般情况下,该多个数据列中的每个数据列包括的多个数据的数量相同。在一示出的实施方式中,该待处理的数据集中的数据可以包括参与隐私计算的用户隐私数据,该用户隐私数据可以是经过加密处理后的用户隐私数据。在一示出的实施方式中,该待处理的数据集中的数据也可以包括执行隐私计算后得到的计算结果,或者可以包括用于辅助进行隐私计算的相关数据(例如密码学的计算结果等),等等,本说明书对此不做具体限定。
在一示出的实施方式中,上述待处理的数据集可以为dataframe数据集。
在一示出的实施方式中,上述待处理的数据集中的多个数据列可以包括至少一种数据类型。
示例性的,上述至少一种数据类型可以包括整型和浮点型。其中,整型一般默认为integer,也可以是短(short)整型和长(long)整型,浮点型一般默认为双精度浮点型,也可以是单精度浮点型,等等,本说明书对此不做具体限定。在一些可能的实施方式中,除了上述整型和浮点型等数值型的数据类型外,还可以包括字符型或者布尔型的数据类型,等等,本说明书对此不做具体限定。其中,整型数据一般包括正整数,负整数和零,整型常量采用十进制整数表示,如1991,0,-123等等都是整型常量。其中,单精度浮点型或双精度浮点型等浮点型的数据一般用于表示带有小数的数据,单精度浮点型数据的表示范围为-3.40E+38~+3.40E+38,双精度浮点型数据的表示范围为-1.79E+308~+1.79E+308。
示例性的,待处理的数据集可以包括5000个数据列,其中,2000个数据列的数据类型为整型(即2000个数据列包括的数据均为整型数据),剩余3000个数据列的数据类型可以为双精度浮点型(即3000个数据列包括的数据均为双精度浮点型数据)。
示例性的,待处理的数据集可以包括4000个数据列,其中,1000个数据列的数据类型为整型(即1000个数据列包括的数据均为整型数据),1000个数据列的数据类型为单精度浮点(即1000个数据列包括的数据均为单精度浮点型数据),2000个数据列的数据类型可以为双精度浮点型(即3000个数据列包括的数据均为双精度浮点型数据)。
示例性的,待处理的数据集可以包括2000个数据列,这2000个数据列的数据类型均为整型,即该处理的数据集中的数据均为整型数据。
示例性的,待处理的数据集可以包括500个数据列,这500个数据列的数据类型均为双精度浮点型,即该处理的数据集中的数据均为双精度浮点型数据。
示例性的,请参阅图2,图2是一示例性实施例提供的一种待处理的数据集的示意图。如图2所示,上述待处理的数据集可以包括6个数据列,分别为i1,i2,i3,i4,f1,f2,每个数据列分别包括10个数据。
如图2所示,数据集中的第1个数据列为i1,数据类型为整型;数据集中的第2个数据列为f1,数据类型为双精度浮点型;数据集中的第3个数据列为i2,数据类型为整型;数据集中的第4个数据列为i3,数据类型为整型;数据集中的第5个数据列为f2,数据类型为双精度浮点型;数据集中的第6个数据列为i4,数据类型为整型。
需要说明的是,图2仅作示例性说明,在实际应用中,数据集通常包括成千上万个数据列。
步骤S102,将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列。
进一步地,在一示出的实施方式中,计算引擎可以将待处理得到数据集包括的多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集。在一示出的实施方式中,合并后的数据集可以包括与上述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括上述合并前的多个数据列中数据类型相同的数据列所包含的数据。
在一示出的实施方式中,上述合并后的数据集为dataframe数据集。
示例性的,以待处理的数据集包括5000个数据列,其中,2000个数据列的数据类型为整型,剩余3000个数据列的数据类型为双精度浮点型为例,则合并后的数据集可以仅包括2个数据列,分别为整型对应的1个数据列和双精度浮点型对应的1个数据列。
示例性的,以待处理的数据集包括3000个数据列,其中,3000个数据列的数据类型均为整型为例,则合并后的数据集可以仅包括1个数据列,即整型对应的1个数据列。
示例性的,以待处理的数据集包括6000个数据列,其中,6000个数据列的数据类型均为双精度浮点型为例,则合并后的数据集可以仅包括1个数据列,即为双精度浮点型对应的1个数据列。
如此,本申请通过基于数据类型的数据列的合并,大幅度减少了数据集中数据列的数量,直接、快速地实现了将原本成千上万列的数据合并成寥寥几列数据。
在一示出的实施方式中,计算引擎在进行数据列的合并时,具体可以将数据集中数据类型相同的多个数据列按照其原本的排列顺序合并为1列。
在一示出的实施方式中,在数据列合并过程中,计算引擎还可以将每个数据列中的数据分别转换成二进制(binary)格式,以获得与上述至少一种数据类型一一对应的至少一个数据列。其中,合并后得到的至少一个数据列中的每个数据列可以包括多个字节串,每个字节串包括多个字节。进一步地,在一示出的实施方式中,合并后得到的每个数据列包括的多个字节串中的第i个字节串可以包括数据类型相同的多个数据列各自包含的第i个数据的二进制表示;i为大于或者等于1的整数。
如上所述,由于合并后的数据集中的数据均为二进制格式,从而在读取、存储、传输该数据集时无需再进行序列化/反序列化操作,提升了数据处理性能。
示例性的,下面以待处理的数据集包括5000个数据列,每个数据列包括100个数据,其中,2000个数据列的数据类型为整型,剩余3000个数据列的数据类型为双精度浮点型为例,对数据列的合并过程进行详细阐述。
计算引擎可以将数据集中数据类型为整型的上述2000个数据列按照其原本的排列顺序进行合并,并将2000个数据列包括的数据分别转换成二进制,以获得与整型对应的1个数据列。
其中,上述整型对应的1个数据列可以包括100行数据,每行数据为二进制的字节串,即总共包括100个字节串,每个字节串包括2000×4个字节。在一示出的实施方式中,上述2000个数据列各自包含的第i个数据的二进制表示可以按其原本的排列顺序依次分别占用第i个字节串中的4个字节。
相应的,计算引擎可以将数据集中数据类型为双精度浮点型的上述3000个数据列按照其原本的排列顺序进行合并,并将3000个数据列包括的数据分别转换成二进制,以获得与双精度浮点型对应的1个数据列。
其中,上述双精度浮点型对应的1个数据列可以包括100行数据,每行数据为二进制的字节串,即总共包括100个字节串,每个字节串包括3000×8个字节。在一示出的实施方式中,上述3000个数据列各自包含的第i个数据的二进制表示可以按其原本的排列顺序依次分别占用第i个字节串中的8个字节。
综上,基于相同的数据类型,本申请将原本数据集中的5000个数据列进行相应的合并后,得到仅包含2个数据列的数据集,极大幅度减少了数据列的数量。
示例性的,下面以待处理的数据集包括4000个数据列,每个数据列包括50个数据,其中,1000个数据列的数据类型为整型,1000个数据列的数据类型为单精度浮点型,2000个数据列的数据类型为双精度浮点型为例,对数据列的合并过程进行详细阐述。
计算引擎可以将数据集中数据类型为整型的上述1000个数据列按照其原本的排列顺序进行合并,并将1000个数据列包括的数据分别转换成二进制,以获得与整型对应的1个数据列。
其中,上述整型对应的1个数据列可以包括50个字节串,每个字节串包括1000×4个字节。在一示出的实施方式中,上述整型对应的1000个数据列各自包含的第i个数据的二进制表示可以按其原本的排列顺序依次分别占用第i个字节串中的4个字节。
相应的,计算引擎可以将数据集中数据类型为单精度浮点型的上述1000个数据列按照其原本的排列顺序进行合并,并将1000个数据列包括的数据分别转换成二进制,以获得与单精度浮点型对应的1个数据列。
其中,上述单精度浮点型对应的1个数据列可以包括50个字节串,每个字节串包括1000×4个字节。在一示出的实施方式中,上述单精度浮点型对应的1000个数据列各自包含的第i个数据的二进制表示可以按其原本的排列顺序依次分别占用第i个字节串中的4个字节。
相应的,计算引擎可以将数据集中数据类型为双精度浮点型的上述2000个数据列按照其原本的排列顺序进行合并,并将2000个数据列包括的数据分别转换成二进制,以获得与双精度浮点型对应的1个数据列。
其中,上述双精度浮点型对应的1个数据列可以包括50个字节串,每个字节串包括2000×8个字节。在一示出的实施方式中,上述双精度浮点型对应的2000个数据列各自包含的第i个数据的二进制表示可以按其原本的排列顺序依次分别占用第i个字节串中的8个字节。
综上,基于相同的数据类型,本申请将原本数据集中的4000个数据列进行相应的合并后,得到仅包含3个数据列的数据集,极大幅度减少了数据列的数量。
示例性的,请参阅图3,图3是一示例性实施例提供的一种合并后的数据集的示意图。在对图2所示的待处理的数据集进行数据列的合后,得到的合并后的数据集可以如图3所示。需要说明的是,为了简洁的展示合并后的数据集,图3中用十六进制表示了合并后的每个数据列包含的字节串,但是在实际应用中,计算引擎是将数据转换成了二进制。
如图3所示,将i1、i2、i3、i4这4个integer的数据列按序进行合并和二进制转化后,得到integer数据对应的1个数据列。在integer数据对应的1个数据列中,包括多个字节串(或者说多行字节串),每个字节串包括4×4个字节(即4×32个二进制位,相当于图3所示的4×8个十六进制位),每4个字节表示原本数据列中的一个integer数据。
示例性的,如图3所示,在integer数据对应的1个数据列的第一个字节串[00 0000 01 00 0000 2D 00 00 00 02 00 00 00 5B]中,第1-4个字节(即第1-32个二进制位,相当于图3中的第1-8个十六进制位)“00 00 00 01”表示图2所示的数据列i1中的第一个数据“1”;第5-8个字节(即第33-64个二进制位,相当于图3中的第9-16个十六进制位)“00 00 002D”表示图2所示的数据列i2中的第一个数据“45”;第9-12个字节(即第65-96个二进制位,相当于图3中的第17-24个十六进制位)“00 00 00 02”表示图2所示的数据列i3中的第一个数据“2”;第13-16个字节(即第97-128个二进制位,相当于图3中的第25-32个十六进制位)“00 00 00 5B”表示图2所示的数据列i4中的第一个数据“91”。
示例性的,如图3所示,在integer数据对应的1个数据列的第二个字节串[00 0000 09 00 0000 1E 00 00 00 00 00 00 09C4]中,第1-4个字节(即第1-32个二进制位,相当于图3中的第1-8个十六进制位)“00 00 00 09”表示图2所示的数据列i1中的第二个数据“9”;第5-8个字节(即第33-64个二进制位,相当于图3中的第9-16个十六进制位)“00 00 001E”表示图2所示的数据列i2中的第二个数据“30”;第9-12个字节(即第65-96个二进制位,相当于图3中的第17-24个十六进制位)“00 00 00 00”表示图2所示的数据列i3中的第二个数据“0”;第13-16个字节(即第97-128个二进制位,相当于图3中的第25-32个十六进制位)“00 00 09C4”表示图2所示的数据列i4中的第二个数据“2500”,等等,此处不再进行赘述。
相应的,如图3所示,将f1、f2这2个double的数据列按序进行合并和二进制转化后,得到double数据对应的1个数据列。在double数据对应的1个数据列中,包括多个字节串(或者说多行字节串),每个字节串包括2×8个字节(即2×64个二进制位,相当于图3所示的2×16个十六进制位),每8个字节表示原本数据列中的一个double数据。
示例性的,如图3所示,在double数据对应的1个数据列的第一个字节串[3F E8 841B F3 4803 1B 3F E9 B2 07 93EA 7A 7F]中,第1-8个字节(即第1-64个二进制位,相当于图3中的第1-16个十六进制位)“3F E8 84 1B F3 48 03 1B”表示图2所示的数据列f1中的第一个数据“0.766126609”;第5-8个字节(即第65-128个二进制位,相当于图3中的第17-32个十六进制位)“3F E9 B2 07 93EA 7A 7F”表示图2所示的数据列f2中的第一个数据“0.802982129”。
示例性的,如图3所示,在double数据对应的1个数据列的第二个字节串[3F E4 9D7F C3CO C5 BF 3F D3 CE 75 4E 35C3 05]中,第1-8个字节(即第1-64个二进制位,相当于图3中的第1-16个十六进制位)“3F E4 9D 7F C3 CO C5 BF”表示图2所示的数据列f1中的第二个数据“0.644225962”;第5-8个字节(即第65-128个二进制位,相当于图3中的第17-32个十六进制位)“3F D3 CE 75 4E 35C3 05”表示图2所示的数据列f2中的第二个数据“0.30947621”,等等,此处不再进行赘述。
在一示出的实施方式中,以图2和图3为例,计算引擎进行数据列合并的具体实现方式可以如下:{"integer_merged_features":["i1","i2","i3","i4"],"double_merged_features":["f1","f2"]}
步骤S103,对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
进一步地,在一示出的实施方式中,在得到合并后的数据集后,计算引擎可以对合并后的数据集包括的上述至少一个数据列分别添加schema描述。如此,直接从原本成千上万列的schema描述,大幅度减少到了仅仅两三列甚至更少列的schema描述。
在一示出的实施方式中,计算引擎可以对合并后的数据集包括的至少一个数据列分别添加关于数据类型的schema描述,还可以添加关于数据名称的schema描述,等等,本说明书对此不做具体限定。可以理解的是,由于在数据列合并过程中进行了二进制转化,因此合并后的数据集包括的至少一个数据列的数据类型均为二进制。
进一步地,在一示出的实施方式中,计算引擎可以针对上述添加了schema描述的数据集进行相应的数据处理,例如包括与隐私计算相关的数据处理。
在一示出的实施方式中,上述与隐私计算相关的数据处理可以包括以下示出的一种或多种:在执行隐私计算之前的数据预处理、与隐私计算相关的隐私计算处理、在执行完隐私计算之后的有关隐私计算结果的进一步处理,等等,本说明书对此不做具体限定。
在一示出的实施方式中,上述与隐私计算相关的数据处理具体可以包括以下示出的一种或多种:数据格式转化、数据存储、数据读取处理、数据传输,等等。其中,数据传输可以是数据的跨网络传输或者其他任何可能方式的传输,本说明书对此不做具体限定。在一些可能的实施方式中,上述数据处理还可以包括数据加载,等等,本说明书对此不做具体限定。此外,在一些可能的实施方式中,计算引擎还可以针对上述添加了schema描述的数据集进行除隐私计算外的其他任何可能的数据处理,本说明书对此不做具体限定。
在一示出的实施方式中,计算引擎可以仅针对上述合并后的数据集中的部分数据进行相应的数据处理。例如,该部分数据可以包括上述图3所示的integer数据对应的1个数据列中的每个字节串中的前4个字节,以及double数据对应的1个数据列中的每个字节串中的前8个字节(即包括原本的数据列i1和f1)。又例如,该部分数据可以包括上述图3所示的integer数据对应的1个数据列中的每个字节串中的前8个字节,以及double数据对应的1个数据列中的每个字节串中的第9-16个字节(即包括原本的数据列i1、i2和f2)。
在一示出的实施方式中,计算引擎可以基于实际的数据处理需求,通过计算字节的起始位置和需要的字节长度,以从合并后的数据集中筛选出需要的部分数据,并基于该部分数据生成一个新的数据集,进而基于该新的数据集进行相应的数据处理,十分方便快捷,保证了大规模数据处理下的数据处理性能。
在一示出的实施方式中,计算引擎可以根据index可以计算字节的起始位置和需要的字节长度。
综上,本申请先获取待处理的数据集,该待处理的数据集可以包括多个数据列,该多个数据列可以包括至少一种数据类型。然后,本申请可以将该多个数据列中数据类型相同的数据列进行合并,获得合并后的数据集。其中,合并后的数据集仅包括与上述至少一种数据类型一一对应的至少一个数据列。后续可以仅针对这至少一个数据列分别添加schema描述,然后再基于该添加了schema描述的至少一个数据列进行与隐私计算相关的数据处理。如此,本申请通过将原有数据集中数据类型相同的多列数据合并成1列的方式,实现了将原有数据集中成千上万的数据列合并成寥寥几列数据,从而直接大幅度减少了schema描述,进而提升了整体的数据处理性能。
需要说明的是,本申请旨在通过相同数据类型的数据列的合并,减少schema描述,进而保证大规模数据处理场景下的数据处理性能,对实际应用场景不做具体限定。在一些可能的实施方式中,除了上述隐私计算场景外,本申请提供的技术方案还可以应用于其他任何可能的大规模数据处理场景中,例如图计算、模型训练、大数据分析,等等,本说明书对此不做具体限定。
与上述方法流程实现对应,本说明书的实施例还提供了一种基于隐私计算的数据处理装置,应用于第一计算设备。请参阅图4,图4是一示例性实施例提供的一种基于隐私计算的数据处理装置的结构示意图。如图4所示,该装置30包括:
获取单元301,用于获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;
合并单元302,用于将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;
数据处理单元303,用于对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
在一示出的实施方式中,所述合并单元302,具体用于:
将所述多个数据列中数据类型相同的数据列进行合并,并将每个数据列中的数据分别转换成二进制,以获得与所述至少一种数据类型一一对应的所述至少一个数据列;
其中,合并后得到的所述至少一个数据列中的每个数据列包括多个字节串,所述多个字节串中的第i个字节串包括数据类型相同的数据列各自包含的第i个数据的二进制表示;i为大于或者等于1的整数。
在一示出的实施方式中,所述计算引擎包括用于执行大规模数据处理的spark计算引擎。
在一示出的实施方式中,所述待处理的数据集和所述合并后的数据集为dataframe数据集。
在一示出的实施方式中,所述至少一种数据类型包括整型、单精度浮点型、双精度浮点型中的至少一种。
在一示出的实施方式中,所述数据处理单元303,具体用于:
对所述合并后的数据集包括的所述至少一个数据列分别添加关于数据类型的schema描述。
在一示出的实施方式中,所述与隐私计算相关的数据处理包括:数据格式转化、数据存储、数据读取、数据传输中的任意一种或多种。
上述装置30中各个单元的功能和作用的实现过程具体详见上述图1-图3对应实施例的描述,在此不再进行赘述。应理解,上述装置30可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的处理器(CPU)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了CPU以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算设备。请参阅图5,图5是一示例性实施例提供的一种计算设备的结构示意图。图5所示的计算设备1000上可以运行有用于执行大规模数据处理的计算引擎述,例如spark。如图5所示,该计算设备1000包括处理器1001和存储器1002,进一步还可以包括输入设备1004(例如键盘等)和输出设备1005(例如显示器等)。处理器1001、存储器1002、输入设备1004和输出设备1005之间可以通过总线或其他方式连接。如图5所示,存储器1002包括计算机可读存储介质1003,该计算机可读存储介质1003存储有能够由处理器1001运行的计算机程序。处理器1001可以是CPU,微处理器,或用于控制以上方法实施例执行的集成电路。处理器1001在运行存储的计算机程序时,可以执行本说明书实施例中基于隐私计算的数据处理方法的各个步骤,包括:获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理,等等。对上述基于隐私计算的数据处理方法的各个步骤的详细描述请参见之前的内容,此处不再进行赘述。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中基于隐私计算的数据处理方法的各个步骤。具体请参见上述图1-图3对应实施例的描述,此处不再进行赘述。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,终端设备包括一个或多个CPU、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (10)
1.一种基于隐私计算的数据处理方法,应用于计算引擎,所述方法包括:
获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;
将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;
对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
2.根据权利要求1所述的方法,所述将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集,包括:
将所述多个数据列中数据类型相同的数据列进行合并,并将每个数据列中的数据分别转换成二进制,以获得与所述至少一种数据类型一一对应的所述至少一个数据列;
其中,合并后得到的所述至少一个数据列中的每个数据列包括多个字节串,所述多个字节串中的第i个字节串包括数据类型相同的数据列各自包含的第i个数据的二进制表示;i为大于或者等于1的整数。
3.根据权利要求1所述的方法,所述计算引擎包括用于执行大规模数据处理的spark计算引擎。
4.根据权利要求1所述的方法,所述待处理的数据集和所述合并后的数据集为dataframe数据集。
5.根据权利要求1所述的方法,所述至少一种数据类型包括整型、单精度浮点型、双精度浮点型中的至少一种。
6.根据权利要求1所述的方法,所述对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,包括:
对所述合并后的数据集包括的所述至少一个数据列分别添加关于数据类型的schema描述。
7.根据权利要求1-6任意一项所述的方法,所述与隐私计算相关的数据处理包括:数据格式转化、数据存储、数据读取、数据传输中的任意一种或多种。
8.一种基于隐私计算的数据处理装置,应用于计算引擎,所述装置包括:
获取单元,用于获取待处理的数据集,所述待处理的数据集包括多个数据列,所述多个数据列包括至少一种数据类型;
合并单元,用于将所述多个数据列中数据类型相同的数据列进行合并,以获得合并后的数据集;所述合并后的数据集包括与所述至少一种数据类型一一对应的至少一个数据列,所述至少一个数据列中的每个数据列包括所述多个数据列中数据类型相同的数据列所包含的数据;
数据处理单元,用于对所述合并后的数据集包括的所述至少一个数据列分别添加schema描述,并针对添加schema描述的数据集进行与隐私计算相关的数据处理。
9.一种计算设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1至7任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310305519.XA CN116431630A (zh) | 2023-03-24 | 2023-03-24 | 一种基于隐私计算的数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310305519.XA CN116431630A (zh) | 2023-03-24 | 2023-03-24 | 一种基于隐私计算的数据处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431630A true CN116431630A (zh) | 2023-07-14 |
Family
ID=87091838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310305519.XA Pending CN116431630A (zh) | 2023-03-24 | 2023-03-24 | 一种基于隐私计算的数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431630A (zh) |
-
2023
- 2023-03-24 CN CN202310305519.XA patent/CN116431630A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200366460A1 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
US10153894B2 (en) | Homomorphic encryption with optimized encoding | |
US10075289B2 (en) | Homomorphic encryption with optimized parameter selection | |
JP6636647B2 (ja) | ランダム文字列を生成する方法および装置 | |
CN108628898B (zh) | 数据入库的方法、装置和设备 | |
CN107919943A (zh) | 二进制数据的编码、解码方法和装置 | |
WO2016045641A2 (zh) | 数据块储存方法、数据查询方法和数据修改方法 | |
CN112671717A (zh) | 对加密后的订阅和事件进行匹配的方法 | |
CN110266834B (zh) | 基于互联网协议地址的地区查找方法及装置 | |
CN116010678B (zh) | 一种匿踪查询方法、装置及设备 | |
CN116431630A (zh) | 一种基于隐私计算的数据处理方法及相关设备 | |
CN107832341B (zh) | Agnss用户去重统计方法 | |
CN112000667B (zh) | 用于检索树形数据的方法、装置、服务器和介质 | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN110545108B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113157695B (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN113597605B (zh) | 多级数据沿袭视图 | |
CN117972752A (zh) | 一种密态数据库的数据管理方法及相关设备 | |
CN116881247A (zh) | 业务标识生成方法、装置、计算机设备和存储介质 | |
CN117370488A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN117667825A (zh) | 远程直接内存访问方法、装置、设备和存储介质 | |
CN117349290A (zh) | 基于联机分析处理的数据处理方法、装置和电子设备 | |
CN117217170A (zh) | 字符转换处理方法、装置、电子设备及存储介质 | |
CN112487317A (zh) | 一种统一资源定位符转换方法、装置、设备及介质 | |
CN116340364A (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 |