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

基于数据湖的加密存储方法、装置、电子设备与流程

2022-11-12 21:27:10 来源:中国专利 TAG:


1.本技术涉及数据安全技术领域,尤其涉及一种基于数据湖的加密存储方法、装置、电子设备、计算机可读介质。


背景技术:

2.随着数字化技术的发展,数据安全越来越重要。例如,在一些应用场景中,需要存储大量数据,故为了避免数据泄露,可以将这些数据进行加密存储。
3.然而,因一些数据(例如,数据湖或湖仓一体中的数据)的存储格式比较特殊,使得如何针对这些数据进行加密存储成为一项亟待解决的技术问题。


技术实现要素:

4.为了解决上述技术问题,本技术提供了一种基于数据湖的加密存储方法、装置、电子设备、计算机可读介质,能够实现针对数据湖或湖仓一体中的数据的加密存储。
5.为了实现上述目的,本技术实施例提供的技术方案如下:
6.本技术实施例提供一种基于数据湖的加密存储方法,所述方法包括:
7.获取待处理数据、以及所述待处理数据的元信息;
8.对所述待处理数据中处于预设位置的数据进行加密处理,得到待使用加密数据;
9.存储所述待使用加密数据、所述待处理数据中除了处于预设位置以外其他位置的数据、以及所述元信息的加密数据。
10.在一种可能的实施方式中,所述待处理数据为压缩数据;所述处于预设位置的数据用于表示所述待处理数据的压缩描述信息。
11.在一种可能的实施方式中,所述待处理数据是利用预设压缩算法生成的压缩数据;所述预设位置是根据所述预设压缩算法确定的。
12.在一种可能的实施方式中,所述预设位置处于待处理数据的头部。
13.在一种可能的实施方式中,所述待处理数据的生成过程,包括:
14.在获取到原始数据之后,对所述原始数据进行编码处理,得到待使用编码结果;
15.对所述待使用编码结果进行二进制转换,得到待使用转换结果;
16.对所述待使用转换结果进行压缩处理,得到所述待处理数据。
17.在一种可能的实施方式中,所述存储所述待使用加密数据、所述待处理数据中除了处于预设位置以外其他位置的数据、以及所述元信息的加密数据,包括:
18.按照所述待处理数据对应的存储位置描述信息,存储所述待使用加密数据、以及所述待处理数据中除了处于预设位置以外其他位置的数据;
19.按照所述元信息对应的存储位置描述信息,存储所述元信息的加密数据。
20.在一种可能的实施方式中,所述元信息包括第一信息和第二信息;
21.所述按照所述元信息对应的存储位置描述信息,存储所述元信息的加密数据,包括:
22.按照所述第一信息对应的存储位置描述信息,存储所述第一信息的加密数据;
23.按照所述第二信息对应的存储位置描述信息,存储所述第二信息的加密数据。
24.本技术实施例还提供了一种基于数据湖的加密存储装置,包括:
25.获取单元,用于获取待处理数据、以及所述待处理数据的元信息;
26.加密单元,用于对所述待处理数据中处于预设位置的数据进行加密处理,得到待使用加密数据;
27.存储单元,用于存储所述待使用加密数据、所述待处理数据中除了处于预设位置以外其他位置的数据、以及所述元信息的加密数据。
28.本技术实施例还提供了一种电子设备,所述设备包括:处理器和存储器;
29.所述存储器,用于存储指令或计算机程序;
30.所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行本技术实施例提供的基于数据湖的加密存储方法的任一实施方式。
31.本技术实施例还提供了一种计算机可读介质,所述计算机可读介质中存储有指令或计算机程序,当所述指令或计算机程序在设备上运行时,使得所述设备执行本技术实施例提供的基于数据湖的加密存储方法的任一实施方式。
32.与现有技术相比,本技术实施例至少具有以下优点:
33.本技术实施例提供的技术方案中,对于数据湖或湖仓一体场景来说,在获取到待处理数据(例如,针对某个数据表中某个数据块进行编码以及压缩所得的数据)、以及该待处理数据的元信息之后,先对该待处理数据中处于预设位置的数据进行加密处理,得到待使用加密数据,以使该待使用加密数据能够以密文形式表达出该待处理数据中处于预设位置的数据;再存储该待使用加密数据、该待处理数据中除了处于预设位置以外其他位置的数据、以及该元信息的加密数据,如此能够实现针对数据湖或湖仓一体中的数据的加密存储,从而能够有效地提高数据湖或湖仓一体的数据存储安全性。
34.可见,因上文待使用加密数据能够以密文形式表达出待处理数据中处于预设位置的数据,使得当该待使用加密数据被非法用户获取之后,因其不知该待使用加密数据的解密方法而导致其无法从该待使用加密数据中解读出该“处于预设位置的数据”,从而导致该非法用户无法获取到完整的待处理数据,如此能够有效地提高该待处理数据的安全性。
35.另外,当上文“处于预设位置的数据”用于表示待处理数据的压缩描述信息时,因非法用户无法从待使用加密数据中解读出该“处于预设位置的数据”而导致该非法用户不知道如何针对该待处理数据进行解压缩,从而导致该非法用户只能获取到一堆乱码,如此能够有效地提高该待处理数据的安全性。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
37.图1为本技术实施例提供的一种parquet格式的文件的示意图;
38.图2为本技术实施例提供的另一种parquet格式的文件的示意图;
39.图3为本技术实施例提供的一种基于数据湖的加密存储方案的示意图;
40.图4为本技术实施例提供的一种基于数据湖的加密存储方法的流程图;
41.图5为本技术实施例提供的一种基于数据湖的加密存储装置的结构示意图;
42.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
43.为了便于理解本技术的技术方案,下面针对本技术所涉及的一些技术名词进行说明。
44.parquet格式(如图1所示的文件100的格式或者图2所示的文件200的格式)是一种基于列式存储的通用大数据文件格式;而且parquet格式可以应用于数据湖或湖仓一体场景中。可见,对于数据湖或湖仓一体场景来说,这些场景中的数据通常可以采用parquet格式进行存储,以使这些场景能够通过列裁剪、谓词下推等技术为用户提供更高效的查询性能。
45.另外,parquet格式的文件是以二进制方式存储的;而且该parquet格式的文件通常可以包括文件头部(header)、数据块、以及文件尾部(footer)。例如,当该parquet格式的文件为图2所示的文件200时,该文件200中区域201为文件头部(header),该文件200中区域203为文件尾部(footer),而且该文件200中区域201与区域203之间的区域为数据块。
46.此外,未加密的parquet格式的文件中通常存在两类信息,即实际数据以及元信息。其中,实际数据通常需要一系列操作(例如,编码、压缩等)转换为片段(page)保存至该文件中。
47.page是指parquet格式的文件中实际数据的最小存储单位。例如,一个page可以用于存储由某个数据表中某一列下的一行或者多行数据进行编码压缩所得的信息(例如,编码压缩的结果、编码格式、压缩方式等)。可见,对于一个数据表来说,在获取到该数据表之后,可以先将该数据表横向切分为多个行组(rowgroup);再在每个rowgroup内部依次将每一列转换为至少一个page。
48.另外,每个page可以由片段头部信息(pageheader)和片段数据(pagedata)。其中,pagedata用于记录某个数据表中某一列下的一行或者多行数据的编码压缩结果。pageheader主要用于记录page的编码格式和压缩方式,而且pageheader通常会散落在文件各处(例如,图1所示的区域102中存储有区域101中各个pagedata对应的pageheader,或者,图2所示的区域202中存储有page0的pageheader)。另外,pageheader也可以用于快速过滤。
49.上文“元信息”用于记录实际数据的相关信息(例如,编码格式、压缩方式、统计值等信息);而且该元信息可以至少包括文件尾部(footer)和片段头部信息(pageheader)。其中,footer通常存储在文件的末尾(例如,图1所示的区域103或者图2所示的区域203),而且footer可以用于快速地过滤或定位数据。
50.列块(column chunk):在一个行组中每一列保存在一个列块中,行组中的所有列连续的存储在这个行组文件中。另外,一个列块中的值都是相同类型的,不同的列块可能使用不同的算法进行压缩。此外,每一个列块可以划分为多个page。
51.行组(row group):按照行将数据物理上划分为多个单元,每一个行组包含一定的行数,在一个parquet格式的文件中存储有至少一个行组(例如,图2所示的文件200中存储
有row group0、row group1、
……
等行组)。
52.gzip是若干种文件压缩程序的简称;而且对于gzip格式的压缩数据来说,该压缩数据包括头部,而且该头部记录了该压缩数据的压缩描述信息(例如,幻数、版本号、时间戳、以及编码码表等信息)。
53.基于上述技术名词的相关内容,下面介绍本技术的技术方案。
54.发明人在针对数据安全的研究中发现,对于数据湖或湖仓一体场景来说,因这些场景中数据通常是采用parquet格式进行存储的,使得这些场景下的数据查询性能比较好,故为了尽可能的不降低这些场景下的数据查询性能,不能直接将parquet格式的文件进行整体加密,如此导致如何针对数据湖或湖仓一体中的数据的加密存储成为一项亟待解决的技术问题。
55.发明人还发现,因parquet格式的文件是由一些模块(例如,footer、pageheader、pagedata等)组成的,故为了尽可能的不降低这些场景下的数据查询性能,可以将该文件中各个模块分别进行单独加密存储(例如,图3所示的文件300所示的模块加密存储方式)。可见,这种模块化加密存储的方案存在的好处为:当用户读取加密后的parquet格式的文件(例如,图3所示的文件300)时,该用户可按需解密、解码和读取。例如:在读取到footer之后,该用户可以可根据footer中所记录的统计信息,判断该用户想要查询的数据是否在该文件内,如果不在,则可直接跳过这个文件即可。
56.发明人在针对上述模块化加密存储的方案的研究中发现,该方案存在以下缺陷:因该方案需要对parquet格式的文件中的各个模块均进行加密处理,使得在针对该文件进行加密时所产生的性能损耗大致与被加密内容的多少成正比,从而使得在海量数据下需要消耗大量资源以实现针对该文件的加密以及解密,如此导致资源损耗比较大。
57.发明人还发现,对于parquet格式的文件来说,因实际数据的信息量通常比较大,以使实际数据的加密损耗比较大;但是因元信息的信息量通常比较小,以使元信息的加密损耗比较小。
58.基于上述一系列研究发现,为了解决背景技术部分所示的技术问题,本技术实施例提供了一种适用于parquet格式的资源损耗比较小的基于数据湖的加密存储方法,该方法包括:在获取到待处理数据(例如,pagedata)、以及该待处理数据的元信息(例如,footer以及pageheader)之后,先对该待处理数据中处于预设位置的数据(例如,头部数据)进行加密处理,得到待使用加密数据,以使该待使用加密数据能够以密文形式表达出该待处理数据中处于预设位置的数据;再存储该待使用加密数据、该待处理数据中除了处于预设位置以外其他位置的数据、以及该元信息的加密数据,如此能够实现针对数据湖或湖仓一体中的数据的加密存储,从而能够有效地提高数据湖或湖仓一体的数据存储安全性。
59.其中,因上文待使用加密数据能够以密文形式表达出待处理数据中处于预设位置的数据,使得当该待使用加密数据被非法用户获取之后,因其不知该待使用加密数据的解密方法而导致其无法从该待使用加密数据中解读出该“处于预设位置的数据”,从而导致该非法用户无法获取到完整的待处理数据,如此能够有效地提高该待处理数据的安全性。
60.可见,对于数据湖或湖仓一体场景来说,本技术所提供的技术方案只需针对每个pagedata中部分数据(例如,头部数据)进行加密即可,无需针对每个pagedata进行全部加密,如此能够有效地降低被加密对象的信息量,从而能够有效地降低加密过程的资源损耗,
进而能够在保证数据存储安全的前提下尽可能地降低资源损耗。
61.另外,本技术实施例不限定基于数据湖的加密存储方法的执行主体(也就是,电子设备),例如,本技术实施例提供的基于数据湖的加密存储方法可以应用于终端设备或服务器等具有数据处理功能的设备。其中,终端设备可以为智能手机、计算机、个人数字助理(personal digital assitant,pda)或平板电脑等。服务器可以为独立服务器、集群服务器或云服务器。
62.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
63.方法实施例
64.参见图4,该图为本技术实施例提供的一种基于数据湖的加密存储方法的流程图。
65.本技术实施例提供的基于数据湖的加密存储方法,包括s1-s3:
66.s1:获取待处理数据、以及待处理数据的元信息。
67.其中,待处理数据是指在针对parquet格式的文件进行加密处理时需要进行部分加密处理的信息(例如,上文“pagedata”)。
68.另外,待处理数据用于表示针对某个数据表中某个数据块进行编码以及压缩所得的结果;而且本技术实施例不限定该待处理数据的确定过程,例如,其具体可以包括步骤11-步骤13:
69.步骤11:在获取到原始数据之后,对该原始数据进行编码处理,得到待使用编码结果。
70.其中,原始数据是指某个数据表中某个数据块(也就是,某个数据表中第m列下的第x行到第y行)。m为正整数,x为正整数,y为正整数,x≤y。为了便于理解,下面结合示例进行说明。
71.作为示例,当第一数据表中第1列下的第1行到第3行的内容分别为“hello”、“parquet”、以及“encryption”这三个字符串时,则在基于第一数据表中第1列下的第1行到第3行进行page构建时,可以将["hello","parquet","encryption"]确定为原始数据,以便后续能够构建该原始数据对应的page(也就是,pagedata以及pageheader)。
[0072]
上文“待使用编码结果”是指针对原始数据的编码处理结果。例如,当上文原始数据为["hello","parquet","encryption"]时,该待使用编码结果可以是《5》《hello》《7》《parquet》《10》《encryption》。
[0073]
另外,本技术实施例不限定上文步骤11中“编码处理”的实施方式,例如,其可以采用现有的或者未来出现的任意一种可以应用于page构建过程的编码方法(例如,plain编码)进行实施。
[0074]
步骤12:对待使用编码结果进行二进制转换,得到待使用转换结果。
[0075]
其中,待使用转换结果用于表示上文待使用编码结果的二进制数据。例如,当上文待使用编码结果为《5》《hello》《7》《parquet》《10》《encryption》时,该待使用转换结果可以为05 00 00 00 68 65 6c 6c 6f 07 00 00 00 70 61 72 71 75 65 74 0a 00 00 00 65 6e 63 72 79 70 74 69 6f 6e。
[0076]
另外,本技术实施例不限定上文步骤12中“二进制转换”的实施方式,例如,其可以采用现有的或者未来出现的任意一种二进制转换方法进行实施。
[0077]
步骤13:对待使用转换结果进行压缩处理,得到待处理数据。
[0078]
其中,待处理数据用于表示上文待使用转换结果的压缩结果。
[0079]
作为示例,当上文待使用转换结果为05 00 00 00 68 65 6c 6c 6f 07 00 00 00 70 61 72 71 75 65 74 0a 00 00 00 65 6e 63 72 79 70 74 69 6f 6e时,如果针对该待使用转换结果进行gzip压缩,以得到待处理数据,则该待处理数据可以是\x1f\x8b\x08\x00\x12hsb\x02\xffce``\xc8h\xcd\xc9\xc9g\x072\n\x12\x8b\nksk\xb8\x80\xcc\xd4\xbc\xe4\xa2\xca\x82\x92\xcc\xfc《\x00j%\xe5:"\x00\x00\x00。
[0080]
另外,本技术实施例不限定上文步骤13中“压缩处理”的实施方式,例如,其可以采用现有的或者未来出现的任意一种压缩方法(例如,gzip压缩)进行实施。
[0081]
基于上述步骤11至步骤13的相关内容可知,对于某个数据表中某个数据块(例如,第一数据表中第1列下的第1行到第3行所记录的数据)来说,在从该数据块中读取到原始数据之后,可以针对该原始数据依次进行编码处理、二进制转换处理、以及压缩处理之后,得到待处理数据,以便后续该待处理数据能够作为pagedata进行使用。
[0082]
上文“待处理数据的元信息”用于记录该待处理数据的相关信息(例如,编码格式、压缩方式、统计值等信息);而且该“待处理数据的元信息”可以包括第一信息和第二信息。其中,该第一信息用于表示该待处理数据对应的pageheader,以使该第一信息至少用于记录该待处理数据的编码格式和压缩方式。该第二信息用于表示该待处理数据对应的footer。
[0083]
s2:对待处理数据中处于预设位置的数据进行加密处理,得到待使用加密数据。
[0084]
其中,预设位置是指该待处理数据中被加密内容所处的位置。
[0085]
实际上,为了更好地提高数据安全性,可以只针对压缩数据中压缩描述信息(例如,幻数以及编码码表等信息)进行加密,如此能够实现保护该压缩数据的压缩描述信息的目的,从而能够实现在保证该压缩数据的存储安全的前提下尽可能地降低资源损耗。
[0086]
基于此,在一种可能的实施方式中,当上文待处理数据为压缩数据时,上文预设位置可以是指在该待处理数据中用于记录该待处理数据的压缩描述信息的位置,以使上文s2中“处于预设位置的数据”用于表示该待处理数据的压缩描述信息。为了便于理解,下面结合示例进行说明。
[0087]
作为示例,当上文待处理数据是借助gzip压缩生成的压缩数据时,基于gzip压缩的自身特性可知,该待处理数据的压缩描述信息通常位于该待处理数据的头部位置,故可以将待处理数据的头部位置确定为预设位置,以使上文s2中“处于预设位置的数据”用于表示该待处理数据的压缩描述信息。可见,如果上文待处理数据为\x1f\x8b\x08\x00\x12hsb\x02\xffce``\xc8h\xcd\xc9\xc9g\x072\n\x12\x8b\nksk\xb8\x80\xcc\xd4\xbc\xe4\xa2\xca\x82\x92\xcc\xfc《\x00j%\xe5:"\x00\x00\x00,则可以将\x1f\x8b\x08\x00\x12hsb\x02\xffce这些字符所处位置确定为预设位置,以使该“处于预设位置的数据”就是\x1f\x8b\x08\x00\x12hsb\x02\xffce,从而使得该“处于预设位置的数据”能够表示出该待处理数据的压缩描述信息(例如,幻数、编码码表等信息)。
[0088]
基于上一段可知,在一种可能的实施方式中,上文预设位置处于待处理数据的头
部。
[0089]
另外,本技术实施例不限定上文预设位置的确定过程,例如,可以预先设定。
[0090]
实际上,在不同应用场景中,上文待处理数据可能是借助不同压缩算法所生成的,故为了更好地提高加密灵活性,本技术实施例还提供了上文预设位置的确定过程的另一种可能的实施方式,在该实施方式中,当该待处理数据是利用预设压缩算法生成的压缩数据时,该预设位置的确定过程具体可以为:根据该预设压缩算法,确定该预设位置,以使该预设位置能够表示出该待处理数据的压缩描述信息在该待处理数据中所处位置。
[0091]
此外,本技术实施例不限定上文步骤“根据该预设压缩算法,确定该预设位置”的实施方式,例如,其具体可以为:从预先构建的映射关系中查找该预设压缩算法对应的压缩信息记录位置,确定为预设位置。其中,该预设压缩算法对应的压缩信息记录位置用于表示利用该预设压缩算法生成的压缩数据中哪些位置记录了该压缩数据的压缩描述信息。该映射关系用于记录各种压缩算法对应的压缩信息记录位置。
[0092]
还有,本技术实施例不限定上文s2中“加密处理”的实施方式,例如,可以采用现有的或者未来出现的任意一种加密方法(例如,高级加密标准(advanced encryption standard,aes)算法)进行实施。
[0093]
上文“待使用加密数据”是指针对待处理数据中处于预设位置的数据的加密处理结果。例如,当处于预设位置的数据为\x1f\x8b\x08\x00\x12hsb\x02\xffce时,则该待使用加密数据可以是指针对\x1f\x8b\x08\x00\x12hsb\x02\xffce的加密结果(例如,aes加密结果)。
[0094]
基于上述s2的相关内容可知,在获取到待处理数据(例如,pagedata)之后,因该待处理数据是一种压缩数据,故可以只针对该待处理数据中部分内容(尤其是,用于表示该待处理数据的压缩描述信息的内容)进行加密处理,以使非法用户因不知加密原理而导致其无法获取该待处理数据的压缩描述信息(例如,编码码表等),从而导致其不仅无法推测出待处理数据的起始位置,还无法针对该待处理数据进行解码,如此能够有效地提高该待处理数据的存储安全性。
[0095]
s3:存储待使用加密数据、待处理数据中除了处于预设位置以外其他位置的数据、以及该待处理数据的元信息的加密数据。
[0096]
上文“待处理数据中除了处于预设位置以外其他位置的数据”是指待处理数据中未被进行加密处理的数据。例如,当上文待处理数据为\x1f\x8b\x08\x00\x12hsb\x02\xffce``\xc8h\xcd\xc9\xc9g\x072\n\x12\x8b\nksk\xb8\x80\xcc\xd4\xbc\xe4\xa2\xca\x82\x92\xcc\xfc《\x00j%\xe5:"\x00\x00\x00,而且该“处于预设位置的数据”就是\x1f\x8b\x08\x00\x12hsb\x02\xffce时,则该“待处理数据中除了处于预设位置以外其他位置的数据”为``\xc8h\xcd\xc9\xc9g\x072\n\x12\x8b\nksk\xb8\x80\xcc\xd4\xbc\xe4\xa2\xca\x82\x92\xcc\xfc《\x00j%\xe5:"\x00\x00\x00。
[0097]
上文“待处理数据的元信息的加密数据”是指针对该待处理数据的元信息的加密结果。
[0098]
另外,本技术实施例不限定上述“待处理数据的元信息的加密数据”的确定过程,例如,当待处理数据的元信息包括第一信息(例如,pageheader)和第二信息(例如,footer)时,该“待处理数据的元信息的加密数据”的确定过程具体可以包括下文步骤21-步骤23。其
中,本技术实施例不限定步骤21与步骤22之间的执行顺序。
[0099]
步骤21:针对第一信息进行加密处理,得到该第一信息的加密处理结果,以使该第一信息的加密处理结果能够以密文形式表示出该第一信息。
[0100]
需要说明的是,本技术实施例不限定上文步骤21中“加密处理”的实施方式,例如,可以采用现有的或者未来出现的任意一种加密方法(例如,aes算法)进行实施。
[0101]
步骤22:针对第二信息进行加密处理,得到该第二信息的加密处理结果,以使该第二信息的加密处理结果能够以密文形式表示出该第二信息。
[0102]
需要说明的是,本技术实施例不限定上文步骤22中“加密处理”的实施方式,例如,可以采用现有的或者未来出现的任意一种加密方法(例如,aes算法)进行实施。
[0103]
还需要说明的是,本技术实施例也不限定上文步骤22中“加密处理”、与上文步骤21中“加密处理”、以及上文s2中“加密处理”之间的关系,例如,三者可以采用同一种加密算法进行实施。又如,为了更好地提高数据安全性,三者可以采用完全不同的加密算法进行实施(例如,上文步骤22中“加密处理”采用第一种加密算法进行实施,上文步骤21中“加密处理”采用第二种加密算法进行实施,以及上文s2中“加密处理”采用第三种加密算法进行实施;而且第一种加密算法、第二种加密算法以及第三种加密算法中任意两个算法之间相似度比较小)。
[0104]
步骤23:将第一信息的加密处理结果与第二信息的加密处理结果的集合,确定为待处理数据的元信息的加密数据。
[0105]
基于上述“待处理数据的元信息的加密数据”的相关内容可知,该“待处理数据的元信息的加密数据”可以借助密文表达该待处理数据的元信息,如此能够保证该待处理数据的元信息的安全性。
[0106]
实际上,为了尽可能地不降低数据湖或湖仓一体场景下的数据查询性能,本技术还提供了上文s3的一种可能的实施方式,其具体可以包括s31-s32:
[0107]
s31:按照待处理数据对应的存储位置描述信息,存储待使用加密数据、以及该待处理数据中除了处于预设位置以外其他位置的数据。
[0108]
其中,待处理数据对应的存储位置描述信息用于记录该待处理数据在parquet格式的文件所处的存储位置(例如,图3所示的区域301)。
[0109]
基于上述s31的相关内容可知,在获取到待使用加密数据之后,可以先利用该待使用加密数据替换了待处理数据中处于预设位置上的数据,得到替换后数据,以使该替换后数据包括该待使用加密数据、以及该待处理数据中除了处于预设位置以外其他位置的数据;再将该替换后数据按照待处理数据对应的存储位置描述信息存储至parquet格式的文件,如此能够满足该文件针对pagedata的存储格式要求。
[0110]
s32:按照待处理数据的元信息对应的存储位置描述信息,存储该元信息的加密数据。
[0111]
其中,待处理数据的元信息对应的存储位置描述信息用于记录该待处理数据的元信息在parquet格式的文件所处的存储位置(例如,图3所示的区域302以及区域303)。
[0112]
另外,本技术实施例不限定s32的实施方式,例如,当待处理数据的元信息包括第一信息(例如,pageheader)和第二信息(例如,footer)时,s32具体可以包括s321-s322:
[0113]
s321:按照第一信息对应的存储位置描述信息,存储该第一信息的加密数据。
[0114]
其中,第一信息对应的存储位置描述信息用于记录该第一信息在parquet格式的文件所处的存储位置(例如,图3所示的区域302)。
[0115]
基于上述s321的相关内容可知,在获取到第一信息的加密数据之后,可以将该第一信息的加密数据按照该第一信息对应的存储位置描述信息存储至parquet格式的文件,如此能够满足该文件针对pageheader的存储格式要求。
[0116]
s322:按照第二信息对应的存储位置描述信息,存储该第二信息的加密数据。
[0117]
其中,第二信息对应的存储位置描述信息用于记录该第二信息在parquet格式的文件所处的存储位置(例如,图3所示的区域303)。
[0118]
基于上述s322的相关内容可知,在获取到第二信息的加密数据之后,可以将该第二信息的加密数据按照该第二信息对应的存储位置描述信息存储至parquet格式的文件,如此能够满足该文件针对footer的存储格式要求。
[0119]
基于上述s1至s3的相关内容可知,对于本技术实施例提供的可以应用于数据湖或湖仓一体场景的基于数据湖的加密存储方法来说,在获取到待处理数据(例如pagedata)、以及该待处理数据的元信息(例如,footer以及pageheader)之后,先对该待处理数据中处于预设位置的数据(例如,头部数据)进行加密处理,得到待使用加密数据;再存储该待使用加密数据、该待处理数据中除了处于预设位置以外其他位置的数据、以及该元信息的加密数据,如此能够实现针对数据湖或湖仓一体中的数据的加密存储,从而能够有效地提高数据湖或湖仓一体的数据存储安全性。
[0120]
其中,因上文待使用加密数据能够以密文形式表达出待处理数据中处于预设位置的数据,使得当该待使用加密数据被非法用户获取之后,因其不知该待使用加密数据的解密方法而导致其无法从该待使用加密数据中解读出该“处于预设位置的数据”,从而导致该非法用户无法获取到完整的待处理数据,如此能够有效地提高该待处理数据的安全性。
[0121]
可见,对于数据湖或湖仓一体场景来说,本技术所提供的技术方案只需针对每个pagedata中部分数据(例如,头部数据)进行加密即可,无需针对每个pagedata进行全部加密,如此能够有效地降低被加密对象的信息量,从而能够有效地降低加密过程的资源损耗,进而能够在保证数据存储安全的前提下尽可能地降低资源损耗。
[0122]
另外,当上文“处于预设位置的数据”用于表示待处理数据的压缩描述信息时,因非法用户无法从待使用加密数据中解读出该“处于预设位置的数据”而导致该非法用户不知道如何针对该待处理数据进行解压缩,从而导致该非法用户只能获取到一堆乱码,如此能够有效地提高该待处理数据的安全性。
[0123]
基于此可知,对于数据湖或湖仓一体场景来说,本技术的技术方案所具有的优点至少包括:在保障高性能查询的前提下,仅需消耗极少的额外计算资源,就可对海量数据进行加密保护。
[0124]
基于上述方法实施例提供的基于数据湖的加密存储方法,本技术实施例还提供了一种基于数据湖的加密存储装置,下面结合附图进行解释和说明。
[0125]
装置实施例
[0126]
装置实施例提供的加密存储装置的技术详情,请参照上述方法实施例。
[0127]
参见图5,该图为本技术实施例提供的一种基于数据湖的加密存储装置的结构示意图。
[0128]
本技术实施例提供的基于数据湖的加密存储装置500,包括:
[0129]
获取单元501,用于获取待处理数据、以及所述待处理数据的元信息;
[0130]
加密单元502,用于对所述待处理数据中处于预设位置的数据进行加密处理,得到待使用加密数据;
[0131]
存储单元503,用于存储所述待使用加密数据、所述待处理数据中除了处于预设位置以外其他位置的数据、以及所述元信息的加密数据。
[0132]
在一种可能的实施方式中,所述待处理数据为压缩数据;所述处于预设位置的数据用于表示所述待处理数据的压缩描述信息。
[0133]
在一种可能的实施方式中,所述待处理数据是利用预设压缩算法生成的压缩数据;所述预设位置是根据所述预设压缩算法确定的。
[0134]
在一种可能的实施方式中,所述预设位置处于待处理数据的头部。
[0135]
在一种可能的实施方式中,所述获取单元501,包括
[0136]
第一生成子单元,用于在获取到原始数据之后,对所述原始数据进行编码处理,得到待使用编码结果;对所述待使用编码结果进行二进制转换,得到待使用转换结果;对所述待使用转换结果进行压缩处理,得到所述待处理数据。
[0137]
在一种可能的实施方式中,所述存储单元503,包括:
[0138]
第一存储子单元,用于按照所述待处理数据对应的存储位置描述信息,存储所述待使用加密数据、以及所述待处理数据中除了处于预设位置以外其他位置的数据;
[0139]
第二存储子单元,用于按照所述元信息对应的存储位置描述信息,存储所述元信息的加密数据。
[0140]
在一种可能的实施方式中,所述元信息包括第一信息和第二信息;
[0141]
所述第二存储子单元,具体用于:按照所述第一信息对应的存储位置描述信息,存储所述第一信息的加密数据;按照所述第二信息对应的存储位置描述信息,存储所述第二信息的加密数据。
[0142]
基于上述基于数据湖的加密存储装置500的相关内容可知,对于本技术实施例提供的基于数据湖的加密存储装置500来说,在获取到待处理数据(例如pagedata)、以及该待处理数据的元信息(例如,footer以及pageheader)之后,先对该待处理数据中处于预设位置的数据(例如,头部数据)进行加密处理,得到待使用加密数据;再存储该待使用加密数据、该待处理数据中除了处于预设位置以外其他位置的数据、以及该元信息的加密数据,如此能够实现针对数据湖或湖仓一体中的数据的加密存储,从而能够有效地提高数据湖或湖仓一体的数据存储安全性。
[0143]
其中,因上文待使用加密数据能够以密文形式表达出待处理数据中处于预设位置的数据,使得当该待使用加密数据被非法用户获取之后,因其不知该待使用加密数据的解密方法而导致其无法从该待使用加密数据中解读出该“处于预设位置的数据”,从而导致该非法用户无法获取到完整的待处理数据,如此能够有效地提高该待处理数据的安全性。
[0144]
可见,对于数据湖或湖仓一体场景来说,本技术所提供的技术方案只需针对每个pagedata中部分数据(例如,头部数据)进行加密即可,无需针对每个pagedata进行全部加密,如此能够有效地降低被加密对象的信息量,从而能够有效地降低加密过程的资源损耗,进而能够在保证数据存储安全的前提下尽可能地降低资源损耗。
[0145]
另外,当上文“处于预设位置的数据”用于表示待处理数据的压缩描述信息时,因非法用户无法从待使用加密数据中解读出该“处于预设位置的数据”而导致该非法用户不知道如何针对该待处理数据进行解压缩,从而导致该非法用户只能获取到一堆乱码,如此能够有效地提高该待处理数据的安全性。
[0146]
此外,本技术实施例还提供了一种电子设备,所述设备包括处理器以及存储器:所述存储器,用于存储指令或计算机程序;所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行本技术实施例提供的基于数据湖的加密存储方法的任一实施方式。
[0147]
参见图6,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0148]
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0149]
通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0150]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
[0151]
本公开实施例提供的电子设备与上述实施例提供的方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
[0152]
本技术实施例还提供了一种计算机可读介质,所述计算机可读介质中存储有指令或计算机程序,当所述指令或计算机程序在设备上运行时,使得所述设备执行本技术实施例提供的基于数据湖的加密存储方法的任一实施方式。
[0153]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计
算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0154]
在一些实施方式中,客户端、服务器可以利用诸如http(hyper text transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0155]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0156]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备可以执行上述方法。
[0157]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0158]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0159]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬
件的方式来实现。其中,单元/模块的名称在某种情况下并不构成对该单元本身的限定。
[0160]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0161]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0162]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0163]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0164]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0165]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0166]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献