CN108228848A - 一种可扩展的业务数据分库实现方法 - Google Patents

一种可扩展的业务数据分库实现方法 Download PDF

Info

Publication number
CN108228848A
CN108228848A CN201810022143.0A CN201810022143A CN108228848A CN 108228848 A CN108228848 A CN 108228848A CN 201810022143 A CN201810022143 A CN 201810022143A CN 108228848 A CN108228848 A CN 108228848A
Authority
CN
China
Prior art keywords
library
database
point
divides
parameter
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
Application number
CN201810022143.0A
Other languages
English (en)
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.)
Shandong Inspur Genersoft Information Technology Co Ltd
Original Assignee
Shandong Inspur Genersoft Information Technology Co Ltd
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 Shandong Inspur Genersoft Information Technology Co Ltd filed Critical Shandong Inspur Genersoft Information Technology Co Ltd
Priority to CN201810022143.0A priority Critical patent/CN108228848A/zh
Publication of CN108228848A publication Critical patent/CN108228848A/zh
Pending legal-status Critical Current

Links

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
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/21Design, administration or maintenance of databases

Abstract

本发明提供了一种可扩展的业务数据分库实现方法,所述方法通过配置分库策略,通过业务表实现跟分库的关联,针对需要分库的业务表选择对应的分库策略,选择完分库策略后,对选择的分库策略设置参数,供业务功能开发选择。本发明以满足系统数据库的横向扩展为出发点,提供了一种方便的、基于配置的、可扩展的业务数据分库实现方式,内置了通用的分库实现方案,并且支持不同的业务功能,根据实际场景扩展分库方案,适用于大型分布式系统,尤其是对系统性能、稳定性以及可扩展性要求高的系统。

Description

一种可扩展的业务数据分库实现方法
技术领域
本发明涉及业务系统的数据分库存储技术领域,具体涉及一种可扩展的业务数据分库实现方法,特别是数据量、数据访问频率大的企业级业务系统。
背景技术
ERP系统是企业资源计划(Enterprise Resource Planning )的简称,是指建立在信息技术基础上,集信息技术与先进管理思想于一身,以系统化的管理思想,为企业员工及决策层提供决策手段的管理平台。它是从MRP(物料需求计划)发展而来的新一代集成化管理信息系统,它扩展了MRP的功能,其核心思想是供应链管理。它跳出了传统企业边界,从供应链范围去优化企业的资源,优化了现代企业的运行模式,反映了市场对企业合理调配资源的要求。它对于改善企业业务流程、提高企业核心竞争力具有显著作用。
随着ERP系统的客户规模壮大,海量数据的存储和访问成了系统设计的瓶颈。对于一个大型的系统,高频率的数据库访问对数据库造成了相当高的负载,对系统的稳定性和扩展性造成了极大的问题。
要解决此问题,一般通过提升数据库服务器性能,这种方法能解决部分问题,但是总是会有上限,并且性能高的服务器价格也很高,成本很大。
第二种方法,将对系统对一个数据库的压力转移到多个数据库中,根据不同的业务规则,将业务数据存储到不同的库中,在数据库出现瓶颈时,通过增加数据库来达到提升系统性能的目的。
发明内容
为了解决以上技术问题,本发明提出了一种可扩展的业务数据分库实现方法,可以提供多种不同的分库实现,不同的业务功能可以选择不同的分库配置实现分库。在内置的分库实现不能满足业务需求的情况下,可以自定义分库实现注册到ERP系统中。
本发明的技术方案是:
一种可扩展的业务数据分库实现方法,所述方法通过配置分库策略,通过业务表实现跟分库的关联,针对需要分库的业务表选择对应的分库策略,选择完分库策略后,对选择的分库策略设置参数,供业务功能开发选择。
所述业务表的内容包括字段名称、字段类型和含义,其中字段名称包括:
编号,字段类型为可变长字符型,含义为分库配置的编号;
描述,字段类型为可变长字符型,含义为分库配置的描述信息;
分库参数定义,字段类型为长文本,含义为分库配置的参数,在选择分库配置时,需要选择分库所需参数信息;
分库扩展实现,字段类型为长文本,含义为用来配置分库扩展实现逻辑对应的类信息。
所述分库参数定义,负责为分库配置提供所需要的参数,包括字段名称、字段类型和含义,其中字段名称包括:
编号,字段类型为可变长字符型,含义为参数的编号;
描述,字段类型为可变长字符型,含义为参数的描述信息;
参数输入方式,字段类型为长文本,含义为参数的输入方式,提供不同的界面参数输入,用来方便使用者选择参数值,支持上下文变量、业务表字段选择。
所述分库扩展实现,负责配置分库数据库查找逻辑实现类需要实现的统一的接口,包含实现类所在程序集、实现类命名空间以及实现类类名。
所述方法提供数据库注册功能,为每一个数据库分库分配一个顺序号和主键。
所述方法提供数据库路由功能,在数据增删改查过程中,根据分库配置进行数据库查找,在进行数据库路由时,根据业务表所选择的分库配置,构造分库配置所需的参数,然后调用对应的分页扩展实现中的数据库路由查找方法查找对应的数据库主键,并根据数据库主键创建对应数据库连接执行数据增删改查操作。
所述方法提供数据库扩容功能,在增加数据库时,根据数据库分库配置进行数据重新分库,将已有数据根据新的数据库分布进行数据转移,执行对应的分库配置中的分库扩展实现逻辑,进行数据的重新分配。
所述方法提供基于主键的数据库查找逻辑:根据主键的值,获取其对应的哈希;如果当前主键值是整数类型,则不用取哈希,直接使用;除以当前系统中数据库的数目,然后取模,根据得到的结果确定对应的数据库。
所述方法内容还包括:在增加新数据库时,其数据重新分配逻辑如下:遍历现有的每一个库,获取出所有的主键值,根据主键值的哈希,除以新的数据库数量取模,得到的值为这条数据新的数据库编号,找到对应的数据库,将当前的数据从当前库导入到新库,然后删除当前库数据。
所述方法通过在主键分库配置中增加参数:主键列,在数据库路由组件进行数据库查找时,解析出主键列的值传递给数据库查找模块;在进行数据重新分配时,将主键列的列名传递给数据重新分配模块。
本发明的有益效果为:
本发明以满足系统数据库的横向扩展为出发点,提供了一种方便的、基于配置的、可扩展的业务数据分库实现方式,内置了通用的分库实现方案,并且支持不同的业务功能,根据实际场景扩展分库方案,适用于大型分布式系统,尤其是对系统性能、稳定性以及可扩展性要求高的系统。
具体实施方式
下面结合具体实施例,对本发明的内容进行更加详细的阐述:
开发人员自定义扩展策略:
新建代码文件,添加类,实现分库扩展策略接口,实现分库逻辑:数据库获取和重新分配数据;
添加自定义的分库策略配置,完善参数、扩展类信息等。
开发人员使用扩展策略:
通过业务表的设置功能,选择配置好的分库策略。
业务用户的使用过程:
业务用户在进行数据查询或者保存时,系统根据当前的分库策略和设置好的策略参数,进行数据库查找,找到对应数据库之后,使用该数据库进行数据的增删改查。
项目运维人员添加新的数据库扩展:
某项目上由于当前数据库压力大,需要增加一部分数据库,打开数据库配置,点击添加数据库,然后点击重新分配业务数据按钮,系统根据各个业务表的分库策略自动将业务数据重新导到不同的数据库中。
以上所述仅为本发明的优选实现方法,但并不限于此,对本领域技术人员来说,本发明实现方法可以有各种变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种可扩展的业务数据分库实现方法,其特征在于,所述方法通过配置分库策略,通过业务表实现跟分库的关联,针对需要分库的业务表选择对应的分库策略,选择完分库策略后,对选择的分库策略设置参数,供业务功能开发选择。
2.根据权利要求1所述的一种可扩展的业务数据分库实现方法,其特征在于,所述业务表的内容包括字段名称、字段类型和含义,其中字段名称包括:
编号,字段类型为可变长字符型,含义为分库配置的编号;
描述,字段类型为可变长字符型,含义为分库配置的描述信息;
分库参数定义,字段类型为长文本,含义为分库配置的参数,在选择分库配置时,需要选择分库所需参数信息;
分库扩展实现,字段类型为长文本,含义为用来配置分库扩展实现逻辑对应的类信息。
3.根据权利要求2所述的一种可扩展的业务数据分库实现方法,其特征在于,所述分库参数定义,负责为分库配置提供所需要的参数,包括字段名称、字段类型和含义,其中字段名称包括:
编号,字段类型为可变长字符型,含义为参数的编号;
描述,字段类型为可变长字符型,含义为参数的描述信息;
参数输入方式,字段类型为长文本,含义为参数的输入方式,提供不同的界面参数输入,支持上下文变量、业务表字段选择。
4.根据权利要求2所述的一种可扩展的业务数据分库实现方法,其特征在于,所述分库扩展实现,负责配置分库数据库查找逻辑实现类需要实现的统一的接口,包含实现类所在程序集、实现类命名空间以及实现类类名。
5.根据权利要求1所述的一种可扩展的业务数据分库实现方法,其特征在于,所述方法提供数据库注册功能,为每一个数据库分库分配一个顺序号和主键。
6.根据权利要求5所述的一种可扩展的业务数据分库实现方法,其特征在于,所述方法提供数据库路由功能,在数据增删改查过程中,根据分库配置进行数据库查找,在进行数据库路由时,根据业务表所选择的分库配置,构造分库配置所需的参数,然后调用对应的分页扩展实现中的数据库路由查找方法查找对应的数据库主键,并根据数据库主键创建对应数据库连接执行数据增删改查操作。
7.根据权利要求1所述的一种可扩展的业务数据分库实现方法,其特征在于,所述方法提供数据库扩容功能,在增加数据库时,根据数据库分库配置进行数据重新分库,将已有数据根据新的数据库分布进行数据转移,执行对应的分库配置中的分库扩展实现逻辑,进行数据的重新分配。
8.根据权利要求5所述的一种可扩展的业务数据分库实现方法,其特征在于,所述方法提供基于主键的数据库查找逻辑:根据主键的值,获取其对应的哈希;如果当前主键值是整数类型,则不用取哈希,直接使用;除以当前系统中数据库的数目,然后取模,根据得到的结果确定对应的数据库。
9.根据权利要求5所述的一种可扩展的业务数据分库实现方法,其特征在于,所述方法内容还包括:在增加新数据库时,其数据重新分配逻辑如下:遍历现有的每一个库,获取出所有的主键值,根据主键值的哈希,除以新的数据库数量取模,得到的值为这条数据新的数据库编号,找到对应的数据库,将当前的数据从当前库导入到新库,然后删除当前库数据。
10.根据权利要求6所述的一种可扩展的业务数据分库实现方法,其特征在于,所述方法通过在主键分库配置中增加参数:主键列,在数据库路由组件进行数据库查找时,解析出主键列的值传递给数据库查找模块;在进行数据重新分配时,将主键列的列名传递给数据重新分配模块。
CN201810022143.0A 2018-01-10 2018-01-10 一种可扩展的业务数据分库实现方法 Pending CN108228848A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810022143.0A CN108228848A (zh) 2018-01-10 2018-01-10 一种可扩展的业务数据分库实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810022143.0A CN108228848A (zh) 2018-01-10 2018-01-10 一种可扩展的业务数据分库实现方法

Publications (1)

Publication Number Publication Date
CN108228848A true CN108228848A (zh) 2018-06-29

Family

ID=62640756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810022143.0A Pending CN108228848A (zh) 2018-01-10 2018-01-10 一种可扩展的业务数据分库实现方法

Country Status (1)

Country Link
CN (1) CN108228848A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271376A (zh) * 2018-11-30 2019-01-25 北京锐安科技有限公司 数据库升级方法、装置、设备及存储介质
CN110795419A (zh) * 2019-10-08 2020-02-14 中国建设银行股份有限公司 动态分库路由的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045816A (zh) * 2015-06-26 2015-11-11 上海斐讯数据通信技术有限公司 一种大量数据的存取方法及系统
US20170083566A1 (en) * 2015-09-17 2017-03-23 Microsoft Technology Licensing, Llc Partitioning advisor for online transaction processing workloads
CN106874424A (zh) * 2017-01-25 2017-06-20 杭州淘淘搜科技有限公司 一种基于MongoDB和Redis的网页数据采集处理方法及系统
CN107423387A (zh) * 2017-07-19 2017-12-01 北京北信源软件股份有限公司 一种基于中间件的分库分表的方法与装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045816A (zh) * 2015-06-26 2015-11-11 上海斐讯数据通信技术有限公司 一种大量数据的存取方法及系统
US20170083566A1 (en) * 2015-09-17 2017-03-23 Microsoft Technology Licensing, Llc Partitioning advisor for online transaction processing workloads
CN106874424A (zh) * 2017-01-25 2017-06-20 杭州淘淘搜科技有限公司 一种基于MongoDB和Redis的网页数据采集处理方法及系统
CN107423387A (zh) * 2017-07-19 2017-12-01 北京北信源软件股份有限公司 一种基于中间件的分库分表的方法与装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271376A (zh) * 2018-11-30 2019-01-25 北京锐安科技有限公司 数据库升级方法、装置、设备及存储介质
CN110795419A (zh) * 2019-10-08 2020-02-14 中国建设银行股份有限公司 动态分库路由的方法和装置

Similar Documents

Publication Publication Date Title
CN1318956C (zh) 软件构件插件程序结构的系统和方法
US11341139B2 (en) Incremental and collocated redistribution for expansion of online shared nothing database
CN100541493C (zh) 用于结构化文档管理的装置和方法
US7886028B2 (en) Method and system for system migration
CN109325078A (zh) 基于结构数据的数据血缘确定方法及装置
US20070276861A1 (en) Table Substitution
US20020095408A1 (en) Method and apparatus for deleting data in a database
US7974981B2 (en) Multi-value property storage and query support
JP2003500741A (ja) 単一の集計プロセスで複数のデータマートを実装するための方法および装置
CN109840256A (zh) 一种基于业务实体的查询实现方法
KR20150106365A (ko) 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법
US11036709B2 (en) Single-level, multi-dimension, hash-based table partitioning
CN105808753A (zh) 一种区域性数字资源系统
US20080294673A1 (en) Data transfer and storage based on meta-data
CN105677751A (zh) 关系型数据库的调度方法及系统
CN105373376A (zh) 用于配置软件应用的方法和装置
CN108228848A (zh) 一种可扩展的业务数据分库实现方法
CN102253967B (zh) 数据查找系统和数据查找方法
CN108197187A (zh) 查询语句的优化方法、装置、存储介质和计算机设备
US7689631B2 (en) Method for utilizing audience-specific metadata
US7653731B2 (en) Management of connections to external data
US7912861B2 (en) Method for testing layered data for the existence of at least one value
KR20180077830A (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
Maran et al. Alternative approaches to data storing and processing
CN108399188A (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: 20180629

RJ01 Rejection of invention patent application after publication