基于键-值数据库的多租户扩展方法

文档序号:6638653阅读:323来源:国知局
基于键-值数据库的多租户扩展方法
【专利摘要】本发明实施例涉及一种基于键-值数据库的多租户扩展方法,所述方法包括:获取初始业务实体元数据;定制阶段,在所述初始业务实体元数据上扩展业务属性,对所述业务属性定义业务实体和显示标签,生成满足多租户需求的特定业务实体元数据;生成实例阶段,根据所述特定业务实体元数据,创建键-值Key-Value数据库;实例运行阶段,以租户标识作为RowKey前缀插入到Key-Value数据库的业务实体数据,通过所述租户标识生成RowKey的查询范围查询业务实体数据,在所述查询范围内从所述Key-Value数据库中取出业务实体数据,按照所述特定业务实体元数据生成交互界面,以便将所述业务实体数据展示。
【专利说明】基于键-值数据库的多租户扩展方法

【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及一种基于键-值数据库的多租户扩展方法。

【背景技术】
[0002] 互联网技术的迅猛发展使得传统数据库在应对海量数据时面临巨大挑战,分布式 键-值Key-Value数据库应运而生,Key-Value数据库包括开源的非关系型分布式数据库 HBase、非关系型数据库Cassandra、非关系型的数据库否SQL等。Key-Value数据库的分布 式构架,相对传统关系型数据库具有可存储大量数据,一个表可以有上亿行;面向列存储, 面向列(族)的存储和权限控制,列(族)独立检索;稀疏存储,对于空的列,不占用存储空 间,可以将表设计的非常稀疏。
[0003] 多租户技术主要用于多个租户共享硬件资源,多个租户公用一个应用程序实例。 现有技术中,多租户技术在数据存储方面主要包括如下三种方案:
[0004] 1.每个租户拥有独立数据库
[0005] 为不同租户提供相互独立的数据库,这样数据隔离性最好,而且由于可以为不同 用户单独设计数据库结构,有助于简化数据库结构的设计,出现故障恢复也相对简单。但是 为每个租户都建立独立数据库,不同租户没有真正共享硬件资源,购置成本和维护成本高, 一般运营商无法接受。
[0006] 2.租户共享数据库,但拥有独立库表
[0007] 所有租户共享一个数据库,但是不同租户拥有独立的库表。提供了一定的数据之 间隔离性,但扩展起来相对麻烦,不便于扩展,成本也较高,跨租户数据统计难。
[0008] 3.租户共享数据库,共享数据库表
[0009] 所有租户共享数据库,共享库表,这种方法成本最低,共享度最高,允许支持的租 户也最多,但是由于不同租户之间的业务需求不一,因此针对这种情况需要精心设计数据 库。采用传统关系型数据库时,当租户需要添加自定义字段时,需要在数据库中添加列,对 于某租户而言,其他租户添加的列对该租户为无用列,但还是需要在数据库中存在,但当租 户数量较大时,需要在数据库中增加大量列,这就导致数据库中存在大量的空值,十分浪费 空间。


【发明内容】

[0010] 本发明实施例提供了一种基于键-值数据库的多租户扩展方法,有效降低多租户 数据库的运营成本和维护成本,增加多租户数据库的扩展性,降低租户的定制成本和缩短 定制周期。
[0011] 本发明实施例提供了一种基于键-值数据库的多租户扩展方法,所述方法包括:
[0012] 获取初始业务实体元数据;
[0013] 定制阶段,在所述初始业务实体元数据上扩展业务属性,对所述业务属性定义业 务实体和显示标签,生成满足多租户需求的特定业务实体元数据;
[0014] 生成实例阶段,根据所述特定业务实体元数据,创建键-值Key-Value数据库;
[0015] 实例运行阶段,以租户标识作为RowKey前缀插入到Key-Value数据库的业务实 体数据,通过所述租户标识生成RowKey的查询范围查询业务实体数据,在所述查询范围内 从所述Key-Value数据库中取出业务实体数据,按照所述特定业务实体元数据生成交互界 面,以便将所述业务实体数据展示。
[0016] 优选地,所述初始业务实体元数据和所述特定业务实体元数据均至少包括:业务 实体的表名、业务实体的显示标签、业务实体的属性列名、业务实体的数据类型、业务实体 的索引列标识和业务实体的属性显不标签。
[0017] 优选地,在所述生成实例阶段中,所述方法还包括:
[0018] 所有租户共享一个所述Key-Value数据库,所述初始业务实体元数据对应的列为 所有租户共孚。
[0019] 优选地,在所述生成实例阶段中,所述方法还包括:
[0020] 所述扩展业务属性用于满足所述租户的不同业务需求,并且同时生成与新增的业 务属性对应的扩展列,所述的扩展列仅对所述租户可见。
[0021] 优选地,所述以租户标识作为RowKey前缀插入到Key-Value数据库的业务实体 数据具体还包括:采用所述租户的标识+所述业务实体的表名作为所述业务实体数据的 RowKey 前缀。
[0022] 优选地,所述通过所述租户标识生成RowKey的查询范围查询业务实体数据具体 包括:查询所述Key-Value数据库,根据所述租户的标识和所述业务实体的表名设定查询 范围,在所述设定的查询范围内,根据用户设定的查询条件进行查询获取所述业务实体数 据。
[0023] 优选地,所述按照所述特定业务实体元数据生成交互界面具体包括:
[0024] 根据所述租户的标识获取所述租户的特定业务实体元数据;
[0025] 根据所述租户的特定业务实体元数据的索引列信息和数据类型生成查询项;
[0026] 根据所述租户的特定业务实体元数据中的显示标签和业务实体数据显示查询结 果;
[0027] 根据所述租户的特定业务实体元数据的业务实体的显示标签、业务实体的属性显 示标签和业务实体的数据类型生成新建页面的新建项。
[0028] 本发明提出的基于键-值数据库的多租户扩展方法,能够产生积极的有益效果, 具体如下:支持通过定制生成满足租户个性化需求的应用,对于业务流程相似的业务可 以避免重复开发;采用共享的Key-Value数据库方便实现扩展,降低运营成本,随着新增 租户的增长,随着租户的用户规模的的增长,本发明以租户标识作为所有业务实体数据的 RowKey前缀,方便实现扩展,降低运营成本。

【专利附图】

【附图说明】
[0029] 图1为本发明实施例一提供的基于键-值数据库的多租户扩展方法流程图; [0030] 图2为本发明实施例二提供的基于键-值数据库的多租户扩展方法的原理框图。

【具体实施方式】
[0031] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施 例作进一步的详细描述。
[0032] 实施例一
[0033] 下面以图1为例详细说明本发明实施例一提供的基于键-值数据库的多租户扩展 方法,图1为本发明实施例提供的基于键-值数据库的多租户扩展方法流程图,在本发明实 施例中实施主体可以为运营支撑平台。图2显示了本发明实施例提出的基于键-值数据库 的多租户扩展方法的原理框图。如图2所示,本发明提出的基于键-值数据库的多租户扩 展方法中,采用可扩展可定义的多租户的运营支撑平台,该平台采用分布式Key-Value数 据库存储业务信息。结合图1和图2所示,该方法包括如下步骤:
[0034] 步骤101、获取初始业务实体元数据;
[0035] 初始业务实体元数据至少包括:业务实体的表名、业务实体的显示标签、业务实体 的属性列名、业务实体的数据类型、业务实体的索引列标识和业务实体的属性显示标签。
[0036] 步骤102、定制阶段,在所述初始业务实体元数据上扩展业务属性,对所述业务属 性定义业务实体和显示标签,生成满足多租户需求的特定业务实体元数据。
[0037] 所述初始业务实体元数据和所述特定业务实体元数据均至少包括:业务实体的表 名、业务实体的显示标签、业务实体的属性列名、业务实体的数据类型、业务实体的索引列 标识和业务实体的属性显不标签。
[0038] 具体地,运营支撑平台部署前,根据各模块业务需求制定各模块初始业务实体元 数据,并根据初始业务元数据创建Key-Value数据库库表,例如,其中业务元数据结构主要 如表1所示:
[0039] 表1业务元数据结构表
[0040]

【权利要求】
1. 一种基于键-值数据库的多租户扩展方法,其特征在于,所述方法包括: 获取初始业务实体元数据; 定制阶段,在所述初始业务实体元数据上扩展业务属性,对所述业务属性定义业务实 体和显示标签,生成满足多租户需求的特定业务实体元数据; 生成实例阶段,根据所述特定业务实体元数据,创建键-值Key-Value数据库; 实例运行阶段,W租户标识作为RowKey前缀插入到Key-Value数据库的业务实体数 据,通过所述租户标识生成RowKey的查询范围查询业务实体数据,在所述查询范围内从所 述Key-Value数据库中取出业务实体数据,按照所述特定业务实体元数据生成交互界面, W便将所述业务实体数据展示。
2.根据权利要求1所述的基于键-值数据库的多租户扩展方法,其特征在于,所述初始 业务实体元数据和所述特定业务实体元数据均至少包括:业务实体的表名、业务实体的显 示标签、业务实体的属性列名、业务实体的数据类型、业务实体的索引列标识和业务实体的 属性显不t不签。
3. 根据权利要求1所述的基于键-值数据库的多租户扩展方法,其特征在于,在所述生 成实例阶段中,所述方法还包括: 所有租户共享一个所述Key-Value数据库,所述初始业务实体元数据对应的列为所有 租户共享。
4. 根据权利要求3所述的基于键-值数据库的多租户扩展方法,其特征在于,在所述生 成实例阶段中,所述方法还包括: 所述扩展业务属性用于满足所述租户的不同业务需求,并且同时生成与新增的业务属 性对应的扩展列,所述的扩展列仅对所述租户可见。
5. 根据权利要求1所述的基于键-值数据库的多租户扩展方法,其特征在于,所述W租 户标识作为RowKey前缀插入到Key-Value数据库的业务实体数据具体还包括:采用所述租 户的标识+所述业务实体的表名作为所述业务实体数据的RowKey前缀。
6.根据权利要求1所述的基于键-值数据库的多租户扩展方法,其特征在于,所述通 过所述租户标识生成RowKey的查询范围查询业务实体数据具体包括;查询所述Key-Value 数据库,根据所述租户的标识和所述业务实体的表名设定查询范围,在所述设定的查询范 围内,根据用户设定的查询条件进行查询获取所述业务实体数据。
7. 根据权利要求6所述的基于键-值数据库的多租户扩展方法,其特征在于,所述按照 所述特定业务实体元数据生成交互界面具体包括: 根据所述租户的标识获取所述租户的特定业务实体元数据; 根据所述租户的特定业务实体元数据的索引列信息和数据类型生成查询项; 根据所述租户的特定业务实体元数据中的显示标签和业务实体数据显示查询结果; 根据所述租户的特定业务实体元数据的业务实体的显示标签、业务实体的属性显示标 签和业务实体的数据类型生成新建页面的新建项。
【文档编号】G06F17/30GK104462421SQ201410771826
【公开日】2015年3月25日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】刘磊, 周渊斐, 郑艳伟, 袁鼎 申请人:中国科学院声学研究所, 北京中科智网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1