CN107368505A - 一种数据库实时增量复制软件中利用Apriori算法对并行入库进行智能分组优化的技术 - Google Patents
一种数据库实时增量复制软件中利用Apriori算法对并行入库进行智能分组优化的技术 Download PDFInfo
- Publication number
- CN107368505A CN107368505A CN201610321502.3A CN201610321502A CN107368505A CN 107368505 A CN107368505 A CN 107368505A CN 201610321502 A CN201610321502 A CN 201610321502A CN 107368505 A CN107368505 A CN 107368505A
- Authority
- CN
- China
- Prior art keywords
- affairs
- database
- collection
- apriori algorithm
- software
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种利用Apriori算法对数据库复制环境中的并行入库效率进行优化的技术。通过对数据库复制环境中的事务信息进行Apriori关联分析,找出具有强关联性的表的集和,即表集。按照表集中的表名,把修改属于同一个表集中的表的事务分配给同一个数据库连接执行,属于不同表集的事务被分配到不同的连接执行,从而最大限度减少连接之间的干扰,重复利用多连接并行处理的性能。
Description
技术领域
本发明从属于数据库增量复制技术领域,特别是关系型数据库应用领域。
技术背景
在企业信息应用环境中,经常会出现需要将一个应用环境中的数据移动到另一个应用环境中以供处理或使用的需求。而且在很多场景中,这样的需求还有很高的实时性要求,并且数据量往往还会很大。这一需求催生了一批基于触发器或者基于数据库事务日志获取源数据库变化信息,并把变化拷贝到目标数据库重新执行的软件。我们称之为实时增量数据复制软件,或者实时增量数据同步软件。其采取的技术相应的被称之为实时增量数据复制技术或者实时增量数据同步技术。
为了保证数据业务逻辑的完整性一致性,所有的数据库都会使用事务来控制数据的修改。一个事务可以包含一个或多个修改,包含在同一个事务中的所有修改命令必须同时执行成功提交,如果有一条命令执行失败,这个事务中包含的修改命令都必须回退到事务开始前状态。复制软件为了保证复制到目标数据库的变化和源数据库完全相同,修改命令在目标数据库重做的顺序必须和在源数据库执行的顺序必须保持完全一致。在数据量很大并且数据变化频繁的环境中,这就带来了性能问题。因为源数据库往往是一个存在大量并发的并行系统,有大量的用户连接在数据库上同时执行各种修改事务。而在目标数据库上,数据复制软件为了数据和源数据库完全一致,必须保留原事务的信息并保持变化事务重新执行的顺序,故复制软件通常只建立一个到目标数据库的连接串行执行,性能极差。为了解决这个问题,部分数据复制软件提供了多连接并行执行的功能,通过建立多个到目标数据库的连接来并行执行修改命令。但是由于不同的事务之间可能修改相同的表,即使是在不同的数据库连接上执行的命令,为了保持执行的顺序,经常也需要进行等待,这样即使建立了多个数据库连接,最后变化命令在目标数据库仍然是串行执行的。虽然有些复制软件进一步提供了事务分组功能,可以用户对事务按照一些参数,比如说在源数据库执行的用户名等,进行分组,让不同组的变化事务在不同的数据库连接上执行,这样可以尽量减少事务执行间的等待。但是确定如何分组是一件很困难的工作,用户往往也并不知道该如何进行分组,故实际使用的效果仍然很差。
本发明正是针对上述问题,采用Apriori算法对事务中的表进行关联分析,达到复制修改命令在目标数据库并行执行的性能最优化。
目前相关领域尚未检索到与本发明相同的解决方案及系统实现。
发明内容
复制软件在平时运行过程中,采集相应的性能统计信息,如事务编号及每个事务包含的表名并保存。
运用Apriori算法对保存的事务信息进行分析,计算各个数据库表在同一个事务中出现的概率,从而找出表与表之间的关联关系。通过表之间的关联关系,将关联支持度大于预先设置的最小支持度的表集集合做为事务分组的基本依据,再结合表集出现的频率,把包含不同表集的事务智能分配到不同的数据库连接上,从而不同连接上执行的命令之间的干扰减到最小,从而充分利用多数据库连接并行执行来提高数据复制的性能。
附图说明
图1为并行数据库连接下事务等待示意图,演示了复制软件即使建立了多个目标数据库连接但是仍然只能串行执行命令的一种情况。图中复制软件建立了两个到目标数据库的连接。在源数据库中,依次执行了Tran1、Tran2、Tran3、Tran4四个事务,其中Tran2、Tran3、Tran4都修改了T2这张表。当复制软件在目标数据库执行命令的时候,把Tran1、Tran2分配给第一个连接执行,把Tran3、Tran4分配给第二个连接执行。因为Tran2和Tran3修改了同一张表,如果Tran1执行速度很慢,为了保持事务提交的顺序和 源数据库完全一致,第二个连接即使空闲,也不能执行Tran3,而是必须等待Tran2执行完成之后才能执行。此时虽然有多个数据库连接,但事务的执行还是串行的。
图2为使用Apriori关联分析优化数据库事务在并行数据库连接上的分配示意图。复制软件从源数据库读取事务信息,将事务信息保存到事务记录表中。在积累了一定量的数据之后,启动分析引擎分析事务记录,获得最终频繁表集的集合,每个表集包含若干个有强关联性的表。将这些信息存储到连接配置表中。复制软件向目标数据库复制数据时,将事务中的表名去匹配连接配置表中的表名,从而决定将该事务分配到哪个连接上去执行。
具体实施方式
复制软件在平时运行过程中,采集相应的性能统计信息,如事务编号及每个事务包含的表名,保存到事务记录表中。
事务记录表基本内容如下表所示:
在积累了足够多的性能统计数据后,采用Apriori算法计算出不同表同时出现在同一个事务中的概率。根据预先设定的最小支持度MinSup,筛选出同时在一个事务中出现的概率大于最小支持度的表集。如分析结果不理想,可调整最小支持度重新计算。
Apriori算法缺省会从整个数据集的大小,在本专利申请中即为所有参与复制的数据表的数目,开始计算,并逐级减小数据集的大小直至空集。但在绝大多数情况下,参与复制的表的数目会很多,而每个事务当中包含的表数目确非常有限,这样分析的效率非常低。为了提高分析效率简化算法,我们队Apriori算法进行部分优化。让复制软件记录过去在复制数据库执行的事务当中,最多包含多少张数据表,记为MaxTabNum。当对事务记录表进行分析时,不仅仅把分析结果为空集做为分析的终止点,而是会先判断表集的大小k有没有超过MaxTabNum,如果超过则直接终止分析。这样可以减少很多不必要的运算量,提高了效率,节省了分析时间。
算法伪码如下:
(1)L1=find_frequent_1-tablesets(T);
(2)for(k=2;Lk-1≠φ|k<=MaxTabNum;k++){
(3)Ck=apriori_gen(Lk-1,MinSup);
(4)for each transaction t∈T{//scan T for counts
(5)Ct=subset(Ck,t);//get the subsets of t that are candidates
(6)for each candidate c∈Ct
(7)c.count++;
(8)}
(9)Lk={c∈Ck|c.count≥MinSup}
(10)}
(11)return L=∪k Lk;
其中,T为事务记录表中所有记录,MinSup为用户事先定义的最小支持度,MaxTabNum为一个事务中最多包含的表的个数。Lk为频繁表集,L为频繁表集的集合。
对计算获得的结果集L进行优化,消除合并包含相同表项的表集,获得最终的表集集合S。
根据集合中表集的个数计算出并发数据库连接个数,缺省推荐取值为ceil(表集数/2),用户可定制修改。
对最终集合L中的表集的支持度进行排序,依次将各个表集分配到每个数据库连接。并将表名和连接的对应信息记录在连接配置表中。
连接配置表的内容如下所示:
其中优先级与表集支持度对应,支持度越高的表集,对应的优先级也越高,依次类推。
当有事务需要在目标数据库中执行时,复制软件会扫描连接配置表。如果事务中包含了解了配置表中列出的表,则该事务会被分配到相应的数据库连接执行。如果事务中有不止一个表出现在连接配置表中,则选择在优先级更高的连接执行。如果事务中所有的表都不在连接配置表中,则该事务会被随机分配到一个数据库连接上执行。
通过合理地选择最小支持度,可以获得一个优化的数据表与数据库连接的对应关系,使得在不同连接上执行的事务之间的干扰是最小的,从而最大限度地获得并行处理的性能。
Claims (5)
1.在数据库增量复制系统中,使用Apriori算法对复制的事务信息进行关联分析,并将分析结果用于在目标数据库多连接并行执行的事务分配优化。
2.对Apriori算法进行改造,使用MaxTabNum,即单个事务中包含最多的表的数目,做为终止分析的附加条件。
3.对Apriori算法产生的结果频繁表集集合进行优化,确保不同的表集不包含相同的表。
4.根据运算结果自动提供目标数据库连接数推荐值。
5.按照分析运算得出的频繁表集的支持度对表集排序,并将表集内的表名做为配置参数逐个分配给每个数据库连接。在数据复制中,根据事务中包含的表决定将该事务分配给哪个数据库连接执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610321502.3A CN107368505A (zh) | 2016-05-11 | 2016-05-11 | 一种数据库实时增量复制软件中利用Apriori算法对并行入库进行智能分组优化的技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610321502.3A CN107368505A (zh) | 2016-05-11 | 2016-05-11 | 一种数据库实时增量复制软件中利用Apriori算法对并行入库进行智能分组优化的技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368505A true CN107368505A (zh) | 2017-11-21 |
Family
ID=60304222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610321502.3A Pending CN107368505A (zh) | 2016-05-11 | 2016-05-11 | 一种数据库实时增量复制软件中利用Apriori算法对并行入库进行智能分组优化的技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368505A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209785A (zh) * | 2015-02-11 | 2017-09-26 | 胡露有限责任公司 | 数据库系统中的相关性表聚合 |
CN111198872A (zh) * | 2020-01-06 | 2020-05-26 | 中科驭数(北京)科技有限公司 | 数据库处理事务的方法及装置 |
WO2021184679A1 (zh) * | 2020-03-16 | 2021-09-23 | 上海爱数信息技术股份有限公司 | 持续数据保护系统及方法 |
-
2016
- 2016-05-11 CN CN201610321502.3A patent/CN107368505A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107209785A (zh) * | 2015-02-11 | 2017-09-26 | 胡露有限责任公司 | 数据库系统中的相关性表聚合 |
CN107209785B (zh) * | 2015-02-11 | 2021-02-09 | 胡露有限责任公司 | 数据库系统中的相关性表聚合 |
CN111198872A (zh) * | 2020-01-06 | 2020-05-26 | 中科驭数(北京)科技有限公司 | 数据库处理事务的方法及装置 |
WO2021184679A1 (zh) * | 2020-03-16 | 2021-09-23 | 上海爱数信息技术股份有限公司 | 持续数据保护系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182404B2 (en) | Data replication technique in database management system | |
US20220405284A1 (en) | Geo-scale analytics with bandwidth and regulatory constraints | |
US10509785B2 (en) | Policy-driven data manipulation in time-series database systems | |
CN103748579B (zh) | 在映射化简框架中处理数据 | |
US9917913B2 (en) | Large message support for a publish-subscribe messaging system | |
CN102460398B (zh) | 用于在备份操作中执行去重复的源分类 | |
US10866970B1 (en) | Range query capacity allocation | |
US8078628B2 (en) | Streaming faceted search | |
EP3432157B1 (en) | Data table joining mode processing method and apparatus | |
CN104182898A (zh) | 银行系统对夜模式期间发生的联机交易进行补录的方法 | |
US9760604B2 (en) | System and method for adaptive filtering of data requests | |
CN102214205A (zh) | 带有自适应克隆的经聚类的数据库系统中的逻辑复制 | |
CN107368505A (zh) | 一种数据库实时增量复制软件中利用Apriori算法对并行入库进行智能分组优化的技术 | |
CN114925073B (zh) | 支持灵活动态分片的分布式数据库系统及其实现方法 | |
CN114003657A (zh) | 分布式数据库的数据处理方法、系统、设备和存储介质 | |
US20180365292A1 (en) | Efficient multi-dimensional partitioning and sorting in large-scale distributed data processing systems | |
CN112800091B (zh) | 一种流批一体式计算控制系统及方法 | |
EP3076308B1 (en) | Telecommunication method for handling a database query in a telecommunication system | |
US8769236B2 (en) | Remote differential compression applied to storage | |
CN113760902A (zh) | 数据拆分方法、装置、设备、介质及程序产品 | |
WO2021147197A1 (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN110765237A (zh) | 文档处理方法、装置、存储介质及电子设备 | |
CN116974996A (zh) | 文件处理方法、装置、电子设备及存储介质 | |
US20190370259A1 (en) | Devices and methods for implementing dynamic collaborative workflow systems | |
US11880385B1 (en) | Ordering updates to secondary indexes using conditional operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171121 |
|
WD01 | Invention patent application deemed withdrawn after publication |