CN113590613A - 数据表分区方法、装置、计算机设备和存储介质 - Google Patents
数据表分区方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113590613A CN113590613A CN202110791910.6A CN202110791910A CN113590613A CN 113590613 A CN113590613 A CN 113590613A CN 202110791910 A CN202110791910 A CN 202110791910A CN 113590613 A CN113590613 A CN 113590613A
- Authority
- CN
- China
- Prior art keywords
- data
- partitioned
- partition
- data table
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 47
- 238000005192 partition Methods 0.000 claims abstract description 170
- 238000004590 computer program Methods 0.000 claims description 27
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 238000012805 post-processing Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000001670 anatto Substances 0.000 description 1
- RAFGELQLHMBRHD-SLEZCNMESA-N bixin Chemical compound COC(=O)\C=C\C(\C)=C/C=C/C(/C)=C/C=C/C=C(\C)/C=C/C=C(\C)/C=C/C(O)=O RAFGELQLHMBRHD-SLEZCNMESA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据表分区方法、装置、计算机设备和存储介质。所述方法包括:获取待分区数据表的第一主键和分区键;根据所述第一主键和分区键生成第二主键,并根据所述第二主键创建分区表;将所述待分区数据表中的数据同步至分区表中;在同步完成后,锁定所述待分区数据表的第一主键,并通过所述第一主键替换所述第二主键后,删除所述待分区数据表。采用本方法整个过程中数据仅需要复制一次,提高了同步效率。
Description
技术领域
本申请涉及数据技术领域,特别是涉及一种数据表分区方法、装置、计算机设备和存储介质。
背景技术
MSSQLSERVER是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。而在MSSQLSERVER中,表分区(PARTITION)是MSSQLserver数据库的一个组件,分区的过程是把数据按某种标准划分成区域存储在不同的文件组中,使用分区可以快速而有效地管理和访问数据子集,从而使大型表或索引更易于管理。
传统技术中,在MSSQL中将单标进行分区可以是先更换主键,例如可以通过onlineddl/开源gh-ost工具执行,添加唯一键因为原表和临时表需要有相同唯一键。然后删除唯一键,online执行,最后转为分区表,通过开源工具避免读写锁定。
然而,上述方法中需要进行多次复制操作,效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种仅需要复制一次,提高了同步效率的数据表分区方法、装置、计算机设备和存储介质。
一种数据表分区方法,所述方法包括:
获取待分区数据表的第一主键和分区键;
根据所述第一主键和分区键生成第二主键,并根据所述第二主键创建分区表;
将所述待分区数据表中的数据同步至分区表中;
在同步完成后,锁定所述待分区数据表的第一主键,并通过所述第一主键替换所述第二主键后,删除所述待分区数据表。
在其中一个实施例中,所述将所述待分区数据表中的数据同步至分区表中之后,还包括:
获取当前系统资源消耗情况;
根据所述当前系统资源消耗情况调整将所述待分区数据表中的数据同步至分区表的同步速率;或根据所述当前系统资源消耗情况暂停将所述待分区数据表中的数据同步至分区表中。
在其中一个实施例中,所述将所述待分区数据表中的数据同步至分区表中,还包括:
接收针对将所述待分区数据表中的数据同步至分区表的同步速率的第一调整指令,并根据所述第一调整指令调整将所述待分区数据表中的数据同步至分区表的同步速率;或
接收针对将所述待分区数据表中的数据同步至分区表的第二调整指令,并根据所述第二调整指令暂停将所述待分区数据表中的数据同步至分区表中。
在其中一个实施例中,所述将所述待分区数据表中的数据同步至分区表中之后,还包括:
记录将所述待分区数据表中的数据同步至分区表中当前同步位置。
在其中一个实施例中,所述在同步完成后,锁定所述待分区数据表的第一主键之前,还包括:
检验所述待分区数据表中的数据与所述分区表中的数据是否相同;
若所述待分区数据表中的数据与所述分区表中的数据相同,则继续在同步完成后,锁定所述待分区数据表的第一主键。
在其中一个实施例中,所述在同步完成后,锁定所述待分区数据表的第一主键之前,还包括:
接收业务数据,并将所述业务数据存储至所述待分区数据表中。
在其中一个实施例中,所述获取待分区数据表的第一主键和分区键之前,还包括:
接收输入的变更语句,并判断所述变更语句是否存在预设标识;
当所述变更语句存在预设标识时,则程序获取待分区数据表的第一主键和分区键。
一种数据表分区装置,所述装置包括:
键获取模块,用于获取待分区数据表的第一主键和分区键;
分区表创建模块,用于根据所述第一主键和分区键生成第二主键,并根据所述第二主键创建分区表;
同步模块,用于将所述待分区数据表中的数据同步至分区表中;
后处理模块,用于在同步完成后,锁定所述待分区数据表的第一主键,并通过所述第一主键替换所述第二主键后,删除所述待分区数据表。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的任意一个实施例中的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的任意一个实施例中的方法的步骤。
上述数据表分区方法、装置、计算机设备和存储介质,在进行数据表分区时根据数据表的第一主键和分区键生成第二主键,这样根据第二主键创建分区表,同时将数据同步至分区表中,且在同步完成后,锁定第一主键,并通过第一主键替换第二主键,整个过程中数据仅需要复制一次,提高了同步效率。
附图说明
图1为一个实施例中数据表分区方法的应用环境图;
图2为一个实施例中数据表分区方法的流程示意图;
图3为另一个实施例中数据表分区方法的流程示意图;
图4为一个实施例中数据表分区装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据表分区方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与数据库104进行通信。其中终端102可以接收用户输入的变更语句,并将变更语句发送至数据库104,从而数据库104根据该变更语句获取待分区数据表的第一主键和分区键;根据第一主键和分区键生成第二主键,并根据第二主键创建分区表;将待分区数据表中的数据同步至分区表中;在同步完成后,锁定待分区数据表的第一主键,并通过第一主键替换第二主键后,删除待分区数据表。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。数据库104可以为关系型数据库,例如MySQL等。
在一个实施例中,如图2所示,提供了一种数据表分区方法,以该方法应用于图1中的数据库为例进行说明,包括以下步骤:
S202:获取待分区数据表的第一主键和分区键。
具体地,待分区数据表是指数据库中存储的原表,该原表包括多个字段,其中可以将其中一个字段设置为第一主键。第一主键是被挑选出来的,作为带分区数据表的行的唯一标识的候选字段。
分区键是用户输入的,其是从待分区数据表中选取的其中一个字段,根据该字段将待分区数据表划分为多个分区表,例如以创建时间字段为分区键,可以将待分区数据表划分为多个创建时间不同的分区表。
S204:根据第一主键和分区键生成第二主键,并根据第二主键创建分区表。
具体地,第二主键是根据第一主键和分区键生成,例如将第一主键和第二主键进行拼接得到第二主键,并将第二主键作为分区表的主键,其分区表中用于表征行的唯一标识的字段,这样根据第二主键创建分区表。
S206:将待分区数据表中的数据同步至分区表中。
具体地,同步是指将待分区表中的数据根据第二主键复制到对应的分区表中,在其中一个实施例中,数据库可以通过binlog同步待分区数据表与分区表数据。
在其中一个实施例中,在同步完成后,锁定待分区数据表的第一主键之前,还包括:接收业务数据,并将业务数据存储至待分区数据表中。也就是说,在同步的过程中,业务新数据会继续写入待分区数据表,通过binlog持续同步至分区表。
S208:在同步完成后,锁定待分区数据表的第一主键,并通过第一主键替换第二主键后,删除待分区数据表。
具体地,此步骤是进行切表操作,即保证对外主键的唯一性,也即仍需要以第一主键作为对外主键,因此数据库在将数据同步完成后,锁定待分区数据表的第一主键,并通过第一主键替换第二主键,以完成主键的替换,在替换完成后,删除待分区数据表即可。
上述数据表分区方法,在进行数据表分区时根据数据表的第一主键和分区键生成第二主键,这样根据第二主键创建分区表,同时将数据同步至分区表中,且在同步完成后,锁定第一主键,并通过第一主键替换第二主键,整个过程中数据仅需要复制一次,提高了同步效率。
在其中一个实施例中,将待分区数据表中的数据同步至分区表中之后,还包括:获取当前系统资源消耗情况;根据当前系统资源消耗情况调整将待分区数据表中的数据同步至分区表的同步速率;或根据当前系统资源消耗情况暂停将待分区数据表中的数据同步至分区表中。
具体地,系统资源消耗情况可以是指系统IO的利用率,由于数据库的数据读取和数据表分区均需要消耗系统IO,为了保证数据库的数据读取的正常,数据表分区不能占用太大的系统资源,因此若是此时当前系统资源消耗过大,则需要暂停将待分区数据表中的数据同步至分区表或调整将待分区数据表中的数据同步至分区表的同步速率。
其中,可选地,数据库可以判断系统IO的利用率是否超过30%,若是则直接暂停将待分区数据表中的数据同步至分区表,其中在其他的实施例中30%可以选择其他的值,在此不再赘述。
可选地,数据库还可以设计分级调整方法,即根据系统IO的利用率进行分级以确定将待分区数据表中的数据同步至分区表的同步速率,例如当系统IO的利用率为a1时,则同步速率为v1,当系统IO的利用率为a2时,则同步速率为v2,以此类推,这样数据库可以根据当前系统IO的利用率来调整将待分区数据表中的数据同步至分区表的同步速率,以实现智能调整。
上述实施例中,通过数据库自身来智能调整将待分区数据表中的数据同步至分区表的同步速率或暂停将待分区数据表中的数据同步至分区表中,保证了资源的利用合理性,且保证了数据库的正常运行。
在其中一个实施例中,将待分区数据表中的数据同步至分区表中,还包括:接收针对将待分区数据表中的数据同步至分区表的同步速率的第一调整指令,并根据第一调整指令调整将待分区数据表中的数据同步至分区表的同步速率;或接收针对将待分区数据表中的数据同步至分区表的第二调整指令,并根据第二调整指令暂停将待分区数据表中的数据同步至分区表中。
具体地,本实施例中是人工来干预将待分区数据表中的数据同步至分区表的同步过程,例如当用户预测到未来一段时间内数据库的读取量较大,为了保证数据库的正常读取,用户可以设置未来该段时间的将待分区数据表中的数据同步至分区表的同步速率,或者是暂停在未来该段时间将待分区数据表中的数据同步至分区表中。其中同步速率的调整可以根据用户需要进行设置,在此不再赘述。
上述实施例中,引入了人工干预,保证了将待分区数据表中的数据同步至分区表时数据库资源的合理利用。
在其中一个实施例中,将待分区数据表中的数据同步至分区表中之后,还包括:记录将待分区数据表中的数据同步至分区表中当前同步位置。
具体地,数据库通过记录同步过程中的LSN来记录同步位置,这样根据该同步位置可以提供外部操作的接口,用于暂停或者速率调整后根据该同步位置继续进行后续的同步,其中,此处的LSN是指log sequence number,用于记录日志序号,它是一个不断递增的unsigned long long类型整数。在InnoDB的日志系统中,LSN无处不在,它既用于表示修改脏页时的日志序号,也用于记录checkpoint,通过LSN,可以具体的定位到其在redo log文件中的位置。
在其中一个实施例中,在同步完成后,锁定待分区数据表的第一主键之前,还包括:检验待分区数据表中的数据与分区表中的数据是否相同;若待分区数据表中的数据与分区表中的数据相同,则继续在同步完成后,锁定待分区数据表的第一主键。
具体地,同步完成的确认是指待分区表中的数据与分区表中的数据相同,也即完全同步结束,因此数据库在同步完成,还需要检验待分区数据表中的数据与分区表中的数据是否相同,若相同,同步才真的完成,其中校验的方式可以是任意一种校验方式,在此不在赘述。
在其中一个实施例中,获取待分区数据表的第一主键和分区键之前,还包括:接收输入的变更语句,并判断变更语句是否存在预设标识;当变更语句存在预设标识时,则继续获取待分区数据表的第一主键和分区键。
具体地,在该实施例中的变更语句是用户输入的,其中预设标识是指本次变更需要按照上述数据表分区方法进行处理的标识,一般地,该变更标识可以是通过注释的方式加入至变更语句中,当需要按照上述数据表分区方法进行处理时,即查询到预设标识,则按照上述数据表分区方法进行处理,否则采用数据库自带的数据表分区方法进行处理。
具体地,为了使得本领域技术人员充分理解本申请,请参见图3所示,图3为另一个实施例中的数据表分区方法的流程图,在该实施例中,假设待分区表为t1,该待分区表t1的表结构如下:
CREATE TABLE`t1`(
`id`int(11)NOT NULL AUTO_INCREMENT,--表ID字段
`name`varchar(20)DEFAULT NULL,--用户名字段
`create_time`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT'创建时间',--用户时间注册字段
PRIMARY KEY(`id`)--将ID设为主键
)ENGINE=InnoDB AUTO_INCREMENT=1DEFAULT CHARSET=utf8mb4;--设置表的属性与字符集。
该数据表分区方法可以包括:
用户输入变更语句,其中变更语句携带有预设标识,该预设标识可以是通过加入注解方式添加的,一个示例为:
ALTER TABLE t1/*partition_table_bixin*/PARTITION BY RANGE(to_days(create_time))(
PARTITION p202105VALUES LESS THAN(to_days('2021-06-01 00:00:00'))ENGINE=InnoDB,
PARTITION p202106VALUES LESS THAN(to_days('2021-07-01 00:00:00'))ENGINE=InnoDB);
数据库判断是否存在注解标识,若是不存在,则采用数据库自带的变更方式进行数据表分区处理。
若是存在注解标识,即上述预设标识,则获取分区键,例如通过正则匹配方式获取到分区键,仍以上述例子为例,识别出create_time为分区键字段,并将create_time加入主键,与原ID字段组成联合主键,创建分区表,此时分区表建表语句为:
CREATE TABLE`dba_test`.`_t1_copy`(
`id`int(11)NOT NULL AUTO_INCREMENT,-表ID字段
`name`varchar(20)DEFAULT NULL,--用户名字段
`create_time`datetime NOT NULL DEFAULT CURRENT_TIMESTAMPCOMMENT'创建时间',--用户时间记录字段
PRIMARY KEY(`id`,`create_time`)--将create_time分区键加入主键,与id字段组成联合主键
)ENGINE=InnoDB AUTO_INCREMENT=4DEFAULT CHARSET=utf8mb4--表属性
PARTITION BY RANGE(to_days(create_time))(--根据create_time进行分区
PARTITION p202105VALUES LESS THAN(to_days('2021-06-01 00:00:00'))ENGINE=InnoDB,--存放6月数据
PARTITION p202106VALUES LESS THAN(to_days('2021-07-01 00:00:00'))ENGINE=InnoDB);--存放7月数据
数据库通过binlog同步待分区数据表与分区表数据,业务新数据会继续写入待分区数据表,通过binlog持续同步至分区表中。且在同步过程中数据库记录同步位置,例如记录LSN位置,根据记录LSN位置,提供外部操作的接口,用于暂停或者速率调整。
此外可选地,数据库还可以判断当前系统资源消耗情况,若是当前系统资源消耗情况,例如IO的利用率大于30%,则暂停同步,否则继续同步。
在同步完成后,数据库检测待分区数据表与分区表的数据是否一致,若是不一致,则继续同步,若是一致,则对待分区数据表的第一主键锁定,即对待分区数据表申请MDL锁,MDL全称为metadata lock,即元数据锁,主要作用是维护表元数据的一致性,然后通过待分区数据表的第一主键替换分区表的第二主键,也即执行待分区数据表和分区表的切换操作,最后丢弃待分区数据表,流程结束。
上述数据表分区方法,在进行数据表分区时根据数据表的第一主键和分区键生成第二主键,这样根据第二主键创建分区表,同时将数据同步至分区表中,且在同步完成后,锁定第一主键,并通过第一主键替换第二主键,整个过程中数据仅需要复制一次,提高了同步效率。且过程中如遇业务性能问题,可调整同步速率,可暂停同步操作,将系统资源优先分配给业务,尽可能降低对业务的影响。在开源DDL变更工具gh-ost的基础上实现只需变更一次即可转换完成,并且安全稳定可控。降低了人力成本,提高了时效性。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种数据表分区装置,包括:键获取模块401、分区表创建模块402、同步模块403和后处理模块404,其中:
键获取模块401,用于获取待分区数据表的第一主键和分区键;
分区表创建模块402,用于根据第一主键和分区键生成第二主键,并根据第二主键创建分区表;
同步模块403,用于将待分区数据表中的数据同步至分区表中;
后处理模块404,用于在同步完成后,锁定待分区数据表的第一主键,并通过第一主键替换第二主键后,删除待分区数据表。
在其中一个实施例中,上述数据表分区装置还包括:
资源消耗情况获取模块,用于获取当前系统资源消耗情况;
第一调整模块,用于根据当前系统资源消耗情况调整将待分区数据表中的数据同步至分区表的同步速率;或根据当前系统资源消耗情况暂停将待分区数据表中的数据同步至分区表中。
在其中一个实施例中,上述同步模块403还用于接收针对将待分区数据表中的数据同步至分区表的同步速率的第一调整指令,并根据第一调整指令调整将待分区数据表中的数据同步至分区表的同步速率;或接收针对将待分区数据表中的数据同步至分区表的第二调整指令,并根据第二调整指令暂停将待分区数据表中的数据同步至分区表中。
在其中一个实施例中,上述数据表分区装置还包括:
记录模块,用于记录将待分区数据表中的数据同步至分区表中当前同步位置。
在其中一个实施例中,上述数据表分区装置还包括:
校验模块,用于检验待分区数据表中的数据与分区表中的数据是否相同;若待分区数据表中的数据与分区表中的数据相同,则继续在同步完成后,锁定待分区数据表的第一主键。
在其中一个实施例中,上述数据表分区装置还包括:
存储模块,用于接收业务数据,并将业务数据存储至待分区数据表中。
在其中一个实施例中,上述数据表分区装置还包括:
接收模块,用于接收输入的变更语句,并判断变更语句是否存在预设标识;当变更语句存在预设标识时,则继续获取待分区数据表的第一主键和分区键。
关于数据表分区装置的具体限定可以参见上文中对于数据表分区方法的限定,在此不再赘述。上述数据表分区装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是数据库,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据表分区方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待分区数据表的第一主键和分区键;根据第一主键和分区键生成第二主键,并根据第二主键创建分区表;将待分区数据表中的数据同步至分区表中;在同步完成后,锁定待分区数据表的第一主键,并通过第一主键替换第二主键后,删除待分区数据表。
在一个实施例中,处理器执行计算机程序时所实现的将待分区数据表中的数据同步至分区表中之后,还包括:获取当前系统资源消耗情况;根据当前系统资源消耗情况调整将待分区数据表中的数据同步至分区表的同步速率;或根据当前系统资源消耗情况暂停将待分区数据表中的数据同步至分区表中。
在一个实施例中,处理器执行计算机程序时所实现的将待分区数据表中的数据同步至分区表中,还包括:接收针对将待分区数据表中的数据同步至分区表的同步速率的第一调整指令,并根据第一调整指令调整将待分区数据表中的数据同步至分区表的同步速率;或接收针对将待分区数据表中的数据同步至分区表的第二调整指令,并根据第二调整指令暂停将待分区数据表中的数据同步至分区表中。
在一个实施例中,处理器执行计算机程序时所实现的将待分区数据表中的数据同步至分区表中之后,还包括:记录将待分区数据表中的数据同步至分区表中当前同步位置。
在一个实施例中,处理器执行计算机程序时所实现的在同步完成后,锁定待分区数据表的第一主键之前,还包括:检验待分区数据表中的数据与分区表中的数据是否相同;若待分区数据表中的数据与分区表中的数据相同,则继续在同步完成后,锁定待分区数据表的第一主键。
在一个实施例中,处理器执行计算机程序时所实现的在同步完成后,锁定待分区数据表的第一主键之前,还包括:接收业务数据,并将业务数据存储至待分区数据表中。
在一个实施例中,处理器执行计算机程序时所实现的获取待分区数据表的第一主键和分区键之前,还包括:接收输入的变更语句,并判断变更语句是否存在预设标识;当变更语句存在预设标识时,则继续获取待分区数据表的第一主键和分区键。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待分区数据表的第一主键和分区键;根据第一主键和分区键生成第二主键,并根据第二主键创建分区表;将待分区数据表中的数据同步至分区表中;在同步完成后,锁定待分区数据表的第一主键,并通过第一主键替换第二主键后,删除待分区数据表。
在一个实施例中,计算机程序被处理器执行时所实现的将待分区数据表中的数据同步至分区表中之后,还包括:获取当前系统资源消耗情况;根据当前系统资源消耗情况调整将待分区数据表中的数据同步至分区表的同步速率;或根据当前系统资源消耗情况暂停将待分区数据表中的数据同步至分区表中。
在一个实施例中,计算机程序被处理器执行时所实现的将待分区数据表中的数据同步至分区表中,还包括:接收针对将待分区数据表中的数据同步至分区表的同步速率的第一调整指令,并根据第一调整指令调整将待分区数据表中的数据同步至分区表的同步速率;或接收针对将待分区数据表中的数据同步至分区表的第二调整指令,并根据第二调整指令暂停将待分区数据表中的数据同步至分区表中。
在一个实施例中,计算机程序被处理器执行时所实现的将待分区数据表中的数据同步至分区表中之后,还包括:记录将待分区数据表中的数据同步至分区表中当前同步位置。
在一个实施例中,计算机程序被处理器执行时所实现的在同步完成后,锁定待分区数据表的第一主键之前,还包括:检验待分区数据表中的数据与分区表中的数据是否相同;若待分区数据表中的数据与分区表中的数据相同,则继续在同步完成后,锁定待分区数据表的第一主键。
在一个实施例中,计算机程序被处理器执行时所实现的在同步完成后,锁定待分区数据表的第一主键之前,还包括:接收业务数据,并将业务数据存储至待分区数据表中。
在一个实施例中,计算机程序被处理器执行时所实现的获取待分区数据表的第一主键和分区键之前,还包括:接收输入的变更语句,并判断变更语句是否存在预设标识;当变更语句存在预设标识时,则继续获取待分区数据表的第一主键和分区键。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据表分区方法,其特征在于,所述方法包括:
获取待分区数据表的第一主键和分区键;
根据所述第一主键和分区键生成第二主键,并根据所述第二主键创建分区表;
将所述待分区数据表中的数据同步至分区表中;
在同步完成后,锁定所述待分区数据表的第一主键,并通过所述第一主键替换所述第二主键后,删除所述待分区数据表。
2.根据权利要求1所述的方法,其特征在于,所述将所述待分区数据表中的数据同步至分区表中之后,还包括:
获取当前系统资源消耗情况;
根据所述当前系统资源消耗情况调整将所述待分区数据表中的数据同步至分区表的同步速率;或根据所述当前系统资源消耗情况暂停将所述待分区数据表中的数据同步至分区表中。
3.根据权利要求1所述的方法,其特征在于,所述将所述待分区数据表中的数据同步至分区表中,还包括:
接收针对将所述待分区数据表中的数据同步至分区表的同步速率的第一调整指令,并根据所述第一调整指令调整将所述待分区数据表中的数据同步至分区表的同步速率;或
接收针对将所述待分区数据表中的数据同步至分区表的第二调整指令,并根据所述第二调整指令暂停将所述待分区数据表中的数据同步至分区表中。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述将所述待分区数据表中的数据同步至分区表中之后,还包括:
记录将所述待分区数据表中的数据同步至分区表中当前同步位置。
5.根据权利要求1至3中任意一项所述的方法,其特征在于,所述在同步完成后,锁定所述待分区数据表的第一主键之前,还包括:
检验所述待分区数据表中的数据与所述分区表中的数据是否相同;
若所述待分区数据表中的数据与所述分区表中的数据相同,则继续在同步完成后,锁定所述待分区数据表的第一主键。
6.根据权利要求1至3任意一项所述的方法,其特征在于,所述在同步完成后,锁定所述待分区数据表的第一主键之前,还包括:
接收业务数据,并将所述业务数据存储至所述待分区数据表中。
7.根据权利要求1至3任意一项所述的方法,其特征在于,所述获取待分区数据表的第一主键和分区键之前,还包括:
接收输入的变更语句,并判断所述变更语句是否存在预设标识;
当所述变更语句存在预设标识时,则程序获取待分区数据表的第一主键和分区键。
8.一种数据表分区装置,其特征在于,所述装置包括:
键获取模块,用于获取待分区数据表的第一主键和分区键;
分区表创建模块,用于根据所述第一主键和分区键生成第二主键,并根据所述第二主键创建分区表;
同步模块,用于将所述待分区数据表中的数据同步至分区表中;
后处理模块,用于在同步完成后,锁定所述待分区数据表的第一主键,并通过所述第一主键替换所述第二主键后,删除所述待分区数据表。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110791910.6A CN113590613A (zh) | 2021-07-13 | 2021-07-13 | 数据表分区方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110791910.6A CN113590613A (zh) | 2021-07-13 | 2021-07-13 | 数据表分区方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590613A true CN113590613A (zh) | 2021-11-02 |
Family
ID=78247437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110791910.6A Pending CN113590613A (zh) | 2021-07-13 | 2021-07-13 | 数据表分区方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590613A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202394A1 (zh) * | 2022-04-18 | 2023-10-26 | 北京奥星贝斯科技有限公司 | 分区表建立、针对分区表的数据写入、读取方法及装置 |
CN117349346A (zh) * | 2023-12-05 | 2024-01-05 | 深圳市威诺达工业技术有限公司 | 一种识别关系型数据库表中主键和外键的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103053146A (zh) * | 2012-03-01 | 2013-04-17 | 华为技术有限公司 | 数据迁移方法和设备 |
CN106990924A (zh) * | 2017-04-07 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种数据迁移方法和系统 |
CN107451154A (zh) * | 2016-05-31 | 2017-12-08 | 华为技术有限公司 | 一种数据表的处理方法、装置及系统 |
CN108628972A (zh) * | 2018-04-25 | 2018-10-09 | 咪咕音乐有限公司 | 一种数据表的处理方法、装置及存储介质 |
CN109359158A (zh) * | 2018-08-22 | 2019-02-19 | 中国联合网络通信集团有限公司 | 数据同步方法、装置及存储介质 |
CN110119431A (zh) * | 2019-05-14 | 2019-08-13 | 深信服科技股份有限公司 | 一种数据同步任务的运行调控方法及相关设备 |
CN110489426A (zh) * | 2019-08-26 | 2019-11-22 | 杭州安恒信息技术股份有限公司 | 一种数据库表的自动化分区方法、装置及设备 |
CN111159179A (zh) * | 2019-12-12 | 2020-05-15 | 中国平安人寿保险股份有限公司 | 表分区方法及相关设备、计算机可读存储介质 |
-
2021
- 2021-07-13 CN CN202110791910.6A patent/CN113590613A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103053146A (zh) * | 2012-03-01 | 2013-04-17 | 华为技术有限公司 | 数据迁移方法和设备 |
CN107451154A (zh) * | 2016-05-31 | 2017-12-08 | 华为技术有限公司 | 一种数据表的处理方法、装置及系统 |
CN106990924A (zh) * | 2017-04-07 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种数据迁移方法和系统 |
CN108628972A (zh) * | 2018-04-25 | 2018-10-09 | 咪咕音乐有限公司 | 一种数据表的处理方法、装置及存储介质 |
CN109359158A (zh) * | 2018-08-22 | 2019-02-19 | 中国联合网络通信集团有限公司 | 数据同步方法、装置及存储介质 |
CN110119431A (zh) * | 2019-05-14 | 2019-08-13 | 深信服科技股份有限公司 | 一种数据同步任务的运行调控方法及相关设备 |
CN110489426A (zh) * | 2019-08-26 | 2019-11-22 | 杭州安恒信息技术股份有限公司 | 一种数据库表的自动化分区方法、装置及设备 |
CN111159179A (zh) * | 2019-12-12 | 2020-05-15 | 中国平安人寿保险股份有限公司 | 表分区方法及相关设备、计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202394A1 (zh) * | 2022-04-18 | 2023-10-26 | 北京奥星贝斯科技有限公司 | 分区表建立、针对分区表的数据写入、读取方法及装置 |
CN117349346A (zh) * | 2023-12-05 | 2024-01-05 | 深圳市威诺达工业技术有限公司 | 一种识别关系型数据库表中主键和外键的方法 |
CN117349346B (zh) * | 2023-12-05 | 2024-03-26 | 深圳市威诺达工业技术有限公司 | 一种识别关系型数据库表中主键和外键的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110276002B (zh) | 搜索应用数据处理方法、装置、计算机设备和存储介质 | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
CN109739828B (zh) | 一种数据处理方法、设备及计算机可读存储介质 | |
EP1147469A1 (en) | Method and apparatus for concurrent dbms table operations | |
CN113590613A (zh) | 数据表分区方法、装置、计算机设备和存储介质 | |
CN113297320A (zh) | 分布式数据库系统及数据处理方法 | |
CN109389299B (zh) | 工作流流程部署方法、装置、计算机设备和存储介质 | |
CN104881418A (zh) | 用于MySQL的快速回收回滚空间的方法和装置 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
CN111930850A (zh) | 数据校验方法、装置、计算机设备和存储介质 | |
CN111917834A (zh) | 一种数据同步方法、装置、存储介质及计算机设备 | |
CN114780641A (zh) | 多库多表同步方法、装置、计算机设备和存储介质 | |
US7200625B2 (en) | System and method to enhance availability of a relational database | |
JP2001306372A (ja) | 文書管理方法およびその方法を実施するためのプログラムを記憶した記憶媒体 | |
JP2023546897A (ja) | オブジェクト処理方法、装置、及びコンピュータ機器 | |
CN103365740A (zh) | 一种数据冷备方法及装置 | |
CN112785248B (zh) | 人力资源数据跨组织交互方法、装置、设备和存储介质 | |
US20220004664A1 (en) | Data integrity procedure | |
CN111414422B (zh) | 一种数据分布方法、装置、设备和存储介质 | |
CN115858486A (zh) | 数据处理方法以及相关设备 | |
CN116414801A (zh) | 数据迁移方法、装置、计算机设备和存储介质 | |
US11232095B2 (en) | Composite metadata objects for database systems | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
CN112818021A (zh) | 数据请求处理方法、装置、计算机设备和存储介质 | |
CN113391916A (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 |