CN106909558A - 数据隔离以及查询的方法和装置 - Google Patents
数据隔离以及查询的方法和装置 Download PDFInfo
- Publication number
- CN106909558A CN106909558A CN201510976671.6A CN201510976671A CN106909558A CN 106909558 A CN106909558 A CN 106909558A CN 201510976671 A CN201510976671 A CN 201510976671A CN 106909558 A CN106909558 A CN 106909558A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- level key
- customized objects
- generation
- 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
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/24—Querying
- G06F16/245—Query processing
-
- 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/2282—Tablespace storage structures; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/6227—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 where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据隔离以及查询的方法及装置,涉及数据库领域。存储数据时,根据二级键K2和一级键生成参数构建生成一级键K1,然后将(K2,V)存储到定制对象DO中,最后采用(K1,DO)的数据存储形式存储键值数据。相应的,查询数据时,根据二级键K2和一级键生成参数构建生成一级键K1,然后根据一级键K1查找到定制对象DO,最后根据二级键K2取出定制对象DO中的数据值V。其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。通过上述方案实现了数据库中数据的隔离功能。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种数据隔离以及查询的方法和装置。
背景技术
基于内存的键值模式数据库,通常应用于高并发、高吞吐、低时延要求的场景下,性能是其核心设计诉求。而在管理方面,常见的数据库往往只提供简单的安全口令认证,同时不提供用户空间、数据隔离等手段,同时在面向大覆盖范围的统计上存在缺陷。
在大数据运营型企业的生产实践中,其面向多个客户同时提供服务的特点,以及共享硬件资源提升资源利用率的需求,必然要求对于传统的内存数据库提供区分可定制场景的数据隔离。
发明内容
本发明所要解决的一个技术问题是:如何实现数据库中数据的隔离功能。
根据本发明实施例的一个方面,提供了一种数据隔离方法,包括:根据二级键K2和一级键生成参数构建生成一级键K1;将(K2,V)存储到定制对象DO中;采用(K1,DO)的数据存储形式存储键值数据;其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。
根据本发明实施例的另一个方面,提供了一种数据查询方法,包括:根据二级键K2和一级键生成参数构建生成一级键K1;根据一级键K1查找到定制对象DO;根据二级键K2取出定制对象DO中的数据值V。
根据本发明实施例的又一个方面,提供了一种数据隔离装置,包括:一级键K1生成模块,用于根据二级键K2和一级键生成参数构建生成一级键K1;键值数据存储模块,用于将(K2,V)存储到定制对象DO中,并用于采用(K1,DO)的数据存储形式存储键值数据;其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。
根据本发明实施例的再一个方面,提供了一种数据查询装置,包括:一级键K1生成模块,用于根据二级键K2和一级键生成参数构建生成一级键K1;定制对象DO查找模块,用于根据一级键K1查找到定制对象DO;键值对取值模块,用于根据二级键K2取出定制对象DO中的数据值V。
本发明在键值存储模式的基础上构建逻辑层,从而实现了数据库中数据的隔离功能。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明数据隔离方法的一个实施例的流程示意图。
图2示出本发明数据查询方法的一个实施例的流程示意图。
图3示出本发明数据隔离装置的一个实施例的结构示意图。
图4示出本发明数据查询装置的一个实施例的结构示意图。
图5示出本发明一级键K1的数据库段、数据表段、表分区段组成部分之间的对应关系示意图。
图6示出本发明采用K1-K2-V的形式进行数据存储的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明一个实施例的数据隔离方法。
图1示出本发明数据隔离方法的一个实施例的流程示意图。如图1所示,该实施例的数据隔离方法包括:
步骤S102,根据二级键K2和一级键生成参数构建生成一级键K1。
步骤S104,将(K2,V)存储到定制对象DO中。
步骤S106,采用(K1,DO)的数据存储形式存储键值数据。其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。定制对象DO例如可以通过MAP的形式存储在内存集群数据库中。
优选的,一级键K1可以由数据库段、数据表段、表分区段组成,从而在Redis集群上提供数据库、数据表、分区的数据组织方式。其中,数据库db是最大的数据隔离单位,是一个逻辑概念。用户可以创建多个数据库。一般来说,一类的数据应放在一个内存数据库中。数据表table是一类主题、业务、概念相同数据的集合,如用户表、明细表等,是一个逻辑概念。表分区partition是基于Redis集群特性,将大数据表进一步逻辑拆分的单位。不同分区中的数据是分开存储,使数据的分布更加均匀。此外,数据库、数据表、分区这些逻辑概念可以用元数据来描述。用于存储元数据的键名为STORE,值类型为Hash(哈希表)。所有元数据信息,都存放在以STORE为键的哈希表下。所有数据库的元数据描述信息都以Key-Value的形式保存在元数据库中(哈希表),数据库的键名可以为DB_[数据库名]。所有数据表的元数据描述信息都以Key-Value的形式保存在元数据库中(哈希表)。数据表的键名可以为TB_[数据库名]_[数据表名],从而在键名上体现数据表与数据库的关系。数据分区是数据表的进一步逻辑划分,数据分区以元数据的方式保存的数据表的元数据中。数据分区的键名可以为[数据库名]_[数据表名]_[分区名]。一级键K1的数据库段、数据表段、表分区段组成部分之间的对应关系如图5所示。采用K1-K2-V的形式进行数据存储的存储结构如图6所示。
下面列举说明上述的数据隔离方法。
数据库进行全国人口的姓名和民族存储,准备按“省”统计人口数量,以及按“省+性别”统计人口数量。传统的键值数据库只能按照全库扫描并分类判断的方式进行。针对按“省”统计人口数量的业务需求,本发明基于数据库中的定制对象“身份证-姓名”以及生成参数“省份”,可以将K1设计为“人口库-姓名表-省份”的形式,其中,省份可以通过身份证号K2在存储时获得。针对按“省+性别”统计人口数量的业务需求,本发明基于数据库中的定制对象“身份证-民族”以及生成参数“省份、性别”,可以将K1设计为“人口库-民族表-省份|性别”形式。其中省份和性别都可以通过身份证号K2在存储时获得。“人口库”、“姓名表”、“民族表”关键字可以在业务中预定义。这样,由于存在31个省份和2个性别,整体K1的数量为31×2=64个,比12亿的人口基数有本质性下降。
在本实施例中,键值数据库采用两段式存储设计。用户数据不直接存储为Key-Value,而是以K1-K2-V的形式保存在以db_table_partition三个维度组成的K1的哈希表类型的value中。通过构建逻辑键K1并采用K1-K2-V的数据存储形式存储键值数据,实现了数据的隔离。同时,K1可以用作数据的组织和管理,不会被用户看到。此外,本实施例可以在传统的键值数据库基础上进行进一步的接口逻辑层设计,易于实现,不需要对传统的键值数据库做很大的改动。
下面结合图2描述本发明一个实施例的数据查询方法。
图2示出本发明数据查询方法的一个实施例的流程示意图。如图2所示,该实施例的数据查询方法包括:
步骤S202,根据二级键K2和一级键生成参数构建生成一级键K1。K1的构建生成方法与数据存储隔离时采用的方法一致,并且具体构建过程可以参考前述实施例的描述。
步骤S204,根据一级键K1查找到定制对象DO。
步骤S206,根据二级键K2取出定制对象DO中的数据值V。
可选的,一级键K1可以由数据库段、数据表段、表分区段组成。
此外,定制对象DO可以通过MAP形式存储。
K1被设计为“人口库-民族表-省份|性别”形式,在检索时,如果单体检索,通过输入身份证号K2,可以计算出省份和性别,然后通过K2和一级键生成参数“省份、性别”得到一级键K1。在数据库中输入K1后,可以得到定制对象K2-V,然后再用身份证号K2检索定制对象的值。
同时,利用数据库还可以对某一类对象进行统计。在统计时,首先可以计算Partition部分的值,利用Partition部分的值检索出定制对象,然后针对定制对象进行复杂度O(0)的size操作,获得人口数。
采用上述方法在数据库中进行对象的查询和统计操作,可以大幅降低运算的复杂度,使得查询和统计操作更加高效的进行。
下面结合图3描述本发明一个实施例的数据隔离装置。
图3示出本发明数据隔离装置的一个实施例的结构示意图。如图3所示,该实施例的数据隔离装置30包括:
一级键K1生成模块302,用于根据二级键K2和一级键生成参数构建生成一级键K1。
键值数据存储模块304,用于将(K2,V)存储到定制对象DO中,并采用(K1,DO)的数据存储形式存储键值数据。其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。
可选的,一级键K1由数据库段、数据表段、表分区段组成。
此外,键值数据存储模块还可以用于将定制对象以MAP的形式存储。
下面结合图4描述本发明一个实施例的数据查询装置。
图4示出本发明数据查询装置的一个实施例的结构示意图。如图4所示,该实施例的数据查询装置40包括:
一级键K1生成模块402,用于根据二级键K2和一级键生成参数构建生成一级键K1。
定制对象DO查找模块404,用于根据一级键K1查找到定制对象DO。
键值对取值模块406,用于根据二级键K2取出定制对象DO中的数据值V。
可选的,根据二级键K2和一级键生成参数构建生成一级键K1包括:一级键K1由数据库段、数据表段、表分区段组成。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种数据隔离方法,包括:
根据二级键K2和一级键生成参数构建生成一级键K1;
将(K2,V)存储到定制对象DO中;
采用(K1,DO)的数据存储形式存储键值数据;
其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。
2.根据权利要求1所述的方法,其特征在于,所述一级键K1由数据库段、数据表段、表分区段组成。
3.根据权利要求1所述的方法,其特征在于,其中,所述定制对象DO以MAP的形式存储。
4.一种数据查询方法,包括:
根据二级键K2和一级键生成参数构建生成一级键K1;
根据一级键K1查找到定制对象DO;
根据二级键K2取出定制对象DO中的数据值V。
5.根据权利要求4所述的方法,其特征在于,所述一级键K1由数据库段、数据表段、表分区段组成。
6.根据权利要求4所述的方法,其特征在于,定制对象DO以MAP形式存储。
7.一种数据隔离装置,包括:
一级键K1生成模块,用于根据二级键K2和一级键生成参数构建生成一级键K1;
键值数据存储模块,用于将(K2,V)存储到定制对象DO中,并用于采用(K1,DO)的数据存储形式存储键值数据;
其中,一级键K1为定制对象DO的逻辑键,二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。
8.根据权利要求7所述的装置,其特征在于,其中,所述一级键K1由数据库段、数据表段、表分区段组成。
9.根据权利要求7所述的装置,其特征在于,所述键值数据存储模块还用于:将定制对象DO以MAP的形式存储。
10.一种数据查询装置,包括:
一级键K1生成模块,用于根据二级键K2和一级键生成参数构建生成一级键K1;
定制对象DO查找模块,用于根据一级键K1查找到定制对象DO;
键值对取值模块,用于根据二级键K2取出定制对象DO中的数据值V。
11.根据权利要求10所述的装置,其特征在于,其中,一级键K1由数据库段、数据表段、表分区段组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976671.6A CN106909558A (zh) | 2015-12-23 | 2015-12-23 | 数据隔离以及查询的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976671.6A CN106909558A (zh) | 2015-12-23 | 2015-12-23 | 数据隔离以及查询的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106909558A true CN106909558A (zh) | 2017-06-30 |
Family
ID=59201077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510976671.6A Pending CN106909558A (zh) | 2015-12-23 | 2015-12-23 | 数据隔离以及查询的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106909558A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086732A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种海量数据管理方法 |
CN101087203A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种海量数据统计方法 |
CN101876983A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 数据库分区方法与系统 |
-
2015
- 2015-12-23 CN CN201510976671.6A patent/CN106909558A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086732A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种海量数据管理方法 |
CN101087203A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种海量数据统计方法 |
CN101876983A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 数据库分区方法与系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558672B1 (en) | System and method for executing queries on multi-graphics processing unit systems | |
CN103973668B (zh) | 一种网络信息系统中服务器端的个人隐私数据保护方法 | |
CN102725753B (zh) | 优化数据访问的方法及装置、优化数据存储的方法及装置 | |
EP2405607B1 (en) | Privilege management system and method based on object | |
US9372880B2 (en) | Reclamation of empty pages in database tables | |
US20100030995A1 (en) | Method and apparatus for applying database partitioning in a multi-tenancy scenario | |
US20130047230A1 (en) | Building data security in a networked computing environment | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、系统及终端设备 | |
CN104111936B (zh) | 数据查询方法和系统 | |
CN103631924B (zh) | 一种分布式数据库平台的应用方法和系统 | |
CN101655892A (zh) | 一种移动终端和访问控制方法 | |
CN104598840A (zh) | 基于Http协议的多数据源的数据处理方法及系统 | |
CN104238999B (zh) | 一种基于水平分区分布式数据库的任务调度方法及装置 | |
CN102929961A (zh) | 基于构建快速数据分级通道的数据处理方法及其装置 | |
CN103929325A (zh) | 一种信息系统集成中的组织机构及用户权限统一控制方法 | |
CN104252454B (zh) | 一种面向云计算多租户模式的数据权限控制方法和系统 | |
CN107977773A (zh) | 一种管理多个云平台的多项目资源额度的方法 | |
CN105683941A (zh) | 调节企业数据仓库资源使用 | |
CN109639598A (zh) | 基于微服务的请求处理方法、服务器、存储介质及装置 | |
CN104376109A (zh) | 一种基于数据分布库的多维度数据分布方法 | |
CN109710743A (zh) | 一种存储池的访问方法、装置及电子设备 | |
CN106897281A (zh) | 一种日志分片方法和装置 | |
CN106909558A (zh) | 数据隔离以及查询的方法和装置 | |
WO2023124135A1 (zh) | 特征检索方法、装置、电子设备、计算机存储介质和程序 | |
CN110019229B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170630 |
|
RJ01 | Rejection of invention patent application after publication |