CN111680041A - 面向异构数据的安全高效存取方法 - Google Patents

面向异构数据的安全高效存取方法 Download PDF

Info

Publication number
CN111680041A
CN111680041A CN202010481109.7A CN202010481109A CN111680041A CN 111680041 A CN111680041 A CN 111680041A CN 202010481109 A CN202010481109 A CN 202010481109A CN 111680041 A CN111680041 A CN 111680041A
Authority
CN
China
Prior art keywords
data
attribute
layer
mixed
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010481109.7A
Other languages
English (en)
Other versions
CN111680041B (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.)
Southwest Electronic Technology Institute No 10 Institute of Cetc
Original Assignee
Southwest Electronic Technology Institute No 10 Institute of Cetc
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 Southwest Electronic Technology Institute No 10 Institute of Cetc filed Critical Southwest Electronic Technology Institute No 10 Institute of Cetc
Priority to CN202010481109.7A priority Critical patent/CN111680041B/zh
Publication of CN111680041A publication Critical patent/CN111680041A/zh
Application granted granted Critical
Publication of CN111680041B publication Critical patent/CN111680041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开的一种面向异构数据的安全高效存取方法,旨在提供一种查询检索高效且安全的面向异构数据的安全高效存取方法,本发明通过下述技术方案实现:以混合数据存储结构为核心,创建包含用户层、隔间层、容器层、对象层和存储层五层逻辑结构,并存储在图数据库中;存储层将异构数据中的内容数据以数据对象的属性形式与数据对象关联,把异构数据中的结构化的属性数据,以二维表结构存储在关系型数据库中,非结构化的内容数据以文件***地址、文件路径名分散存储在分布式文件***中;对象层为异构数据建立数据对象的节点及相互关系,并以三个布隆过滤器和加密二维表来提高查询效率和安全性。

Description

面向异构数据的安全高效存取方法
技术领域
本发明属于大数据存储领域,具体涉及了一种异构大数据的高效且安全的存取方法。
背景技术
当前,随着互联网的迅速发展,网络上的各类资源越来越丰富,网络信息呈***性增长,Web数据日趋成为当前数据的主流,但是当我们沉浸在海量网络信息包围中的时候,却忽略了另外一个重要的信息问题:Web上浩如烟海的数据多是异构数据,这些数量庞大的数据多式多样、各不相同,并不能直接使用,因此它们不是真正意义上统一的可直接利用的信息资源。这里所指的异构数据,是指数据模型的异构。主要体现在,每种数据选择的数据模型不同,有的是结构化(如数据库),有的是半结构化(如HTML、XML)、有的是非结构化(如纯文本、图片)。而为了更高效地利用这些异构数据,就不能局限于传统的关系型数据库存储技术。目前,已经有了许多针对不同数据类型的分布式的存储技术和***,例如:擅长结构化数据存取的传统关系型数据库、擅长各类半结构化/非结构化数据的NoSQL数据库(键值数据库、文档数据库、列数据库、图数据库等),以及一些分布式文件***HadoopHDFS。
然而,现阶段数据存储的规模巨大,且数据种类繁多使得单一的数据存储技术或***,已经逐渐无法满足异构的大数据存储需求。大数据的混合存储技术开始成为发展趋势,即人们利用各类数据库或文件***去存储其各自擅长的数据,并将这些数据在上层进行统一管理。例如,用关系型数据库存储结构化属性信息,利用分布式文件***存储文本、音视频等非结构化的内容信息,利用图数据库存储数据之间的关联关系信息。然而,将数据分散存储在各个数据库或文件***中,会带来严重的数据查询效率问题和安全问题。具体如下:
效率问题:现有混合存储方案的效率问题主要来自跨库(存储***)的查询和更新。
首先,数据被适合自己特点的不同类型的数据库或文件***分别存取,提高了数据的存取效率。例如,图数据库对数据的复杂关联关系的查询是非常高效的,在三层以上关系查询时,其效率能提高若干数量级;分布式文件***使用MapReduce进行内容的并发处理时,也比关系型数据库更快。然而,这种混合存储方式也带来了极大的效率隐患。由于数据被分散存储在多个数据库或文件***中,当一个查询需要获得完整的数据时,就可能要分别连接这些数据库或文件***进行查询,再将查询结构进行汇总。如果此类查询频繁出现,就会让混合存储带来的效率优势化为乌有。
其次,部分NoSQL数据库或分布式文件***在提高内部数据查询效率的同时,其数据更新效率并不高。例如,HBASE在更新数据时采用追加式更新,即添加一条新数据,并赋予一个当前时间戳。在读取数据时,以最新时间戳的数据为准。在删除数据时,也只能添加一条相同数据,将keytype标识为Delete状态,表示这个数据被删除了。当读取到这条数据,发现时间戳最新的keytype是Delete状态,则可获知这条数据是被删除的。这种操作虽然不用定位到原有数据去执行更新和删除操作,提高了更新和删除的响应速度,但是这种更新和删除方法必须执行一次新的数据写入操作,并且在查询时还需要对比时间戳来获得最新数据状态。由此可见,这种数据更新方法并不高效。在混合存储的***中,这种效率问题可能会影响整个存储***的更新和删除效率。
安全问题:混合存储***中使用了许多NoSQL数据库,而这些数据库在安全性上仍存在许多问题。传统的关系型数据库经过了几十年的发展,在安全方面已经具备了以加密中间件和访问控制为代表的完善的安全方案。而许多NoSQL数据库则在安全方面存在诸多漏洞。例如,图数据库由于其存储的是数据的关联关系,在查找时要根据关系路径进行检索,因此难以实施加密技术。另一方面,由于图结构的连通性,很难在其上实施“哪些人能访问哪些关系或数据”的访问控制策略。目前大多数图数据库产品的现状是连接数据库需要输入用户名和密码,但是完成连接后,所有数据是可以随意访问的。这对于数据集中存在部分敏感数据的应用来说,是非常大的安全隐患。
总之,海量异构数据的混合存储已经成为了趋势,然而至今,业界尚未对其面向行业的异构数据存取模型的设计与开发给出统一、一致的定义。本发明本质上是对通用中间件产品的一种具体化和扩充,是在架构企业级大数据应用***中,面向具体的业务和应用的需求,在特定的领域范围内具有良好的协调性和适应性的“行业应用中间件”。
发明内容
本发明的目的是针对现有海量异构大数据存储方法存在的问题和不足之处,提供一种查询检索高效且安全的面向异构数据的安全高效存取方法,以实现对这类大数据集的混合存储和管理。
为了实现上述技术目的,本发明采用以下技术方案:一种面向异构数据的安全高效存取方法,其特征在于包括如下步骤:
步骤A1:创建包含用户层、隔间层、容器层、对象层和存储层,五层逻辑结构的混合数据存储结构,并存储在图数据库中;
步骤A2:在混合数据存储结构的存储层,将异构数据对象的内容数据以数据对象的属性形式与数据对象关联,把异构数据对象中的结构化Structured的属性数据,以二维表结构存储在关系型数据库中,非结构化Unstructured的内容数据以文件***地址、文件路径名作为关键词key,数据本身作为取值value的形式分散存储在分布式文件***中;
步骤A3:在混合数据存储结构的对象层,为异构数据建立数据对象Object节点,并为对象Object节点赋予唯一性对象标识ObjectID,由布隆过滤器查询模块将对象标识ObjectID写入数据对象存在性过滤器Blooming Filter,数据库地址和加密二维表的表名存储在Object节点的结构化数据地址Structured DataAddress中;
步骤A4:混合存储中间件在对象层中构建数据对象与数据对象之间的关联关系边,并为边赋予唯一关键字RelationID,以及表示关联类型的关系Relation标签Label;并将对象标识ObjectID、属性名AttrName、属性值AttrValue组成三元组,并将该三元组写入对象属性存在性布隆过滤器Blooming Filter;同时,混合存储中间件将关联关系边的唯一关键字RelationID写入对象关系存储在性布隆过滤器Blooming Filter。
步骤A5:在上述基础上,混合存储中间件采用图数据库存储数据之间的关联关系,并将分散在各数据库或文件***中的数据组织起来。在进行数据查询时,混合存储中间件首先判断数据用户与该用户进行的数据操作中所读/写的对象Object节点是否有可达路径。如果存在一条可达路径,则允许该数据查询,否则将阻止查询。在允许查询的情况下,混合存储中间件根据数据对象的对象标识Object ID及相互之间关联关系路径的描述,直接在对象层查找符合条件的Object节点及它们之间的关系Relation,产生结果集R1;接着,根据查询条件中与数据对象的离散型属性相关的约束条件,产生匹配对象标识Object ID、属性名AttrName、属性值AttrValue的三元组,然后在对象属性存在性Blooming Filter中查询匹配三元组的存在性,并将结果为0的对象标识Object ID,从结果集R1中删除,形成结果集R2,最后将结果集R2返回给用户。
本发明相比于现有技术具有如下有益效果:
本发明针对海量异构大数据,采用混合数据存储结构的五层逻辑结构设计,支持了细粒度的用户权限管理,且能够通过可达路径的搜索实现权限判定,简化了访问控制策略检索过程,敏感的离散型属性数据采用布隆过滤器BloomFilter进行存在性维护,并采用加密数据库进行备份存储,使得这些敏感属性数据在整个存储***中不存在明文形式,而且在作为检索条件时也不用解密使用,所以在提高混合存储方案整体安全性的同时,也保证了查询检索效率。
本发明充分利用各数据库和文件***的效率优势,建立以图结构为核心的混合数据存储结构,异构数据集采用了混合存储方式,其中的结构化数据采用关系型数据库进行存取,非结构化的内容行数据采用分布式文件***存取,半结构化的数据采用适合其特点的非关系型数据库进行存取,使得存取数据的效率得到了保证。例如,复杂关联关系的查询在使用图数据库时远快于使用单一的关系型数据库,其在三层以上关联关系查询时,性能从原来的几十秒、几百秒级别能提高到2秒左右。
本发明在为异构数据建立存储服务时,以图结构为核心,并在此基础上,优化异构数据更新,以及异构数据的简单查询方法,极大地减小了跨数据库或跨文件***的查询和更新频率,使得整体混合存储方案的性能优势得以保障。
在安全性方面,布隆过滤器BloomingFilter和加密数据库的存储设计,使得部分结构化敏感数据的安全性得到保证,同时也不会因为数据加密对整个***产生较大的性能影响。而基于图结构的访问权限隔间也提供了在异构数据集上的细粒度访问控制能力。这种为异构数据构建中间服务层数据模型的方式,屏蔽了底层操作***和存储***的复杂性,减少了程序设计的复杂性,使开发人员集中注意力在业务逻辑上,同时也减少了不同***软件上的移植等重复工作。调查报告显示,由于采用了中间件和中间服务层技术,应用***的总建设费用可以减少50%左右。
附图说明
图1是本发明的整体架构图;
图2是本发明以图结构为核心的混合数据存储结构;
下面将对发明内容中的关键技术和方法的实施方式进行示例性解释,但不以这种解释限制发明的范围。
具体实施方式
参阅图1。根据本发明,如下步骤:
步骤A1:混合数据存储中间件构建
创建包含用户层、隔间层、容器层、对象层和存储层,五层逻辑结构的混合数据存储结构,并存储在图数据库中;
步骤A2:在混合数据存储结构的存储层,将异构数据对象的内容数据以数据对象的属性形式与数据对象关联,把异构数据对象中的结构化Structured的属性数据,以二维表结构存储在关系型数据库中,非结构化Unstructured的内容数据以文件***地址、文件路径名作为关键词key,数据本身作为取值value的形式分散存储在分布式文件***中;
步骤A3:在混合数据存储结构的对象层,为异构数据建立数据对象Object节点,并为对象Object节点赋予唯一性对象标识ObjectID,由布隆过滤器查询模块将对象标识ObjectID写入数据对象存在性过滤器Blooming Filter,数据库地址和加密二维表的表名存储在Object节点的结构化数据地址Structured DataAddress中;
步骤A4:混合存储中间件在对象层中构建数据对象与数据对象之间的关联关系边,并为边赋予唯一关键字RelationID,以及表示关联类型的关系Relation标签Label;并将对象标识ObjectID、属性名AttrName、属性值AttrValue组成三元组,并将该三元组写入对象属性存在性布隆过滤器Blooming Filter;同时,混合存储中间件将关联关系边的唯一关键字RelationID写入对象关系存储在性布隆过滤器Blooming Filter。
步骤A5:在上述基础上,混合存储中间件采用图数据库存储数据之间的关联关系,并将分散在各数据库或文件***中的数据组织起来。在进行数据查询时,混合存储中间件首先判断数据用户与该用户进行的数据操作中所读/写的对象Object节点是否有可达路径。如果存在一条可达路径,则允许该数据查询,否则将阻止查询。在允许查询的情况下,混合存储中间件根据数据对象的对象标识Object ID及相互之间关联关系路径的描述,直接在对象层查找符合条件的Object节点及它们之间的关系Relation,产生结果集R1;接着,根据查询条件中与数据对象的离散型属性相关的约束条件,产生匹配对象标识Object ID、属性名AttrName、属性值AttrValue的三元组,然后在对象属性存在性Blooming Filter中查询匹配三元组的存在性,并将结果为0的对象标识Object ID,从结果集R1中删除,形成结果集R2,最后将结果集R2返回给用户。
基于上述模型结构,给出了降低跨数据库、跨文件***查询频率的简单查询流程,以及优化版异构数据对象更新及删除流程。简单查询流程为:首先根据数据对象的对象标识Object ID及相互之间关联关系路径的描述,直接在对象层查找符合条件的Object节点及它们之间的Relation,产生结果集R1。接着,根据查询条件中与数据对象的离散型属性相关的约束条件,产生对象标识Object ID、属性名AttrName、属性值AttrValue的匹配三元组,然后在对象属性存在性Blooming Filter中查询匹配三元组的存在性,并将结果为0的那些Object ID从R1中删除,形成结果集R2。最后,将结果集R2返回给用户。优化版异构数据对象更新及删除流程为:在更新或删除异构数据对象的非结构化内容部分时,可直接将对象标识Object ID对应的Object节点的Unstructured Data Address置为新数据所在地址或NULL。
混合数据存储中间件将对象标识ObjectID传输给布隆过滤器查询模块,,混合数据存储中间件在数据对象Object节点的属性中构建非结构化数据地址UnstructuredDataAddress,它的形式为密匙key和取关键值value构成的二元组,其中,密匙key是关键词属性名,取值关键值value是步骤A2中的非结构化Unstructured的内容数据的关键词key。
混合数据存储中间件在数据对象Object节点的属性中构建结分为两部分的构化的属性数据,一部分敏感的且离散的属性数据由混合数据存储中间件调用加密中间件进行属性数据加密,并由加密中间件将敏感的且离散的属性数据对应的属性名和密文存储在关系型数据库的加密二维表中,另一部分非敏感的属性数据则由混合数据存储中间件直接存储在Object节点的属性中。
参阅图2。在图结构中,加入地址引用和布隆过滤器BloomFilter技术,使跨库查询频率得到控制。地址引用是Object节点的一种属性结构,具体包括结构化数据地址Structured Data Address和非结构化数据地址Unstructured Data Address,其中,结构化数据地址Structured Data Address的结构为<属性名,数据库地址|表名>,非结构化数据地址Unstructured Data Address的结构为<属性名,文件***地址|文件路径名>。
布隆过滤器Blooming Filter包括数据对象存在性布隆过滤器Blooming Filter;数据对象关系存在性布隆过滤器Blooming Filter;对象属性存在性布隆过滤器BloomingFilter,见图2。具体地,数据对象存在性布隆过滤器Bloom Filter输入为数据对象Object的唯一性ID,输出结果为0或1,0表示数据对象在混合数据存储结构中不存在,1表示数据对象在混合数据存储结构中存在;数据对象关系存在性布隆过滤器Bloom Filter输入为Object层数据对象之间关联关系的唯一性ID,输出结果为0或1,0标识此关联关系在混合数据存储结构中不存在,1表示此关联关系在混合数据存储结构中存在;对象属性存在性布隆过滤器Bloom Filter,输入为对象标识符Object ID、属性名AttrName、属性值AttrValue的三元组,输出结果为0或1,0表示在混合数据存储结构中对象标识符Object ID所标识的数据对象没有属性名AttrName所描述的属性,或者对应的属性值不是属性值AttrValue,1表示在混合数据存储结构中对象标识符Object ID所标识的数据对象具有AttrName所描述的属性,且其属性值为AttrValue。
进一步地,所述用户User层是指对整个混合存储***用户的描述结构,该层包括多个用户User节点,每个用户User节点具有一个记为用户的标签,用户标识以及用户User的其他属性。
进一步地,所述间隔Compartment层是指实现数据隔离存取的第一层支撑结构,该层包括多个间隔Compartment节点,每个间隔Compartment节点具有一个记为隔间的标签,唯一标识每个间隔Compartment的隔间标识,以及其它间隔Compartment的属性描述,例如创建时间等。每个间隔Compartment节点代表一个数据对象隔离空间,而这个隔离空间可以被多个用户访问。在混合数据存储结构中,采用从用户User节点间隔到Compartment节点的具有访问标签的边表示这种访问许可关系。
进一步地,所述容器Container层是指实现数据隔离存取的第二层支撑结构,该层包括了多个容器Container节点。每个容器Container节点具有一个记为容器的标签,唯一标识每个容器Container的容器标识以及容器Container的属性,可包括创建该容器Container的用户标识,创建时间等信息。每个容器Container节点代表一个分组或目录,用于将数据对象隔离空间进一步划分,以便于检索和管理。每个容器Container能且仅能够与一个划分Compartment节点进行关联。在混合数据存储结构中,采用从划分Compartment节点指向容器Container节点,且具有持有标签的边标识这种关联关系。
进一步地,所述对象Object层是指以对象方式存取和管理数据的对象化结构。该层包括了多个Ojbect节点。每个Object节点代表一个数据对象,它具有一个记为对象的标签,对象标识以及对象Object的属性。每个对象Object节点代表一个数据对象。每个对象Object节点能且仅能够与一个容器Container节点进行关联。
进一步地,在混合数据存储结构中,采用从容器Container节点指向对象Object节点,且具有包含标签的边标识这种关联关系,对象Object层的关联关系边具有唯一性标识,对象Object之间能够具有多种标签的关联关系边,表示被边连接的两个对象Object之间存在标签所标识的关联关系。
进一步地,所述对象Object节点的属性,必须包括结构化数据地址StructedDataAddress和非结构化数据地址UnstructuredDataAddress两个地址引用属性。这两个属性的结构也应为关键词key-取值value的形式。具体地,结构化数据地址StructuredDataAddress的结构为<属性名,数据库地址|表名>;非结构化数据地址UnstructuredDataAddress的结构为<属性名,文件***地址|文件路径名>。
进一步地,所述存储层是指异构数据集中的结构化数据、半/非结构化数据在各数据库、文件***中的存储格式,包括存储结构化属性数据的二维表结构R(对象标识,属性A1,属性A2,…,属性An),其中R为关系名,对象标识为每个数据对象的唯一性标识,A1,A2,…,An为属性名;存储非结构化内容数据的关键词key-取值value结构,其中关键词key为文件路径,取值value为文件;数据对象存在性布隆过滤器BloomingFilter;数据对象关系存在性布隆过滤器BloomingFilter;对象属性存在性布隆过滤器BloomingFilter。
进一步地,所述数据对象存在性布隆过滤器BloomFilter是指维护和判定混合数据存储结构中数据对象存在性的数据结构。其输入为数据对象Object的唯一性标识,输出结果为0或1,0表示数据对象在混合数据存储结构中不存在,1表示数据对象在混合数据存储结构中存在。
进一步地,所述数据对象存在性布隆过滤器BloomingFilter、数据对象关系存在性布隆过滤器BloomingFilter、属性存在性布隆过滤器BloomingFilter均可扩展否定存在性的描述。输入方式为原有输入内容前增加“逻辑非NOT”关键词作为新的输入,输出结果仍为0或1。结果采用否定优先的策略,即忽略非否定的存在性查询结果,1表示混合存储数据结构中不存在所查询的数据对象、关联关系、对象属性,0表示结果无效。
进一步地,所述数据对象关系存在性布隆过滤器BloomFilter是指维护和判定混合数据存储结构中数据对象之间的关联关系存在性的数据结构,其输入为对象Object层数据对象之间关联关系的唯一性标识,输出结果为0或1,0表示此关联关系在混合数据存储结构中不存在,1表示此关联关系在混合数据存储结构中存在。
进一步地,所述对象属性存在性布隆过滤器BloomFilter是指维护和判定混合数据存储结构中数据对象的离散类型属性存在性的数据结构,其输入为对象标识、属性名AttrName、属性值AttrValue的三元组,输出结果为0或1,0表示在混合数据存储结构中对象标识所标识的数据对象没有属性名AttrName所描述的属性,或者对应的属性值AttrValue不正确,1表示在混合数据存储结构中对象标识所标识的数据对象具有属性名AttrName所描述的属性,且其属性值为属性值AttrValue。
进一步地,采用对象属性存在性BloomFilter来维护和判定的部分属性,在存储层中的将采用独立的加密二维表结构的关系名R,其中,R包含对象标识,属性B1,属性B2,…,属性Bn,对象标识为每个数据对象的唯一性标识。该表结构中的属性数据将以密文形式存储。
1)与上述混合数据存储结构匹配的数据存取方法;
进一步地,所述数据存取方法,包括了在混合数据存储结构中增加新的异构数据对象、删除异构数据对象、更新异构数据对象、更新异构数据对象之间的关联关系、查询异构数据对象。
进一步地,所述增加新的异构数据对象的流程如下:
步骤A1:混合数据存储中间件为新增异构数据在混合数据存储结构的Object层为其建立Object节点,并为其赋予唯一性标识ObjectID。
步骤A2:混合数据存储中间件将异构数据对象中的非结构化的内容数据以key-value形式存储在文件***(可以是分布式文件***)中,其中关键词key为文件***地址|文件路径名,取值value为数据本身。并将该内容数据以数据对象的属性形式与数据对象关联,即将关联存储在步骤A1创建的Object节点的非结构化数据地址UnstructuredDataAddress中,形式为<属性名,文件***地址|文件路径名>。
步骤A3:混合数据存储中间件将异构数据对象中的结构化的属性数据分为两部分:
步骤A31:一部分敏感的且离散的属性数据将以密文形式存储在加密二维表中,并将对应的<属性名,数据库地址|表名>存储在Object节点的结构化数据地址StructuredDataAddress中。接着在对象属性存在性BloomingFilter中维护其存在性,即将ObjectID、属性名AttrName、属性值AttrValue组成三元组写入对象属性存在性BloomingFilter。
步骤A32:其他结构化数据则以明文形式直接存储在二维表中,并将对应的<属性名,数据库地址|表名>存储在Object节点的结构化数据地址StructuredDataAddress中。
步骤A4:混合数据存储中间件为异构数据对象构建与其他数据对象的关联关系,即在对象Object层构建连接该数据对象与其他对象的边,并为其赋予唯一性标识RelationID,以及表示关联类型的RelationLabel。
步骤A5:混合数据存储中间件将ObjectID写入数据对象存在性BloomFilter,将RelationID写入数据对象关系存在性BloomingFilter,并返回给用户数据添加成功的提示。
进一步地,所述删除异构数据对象的流程如下:
步骤B1:混合数据存储中间件查找待删除的异构数据对象的Object节点,将结构化数据地址StructuredDataAddress和非结构化数据地址UnstructuredDataAddress的内容加入删除队列,并删除异构数据对象在Object层的Object节点,删除与该节点相连的关联关系边,返回给用户删除成功的提示。
步骤B2:混合数据存储中间件将不存在对象标识NOTObjectID写入数据对象存在性布隆过滤器BloomFilter,将NOTRelationID写入数据对象关系存在性布隆过滤器BloomingFilter。
步骤B3:在***空闲时,由后台进程根据删除队列中的结构化数据地址StructuredDataAddress和非结构化数据地址UnstructuredDataAddress信息逐一按照地址删除关系型数据库和文件***中的结构化和非结构化数据。
进一步地,所述更新异构数据对象的流程如下:
步骤C1:混合数据存储中间件根据ObjectID在Object层查找到Object节点,并根据结构化数据地址StructuredDataAddress信息查找对应结构化属性位置。
步骤C2:混合数据存储中间件根据结构化数据地址StructuredDataAddress中的位置和数据对象标识ObjectID查找到结构化的属性数据,并更新为新值。若属性数据在对象属性存在性BloomingFilter中维护了存在性,则需要将NOTObjectID、属性名AttrName、旧的属性值AttrValue写入对象属性存在性布隆过滤器BloomingFilter,并将ObjectID、属性名AttrName、新的属性值AttrValue写入对象属性存在性布隆过滤器BloomingFilter。
步骤C3:混合数据存储中间件直接在文件***中新增一个文件,文件内容为异构数据对象的新的内容数据部分,并将<属性名,文件***地址|新文件路径名>覆盖写入Object节点的非结构化数据地址UnstructuredDataAddress中。
步骤C4:返回给用户更新成功的提示。
进一步地,所述更新异构数据对象的流程可以优化如下:若数据用户已知异构数据对象的结构化属性存放位置(库、表)信息,则可以省略步骤C1;若要将异构数据对象的非结构化内容部分更新为空值,则步骤C3可直接简化为将ObjectID对应的Object节点的UnstructuredDataAddress置为空值NULL;若数据用户只更新结构化数据或非结构化数据其中的一个,则可省略其他不相关步骤。
进一步地,所述更新异构数据对象之间的关联关系的流程,除了采用普通图数据库的关联关系更新流程,还需要额外增加一个步骤,对数据对象关系存在性布隆过滤器BloomingFilter进行维护。若关联关系更新中新创建了边,则需要将边的唯一标识RelationID写入数据对象关系存在性布隆过滤器BloomingFilter;若关联干系更新中删除了边,则需要将边的RelationID前面添加非NOT,写入数据对象关系存在性布隆过滤器BloomingFilter。
进一步地,所述查询异构数据对象的流程可分为简单查询流程与完整查询流程两类。
进一步地,所述简单查询流程是指不包括跨库查询的数据检索方式,其返回结果仅包含符合查询条件的对象标识ObjectID及唯一标识RelationID,具体如下:
步骤D1:根据数据对象的对象标识ObjectID及相互之间关联关系路径的描述,直接在对象层查找符合条件的对象Object及它们之间的关系Relation,产生结果集R1。
步骤D2:混合数据存储中间件根据属性条件中对数据对象的离散型属性的属性值的约束条件,产生对象标识ObjectID、属性名AttrName、属性值AttrValue的匹配三元组,然后在对象属性存在性布隆过滤器BloomingFilter中查询匹配三元组的存在性,并将结果为0的那些对象标识ObjectID从R1中删除,形成结果集R2。
步骤D3:将结果集R2返回给用户。
进一步地,所述完整查询流程的步骤如下:
步骤E1:混合数据存储中间件根据数据对象的对象标识ObjectID及相互之间关联关系路径的描述,直接在对象层查找符合条件的对象Object及它们之间的关系Relation,将对象Object和关系Relation作为结果集R1。
步骤E2:混合数据存储中间件根据属性条件中对数据对象的离散型属性的属性值的约束条件,产生对象标识ObjectID、属性名AttrName、属性值AttrValue的匹配三元组,然后在对象属性存在性布隆过滤器BloomingFilter中查询匹配三元组的存在性,并将结果为0的那些ObjectID从R1中删除,将R1中剩余的部分作为结果集R2。
步骤E3:混合数据存储中间件根据属性条件中非离散型的其他结构化属性的约束条件,在对象Object节点的StructuredDataAddress信息查找对应结构化属性位置,连接关系型数据库进行属性查询,并将不符合属性条件的那些对象标识ObjectID从R2中删除,将R2中剩余的部分作为结果集R3。
步骤E4:若用户需要查询结果包括非结构化的内容数据,则将对象Object节点的UnstructuredDataAddress信息添加到结果集R3中对应的对象Object,形成查询结果集R4。
步骤E5:将查询结果R4返回给用户。
进一步地,上述所有数据存取方法的流程中都包含了一个权限判断流程,即一个用户A进行的所有数据存取操作中所读/写的对象Object节点必须经过间隔Compartment层、容器Container层与用户User层的用户A所对应的用户User节点具有可达路径。
在可选的实施例中,以某视频网站的数据为例,数据主要包括用户信息数据,视频信息数据两大类。用户信息数据包括了用户帐号、手机号、性别、年龄、爱好、注册时间、用户关注的其他用户的列表、关注此用户的其他用户的列表。视频信息数据则包括了视频的ID、发布的用户帐号、视频的内容、发布时间。在这个数据集中存在大量的异构数据:结构化的用户信息、视频属性信息;半结构化的用户相互关注信息;非结构化的视频内容。
混合数据存储结构的示例
用户信息数据对应为二维用户信息表UserInfo(OjbectID,用户帐号,性别,年龄,爱好,注册时间),并在每个用户数据对象所对应的对象Object节点的StructuredDataAddress中存储<属性名,数据库地址|UserInfo>。而用户的手机号数据是敏感信息,且值是离散型的,因此将其用对象属性存在性布隆过滤器BloomingFilter进行存在性维护,并采用加密数据库进行备份存储。
用户信息数据中的用户间的相互关注关系对应为对象Object层的对象Object节点之间的边,边上的关联关系标签RelationLabel为关注follow,并赋予每条边一个唯一关键字RelationID。
视频信息数据中的视频的ID、发布的用户帐号、发布时间对应为二维表视频信息表VideoInfo(OjbectID,发布的用户帐号,发布时间),并在每个视频数据对象所对应的Object节点的StructuredDataAddress中存储<属性名,数据库地址|VideoInfo>。视频信息数据中的视频内容以key-vale形式存储在文件***中,关键词key为该视频的文件路径名,取值value为视频本身,并将其key存储在视频数据对象所对应的对象Object节点的非结构化数据地址UnstructuredDataAddress中。
对于用户和视频所对应的数据对象的存在性则采用数据对象存在性布隆过滤器BloomingFilter和数据对象关系存在性布隆过滤器BloomingFilter进行维护。
最后,在视频网站的管理员或客服人员对这些用户数据对象和视频数据对象进行访问和管理时,则通过用户User层与对象Object层之间的可达路径进行授权和判定。例如,为管理员A分配了一个视频区B进行管理,则可以将上传到视频区B的视频对象Object都关联到一个容器Container层的容器Container节点上,再将该容器Container节点关联到一个间隔Compartment层的间隔Compartment节点上,而管理员A对应的用户User节点也会关联到该间隔Compartment节点。当判断管理员A是否能够访问视频区B的某个视频时,只需要能找到一条从该视频Object到管理员A的用户User节点的可达路径就认为其被授权了。当需要撤销管理员A对视频区B的管理权限时,只需要将路径中的间隔Compartment节点与管理员A的用户User节点之间的边删除,或将视频区B对应的容器Container节点与路径中的间隔Compartment节点之间的边删除即可。总之,本发明提供了一种细粒度的权限管理机制,而真实场景下的权限关联方式需要根据视频网站对视频数据的管理架构决定,这里仅对其进行一种示例型解释。
以上所述为本发明较佳实施例,应该注意的是上述实施例对本发明进行说明,然而本发明并不局限于此,并且本领域技术人员在脱离所附权利要求的范围情况下可设计出替换实施例。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (10)

1.一种面向异构数据的安全高效存取方法,其特征在于包括如下步骤:
步骤A1:创建包含用户层、隔间层、容器层、对象层和存储层,五层逻辑结构的混合数据存储结构,并存储在图数据库中;
步骤A2:在混合数据存储结构的存储层,将异构数据对象的内容数据以数据对象的属性形式与数据对象关联,把异构数据对象中的结构化Structured的属性数据,以二维表结构存储在关系型数据库中,非结构化Unstructured的内容数据以文件***地址、文件路径名作为关键词key,数据本身作为取值value的形式分散存储在分布式文件***中;
步骤A3:在混合数据存储结构的对象层,为异构数据建立数据对象Object节点,并为对象Object节点赋予唯一性对象标识ObjectID,由布隆过滤器查询模块将对象标识ObjectID写入数据对象存在性过滤器Blooming Filter,数据库地址和加密二维表的表名存储在Object节点的结构化数据地址Structured DataAddress中;
步骤A4:混合存储中间件在对象层中构建数据对象与数据对象之间的关联关系边,并为边赋予唯一关键字RelationID,以及表示关联类型的关系Relation标签Label;并将对象标识ObjectID、属性名AttrName、属性值AttrValue组成三元组,并将该三元组写入对象属性存在性布隆过滤器Blooming Filter;同时,混合存储中间件将关联关系边的唯一关键字RelationID写入对象关系存储在性布隆过滤器Blooming Filter;
步骤A5:在上述基础上,混合存储中间件采用图数据库存储数据之间的关联关系,并将分散在各数据库或文件***中的数据组织起来;在进行数据查询时,混合存储中间件首先判断数据用户与该用户进行的数据操作中所读/写的对象Object节点是否有可达路径,如果存在一条可达路径,则允许该数据查询,否则将阻止查询;在允许查询的情况下,混合存储中间件根据数据对象的对象标识Object ID及相互之间关联关系路径的描述,直接在对象层查找符合条件的Object节点及它们之间的关系Relation,产生结果集R1;接着,根据查询条件中与数据对象的离散型属性相关的约束条件,产生匹配对象标识Object ID、属性名AttrName、属性值AttrValue的三元组,然后在对象属性存在性Blooming Filter中查询匹配三元组的存在性,并将结果为0的对象标识Object ID,从结果集R1中删除,形成结果集R2,最后将结果集R2返回给用户。
2.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:混合数据存储中间件在数据对象Object节点的属性中构建非结构化数据地址UnstructuredDataAddress,它的形式为关键词key和取值value构成的二元组,其中,关键词key是异构数据对象的属性名,取值value是步骤A2中的非结构化Unstructured的内容数据的关键词key。
3.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:混合数据存储中间件在数据对象Object节点的属性中构建结构化的属性数据,一部分敏感的且离散的属性数据由混合数据存储中间件调用加密中间件进行属性数据加密,并由加密中间件将加密得到的密文存储在关系型数据库的加密二维表中,另一部分非敏感的属性数据则由混合数据存储中间件直接存储在对象Object节点的属性中。
4.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:对象存在性布隆过滤器Bloom Filter输入为数据对象Object的唯一性ID,输出结果为0或1,0表示数据对象在混合数据存储结构中不存在,1表示数据对象在混合数据存储结构中存在;数据对象关系存在性布隆过滤器Bloom Filter输入为对象层数据对象之间关联关系的唯一性ID,输出结果为0或1,0标识此关联关系在混合数据存储结构中不存在,1表示此关联关系在混合数据存储结构中存在;对象属性存在性布隆过滤器Bloom Filter,输入为对象标识符ObjectID、属性名AttrName、属性值AttrValue的三元组,输出结果为0或1,0表示在混合数据存储结构中对象标识符Object ID所标识的数据对象没有属性名AttrName所描述的属性,或者对应的属性值不是属性值AttrValue,1表示在混合数据存储结构中对象标识符Object ID所标识的数据对象具有AttrName所描述的属性,且其属性值为AttrValue。
5.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:所述间隔层是实现数据隔离存取的第一层支撑结构,该层包括多个间隔节点,唯一标识的每个间隔的间隔标识,以及间隔的属性描述,每个间隔节点具有一个记为隔间的标签,每个间隔节点代表一个数据对象隔离空间,而这个隔离空间可以被多个用户访问。
6.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:所述容器层是实现数据隔离存取的第二层支撑结构,该层包括了多个容器Container节点,唯一标识的每个容器Container的容器标识以及容器Container的属性,每个容器Container节点具有一个记为容器的标签和代表一个分组或目录,用于将数据对象隔离空间进一步划分。
7.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:所述对象层是指以对象方式存取和管理数据的对象化结构,该层包括了多个对象Ojbect节点,每个对象Object节点代表一个数据对象,它具有一个记为对象的标签,对象标识以及对象Object的属性,且仅能够与一个容器Container节点进行关联。
8.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:在混合数据存储结构中,采用从容器Container节点指向对象Object节点,且具有包含标签的边标识这种关联关系,对象Object层的关联关系边具有唯一性标识,对象Object之间具有多种标签的关联关系边,表示被边连接的两个对象Object之间存在标签所标识的关联关系。
9.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:所述存储层是指异构数据集中的结构化数据、半/非结构化数据在各数据库、文件***中的存储格式,包括存储结构化属性数据的二维表结构R,其中,二维表结构R为对象标识,属性A1,属性A2,…,属性An的关系名,对象标识为每个数据对象的唯一性标识,A1,A2,…,An为属性名;存储非结构化内容数据的关键词key-取值value结构,其中关键词key为文件路径,取值value为文件;数据对象存在性布隆过滤器BloomingFilter;数据对象关系存在性布隆过滤器BloomingFilter;对象属性存在性布隆过滤器BloomingFilter。
10.如权利要求1所述的面向异构数据的安全高效存取方法,其特征在于:数据查询过程中,包含了一个权限判断流程,即一个用户A进行的所有数据存取操作中所读/写的对象Object节点必须经过间隔Compartment层、容器Container层与用户User层的用户A所对应的用户User节点具有可达路径。
CN202010481109.7A 2020-05-31 2020-05-31 面向异构数据的安全高效存取方法 Active CN111680041B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010481109.7A CN111680041B (zh) 2020-05-31 2020-05-31 面向异构数据的安全高效存取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010481109.7A CN111680041B (zh) 2020-05-31 2020-05-31 面向异构数据的安全高效存取方法

Publications (2)

Publication Number Publication Date
CN111680041A true CN111680041A (zh) 2020-09-18
CN111680041B CN111680041B (zh) 2023-11-24

Family

ID=72453783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010481109.7A Active CN111680041B (zh) 2020-05-31 2020-05-31 面向异构数据的安全高效存取方法

Country Status (1)

Country Link
CN (1) CN111680041B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925954A (zh) * 2021-03-05 2021-06-08 北京中经惠众科技有限公司 用于在图数据库中查询数据的方法和装置
CN113240398A (zh) * 2021-05-25 2021-08-10 国网山西省电力公司信息通信分公司 一种基于大数据的电网数据资产管理***
CN113254518A (zh) * 2021-05-21 2021-08-13 京软伟业信息技术(北京)有限公司 一种基于粒数据的信息资源管理与分析方法
CN113557512A (zh) * 2020-02-14 2021-10-26 谷歌有限责任公司 安全的多方到达率和频率估算
CN113961754A (zh) * 2021-09-08 2022-01-21 南湖实验室 一种基于持久内存的图数据库***
CN114880690A (zh) * 2022-06-08 2022-08-09 浙江省交通运输科学研究院 一种基于边缘计算的源数据时序精化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090107145A (ko) * 2008-04-08 2009-10-13 한국생명공학연구원 이질적인 2차원 테이블의 데이터를 통합하여 검색하는 방법
CN101667191A (zh) * 2009-09-04 2010-03-10 北京邮电大学 基于p2p的信息共享方法
CN101980213A (zh) * 2010-11-23 2011-02-23 中国科学院软件研究所 一种基于j2ee的数据持久化方法及***
CN103412897A (zh) * 2013-07-25 2013-11-27 中国科学院软件研究所 一种基于分布式结构的并行数据处理方法
CN106708993A (zh) * 2016-12-16 2017-05-24 武汉中地数码科技有限公司 基于大数据技术的空间数据存储处理中间件框架实现方法
CN110489395A (zh) * 2019-07-27 2019-11-22 西南电子技术研究所(中国电子科技集团公司第十研究所) 自动获取多源异构数据知识的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090107145A (ko) * 2008-04-08 2009-10-13 한국생명공학연구원 이질적인 2차원 테이블의 데이터를 통합하여 검색하는 방법
CN101667191A (zh) * 2009-09-04 2010-03-10 北京邮电大学 基于p2p的信息共享方法
CN101980213A (zh) * 2010-11-23 2011-02-23 中国科学院软件研究所 一种基于j2ee的数据持久化方法及***
CN103412897A (zh) * 2013-07-25 2013-11-27 中国科学院软件研究所 一种基于分布式结构的并行数据处理方法
CN106708993A (zh) * 2016-12-16 2017-05-24 武汉中地数码科技有限公司 基于大数据技术的空间数据存储处理中间件框架实现方法
CN110489395A (zh) * 2019-07-27 2019-11-22 西南电子技术研究所(中国电子科技集团公司第十研究所) 自动获取多源异构数据知识的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JUNXI FENG等: "Reconstruction of three-dimensional heterogeneous media from a single two-dimensional section via co-occurrence correlation function", pages 1 - 12, Retrieved from the Internet <URL:《网页在线公开:https://www.sciencedirect.com/science/article/pii/S0927025617306602》> *
李亚红等: "异构集群中非结构化大数据检测方法", 《重庆理工大学学报(自然科学)》, vol. 34, no. 7, pages 170 - 175 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113557512A (zh) * 2020-02-14 2021-10-26 谷歌有限责任公司 安全的多方到达率和频率估算
US11784800B2 (en) 2020-02-14 2023-10-10 Google Llc Secure multi-party reach and frequency estimation
CN112925954A (zh) * 2021-03-05 2021-06-08 北京中经惠众科技有限公司 用于在图数据库中查询数据的方法和装置
CN112925954B (zh) * 2021-03-05 2024-05-24 北京中经惠众科技有限公司 用于在图数据库中查询数据的方法和装置
CN113254518A (zh) * 2021-05-21 2021-08-13 京软伟业信息技术(北京)有限公司 一种基于粒数据的信息资源管理与分析方法
CN113240398A (zh) * 2021-05-25 2021-08-10 国网山西省电力公司信息通信分公司 一种基于大数据的电网数据资产管理***
CN113961754A (zh) * 2021-09-08 2022-01-21 南湖实验室 一种基于持久内存的图数据库***
CN113961754B (zh) * 2021-09-08 2023-02-10 南湖实验室 一种基于持久内存的图数据库***
CN114880690A (zh) * 2022-06-08 2022-08-09 浙江省交通运输科学研究院 一种基于边缘计算的源数据时序精化方法

Also Published As

Publication number Publication date
CN111680041B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
CN111680041B (zh) 面向异构数据的安全高效存取方法
US11550761B2 (en) Systems and methods for in-place records management and content lifecycle management
US9298417B1 (en) Systems and methods for facilitating management of data
US7606813B1 (en) Model consolidation in a database schema
US7593951B2 (en) Application programming interface for centralized storage of principal data
US11789976B2 (en) Data model and data service for content management system
CN107229872A (zh) 一种分离存储查询逻辑与分段数据的隐私数据保护方法
US11100129B1 (en) Providing a consistent view of associations between independently replicated data objects
Jianmin et al. An improved join‐free snowflake schema for ETL and OLAP of data warehouse
CN113127906A (zh) 基于c/s架构的统一权限管理平台、方法及存储介质
US12019599B2 (en) Data model and data service for content management system
Buccafurri et al. Range query integrity in cloud data streams with efficient insertion
US11803652B2 (en) Determining access changes
US11836130B2 (en) Relational database blockchain accountability
AU2021409880B2 (en) Data model and data service for content management system
US11973763B1 (en) Events account for native app event sharing
US20240171586A1 (en) Secure roles for data sharing
US11803568B1 (en) Replicating changes from a database to a destination and modifying replication capacity
US11809922B1 (en) Sharing events and other metrics in native applications
US11799958B2 (en) Evaluating access based on group membership
CN115168916B (zh) 一种面向移动终端应用的数字对象可信存证方法和***
US12001574B2 (en) Evaluating an access control list from permission statements
US20220197883A1 (en) Aggregates index
US10929396B1 (en) Multi-type attribute index for a document database
Bhardwaj Graph Database

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