CN108153849B - 一种数据库表切分方法、装置、系统和介质 - Google Patents
一种数据库表切分方法、装置、系统和介质 Download PDFInfo
- Publication number
- CN108153849B CN108153849B CN201711385151.3A CN201711385151A CN108153849B CN 108153849 B CN108153849 B CN 108153849B CN 201711385151 A CN201711385151 A CN 201711385151A CN 108153849 B CN108153849 B CN 108153849B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- mycat
- access
- server
- 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.)
- Active
Links
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/70—Information retrieval; Database structures therefor; File system structures therefor of video data
Abstract
本发明公开了一种数据库表切分方法、装置、系统和介质,用以对数据库中存储的数据进行灵活切分,保证数据库的访问性能。所述数据库表切分系统,包括:Mycat服务器,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;将该视频数据存储至确定出的数据库子库中;向服务注册中心写入访问链路配置信息;视频业务服务器,用于读取访问链路配置信息并创建与Mycat服务器之间的访问链路;在接收到数据访问请求时,根据数据库访问状态位确定使用Mycat链路访问时,通过创建的访问链路访问Mycat服务器。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库表切分方法、装置和介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在网络视频监控系统中,部署最多的设备是视频数据存储设备,前端设备(摄像头)采集监控图像,经编码压缩处理成数字监控码流即视频数据,然后通过网络传送到视频数据存储设备,视频数据存储设备包括视频业务平台和视频数据存储数据库,视频业务平台间将接收的视频数据写入视频数据存储数据库中存储,另外,通过视频业务平台还可以读取视频数据存储数据库存储的视频数据进行回看。
网络视频业务中的时间轴(timeline)是一个以时间维度结合设备维度的大数据量时间维度数据存储,系统设计初期考虑到业务特点已经对此业务的数据表做过一层单库类业务表按用户标识(id)分表的逻辑,但是,随着日益增长的设备和业务,如何对存储的数据进行灵活切分,保证数据库的访问性能成为现有技术中亟待解决的技术问题之一。
发明内容
本发明实施例提供了一种数据库表切分方法、装置、系统和介质,用以对数据库中存储的数据进行灵活切分,保证数据库的访问性能。
第一方面,提供一种数据库表切分系统,包括视频业务服务器,Mycat服务器和数据库服务器,其中:
所述Mycat服务器,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;将该视频数据存储至确定出的数据库子库中;以及向服务注册中心写入访问链路配置信息;
所述视频业务服务器,用于从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息创建与所述Mycat服务器之间的访问链路;以及在接收到数据访问请求时,根据当前数据库访问状态位确定使用Mycat链路访问数据库服务器时,通过创建的访问链路访问所述Mycat服务器。
可选地,所述Mycat服务器,具体用于针对每一分片中包含的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。
可选地,所述Mycat服务器,还用于在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路,并修改所述访问链路配置信息;
所述视频业务服务器,还用于在检测到自身与Mycat服务器之间的访问链路故障时,重新从从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息重新创建与所述Mycat服务器之间的访问链路。
可选地,所述视频业务服务器,还用于在接收到数据访问请求时,根据其中携带的用户标识判断用户开通业务时长是否不大于预设时长,如果判断结果为是且所述数据访问请求为写数据访问请求,则采用双写方式分别写入Mycat数据库和Mysql数据中,如果判断结果为是且所述数据访问请求为读数据访问请求,则选择从Mycat数据库或者Mysql数据中读取数据;如果判断结果为否且所述数据访问请求为写数据请求,则写入Mycat数据库或者Mysql数据;如果判断结果为否且所述数据访问请求为读数据请求,则从存储有相应数据的数据库中读取数据。
可选地,所述视频业务服务器,还用于在接收到读数据访问请求时,确定数据读取状态位和白名单访问状态位;如果确定所述数据读取状态位为从Mycat数据读取数据且所述白名单访问状态为开启状态,则根据所述数据访问请求中携带的用户标识判断其是否位于访问白名单中,如果存在,则通过与Mycat数据库之间的访问链路从Mycat数据库中读取数据;如果确定所述数据读取状态位为从Mycat数据读取数据且所述白名单访问状态为关闭状态,则直接通过与Mycat数据库之间的访问链路从Mycat数据库中读取数据;如果确定所述数据读取状态位为从Mysql数据读取数据且所述白名单访问状态为开启状态,则根据所述数据访问请求中携带的用户标识判断其是否位于访问白名单中,如果存在,则从Mysql数据库中读取数据;如果确定所述数据读取状态位为从Mysql数据读取数据且所述白名单访问状态为关闭状态,则直接从Mysql数据库中读取数据。
第二方面,提供一种数据库表切分方法,包括:
根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片;
针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;
将该视频数据存储至确定出的数据库子库中;并
向服务注册中心写入访问链路配置信息。
可选地,针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库,具体包括:
针对每一分片中包含的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。
可选地,所述数据库表切分方法,还包括:
在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路;并
修改所述访问链路配置信息。
第三方面,提供一种数据库表切分装置,包括:
分片单元,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片;
确定单元,用于针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;
存储单元,用于将该视频数据存储至确定出的数据库子库中;
写入单元,用于向服务注册中心写入访问链路配置信息。
可选地,所述确定单元,具体用于针对每一分片中包含的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。
可选地,所述数据库表切分装置,还包括:
通知单元,用于在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路;
修改单元,用于修改所述访问链路配置信息。
第四方面,提供一种计算装置,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行上述任一所述数据库表切分方法的步骤。
第五方面,提供一种计算机可读介质,其存储有可由计算装置执行的计算机程序,当所述程序在计算装置上运行时,使得所述计算装置执行上述任一所述数据库表切分方法的步骤。
本发明实施例提供的数据库表切分方法、装置、系统和介质,Mycat服务器根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;将该视频数据存储至确定出的数据库子库中;以及向服务注册中心写入访问链路配置信息;这样,视频业务服务器可以从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息创建与所述Mycat服务器之间的访问链路;以及在接收到数据访问请求时,根据当前数据库访问状态位确定使用Mycat链路访问数据库服务器时,通过创建的访问链路访问所述Mycat服务器,上述过程中以Mycat服务器作为中间件来处理数据的切分,使得数据能够均匀地分布于各个数据库子库中,避免热点数据访问的问题,从而保证了数据访问性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例中,数据库表切分系统的结构示意图;
图2为本发明实施例中,数据库表切分方法的实施流程示意图;
图3为本发明实施例中,数据库表切分装置的结构示意图;
图4为根据本发明实施方式的计算装置的结构示意图。
具体实施方式
为了对数据库中存储的数据进行灵活切分,保证数据库的访问性能,本发明实施例提供了一种数据库表切分方法、装置和介质。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
Mycat是一个开源的分布式数据库系统,是一个实现了MySQL协议的Server,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生(Native)协议与多个MySQL服务器通信,也可以用JDBC(Java DataBaseConnectivity java,数据库连接)协议与大多数主流数据库服务器通信。
针对视频业务应用场景,本发明实施例提供了一种基于Mycat的数据库表切分系统,如图1所示,其为本发明实施例提供的Mycat的数据库表切分系统的结构示意图,包括视频业务服务器11,Mycat服务器12和数据库服务器13。
在数据切分处理中,特别是水平切分中,中间件要处理的是数据切分和数据聚合。Mycat提供了丰富的分片规则包括:分片枚举,固定分片hash(哈希),范围约定,取模,按日期(天)分片,取模范围约束,截取数字做hash求模范围约束,一致性hash,按单月小时拆分,范围求模分片,日期范围hash分片,冷热数据分片,自然月分片等等。针对视频业务应用场景,本发明实施例中选择范围求模分片规则。具体实施时,先进行范围分片计算出分片组,组内再求模,既可以避免扩容时的数据迁移,又可以一定程度上避免范围分片的热点问题综合了范围分片和求模分片的优点,分片组内使用求模可以保证组内数据比较均匀,分片组之间是范围分片可以兼顾范围查询。具体实施时,最好事先规划好分片的数量,数据扩容时按分片组扩容,则原有分片组的数据不需要迁移。由于分片组内数据比较均匀,所以分片组内可以避免热点数据问题。
具体实施时,为了提高数据库切分的灵活性和安全性,本发明实施例中引入了Mycat服务端注册服务中心,具体地,引入zookper作为Mycat服务端注册中心,当Mycat启动时将服务配置信息写入zookper,客户端建立访问链路时根据zookper中的注册资源来优先选择Mycat访问链路,如果遇到故障zookper会自动通知各应用方,应用方收到消息后会自动重建Mycat访问链路完成Mycat的高可用主备热切行为。
基于此,本发明实施例提供的数据库表切分系统中,所述Mycat服务器12,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;将该视频数据存储至确定出的数据库子库中;以及向服务注册中心写入访问链路配置信息;
所述视频业务服务器11,用于从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息创建与所述Mycat服务器之间的访问链路;以及在接收到数据访问请求时,根据当前数据库访问状态位确定使用Mycat链路访问数据库服务器时,通过创建的访问链路访问所述Mycat服务器。
具体实施时,可以以每20W个用户为一组,即将20W个用户的视频数据存储于一台物理机服务器上。具体地,可以按照以下公式来确定用户范围:UID%200000==0,即利用用户标识对200000进行取模运算,结果为0的用户对应的视频数据存储于同一台物理机服务器上。每台数据物理机服务器按照实际cpu内核数划分数据库,每一cpu内核对应一个数据库子库,保障数据库实际处理能力。本发明实施例中,针对同一物理机服务器上存储的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。在确定出每一视频数据对应的数据库子库后,将视频数据存储至相应的数据库子库中。
进一步地,为了保证数据访问的可靠性,本发明实施例中,所述Mycat服务器12,还用于在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路,并修改所述访问链路配置信息;
所述视频业务服务器11,还用于在检测到自身与Mycat服务器之间的访问链路故障时,重新从从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息重新创建与所述Mycat服务器之间的访问链路。
本发明实施例中,在视频业务平台侧可以增加数据访问状态位,根据数据访问状态位确定数据读写位置,根据该数据访问状态位可以确定是写入Mycat数据库中,还是写入Mysql数据库中,或者从Mycat数据库中读取还是从Mysql数据库中读取等等。
具体实施时,所述视频业务服务器11,还用于在接收到读数据访问请求时,确定数据读取状态位和白名单访问状态位;如果确定所述数据读取状态位为从Mycat数据读取数据且所述白名单访问状态为开启状态,则根据所述数据访问请求中携带的用户标识判断其是否位于访问白名单中,如果存在,则通过与Mycat数据库之间的访问链路从Mycat数据库中读取数据;如果确定所述数据读取状态位为从Mycat数据读取数据且所述白名单访问状态为关闭状态,则直接通过与Mycat数据库之间的访问链路从Mycat数据库中读取数据;如果确定所述数据读取状态位为从Mysql数据读取数据且所述白名单访问状态为开启状态,则根据所述数据访问请求中携带的用户标识判断其是否位于访问白名单中,如果存在,则从Mysql数据库中读取数据;如果确定所述数据读取状态位为从Mysql数据读取数据且所述白名单访问状态为关闭状态,则直接从Mysql数据库中读取数据。
为了保证在数据迁移时,数据的正常访问,本发明实施例中,所述视频业务服务器11,还用于在接收到数据访问请求时,根据其中携带的用户标识判断用户开通业务时长是否不大于预设时长,如果判断结果为是且所述数据访问请求为写数据访问请求,则采用双写方式分别写入Mycat数据库和Mysql数据中,如果判断结果为是且所述数据访问请求为读数据访问请求,则选择从Mycat数据库或者Mysql数据中读取数据;如果判断结果为否且所述数据访问请求为写数据请求,则写入Mycat数据库或者Mysql数据;如果判断结果为否且所述数据访问请求为读数据请求,则从存储有相应数据的数据库中读取数据。
相应地,本发明实施例还提供了一种数据库表切分方法,如图2所示,可以包括以下步骤:
S21、根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片。
S22、针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库。
S23、将该视频数据存储至确定出的数据库子库中。
S24、向服务注册中心写入访问链路配置信息。
其中,步骤S23中,可以针对每一分片中包含的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。
可选地,本发明实施例提供的数据库表切分方法,还可以包括以下步骤:
步骤一、在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路;并修改所述访问链路配置信息。
基于同一发明构思,本发明实施例中还提供了一种数据库表切分装置,由于上述装置及设备解决问题的原理与数据库表切分方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,其为本发明实施例提供的数据库表切分装置的结构示意图,包括:
分片单元31,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片;
确定单元32,用于针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;
存储单元33,用于将该视频数据存储至确定出的数据库子库中;
写入单元34,用于向服务注册中心写入访问链路配置信息。
可选地,所述确定单元,具体用于针对每一分片中包含的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。
可选地,所述数据库表切分装置,还包括:
通知单元,用于在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路;
修改单元,用于修改所述访问链路配置信息。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本发明示例性实施方式的数据库表切分方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算装置可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述描述的根据本发明各种示例性实施方式数据库表切分方法中的步骤。例如,所述处理单元可以执行如图2中所示的步骤S21、根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,和步骤S22、针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库,以及步骤S23、将该视频数据存储至确定出的数据库子库中,步骤S24、向服务注册中心写入访问链路配置信息。
下面参照图4来描述根据本发明的这种实施方式的计算装置40。图4显示的计算装置40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算装置40以通用计算设备的形式表现。计算装置40的组件可以包括但不限于:上述至少一个处理单元41、上述至少一个存储单元42、连接不同系统组件(包括存储单元42和处理单元41)的总线43。
总线43表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元42可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)421和/或高速缓存存储器422,还可以进一步包括只读存储器(ROM)423。
存储单元42还可以包括具有一组(至少一个)程序模块424的程序/实用工具425,这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置40也可以与一个或多个外部设备44(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置40交互的设备通信,和/或与使得该计算装置40能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口45进行。并且,计算装置40还可以通过网络适配器46与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器46通过总线43与用于计算装置40的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本发明提供的动态显示网页的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的动态显示网页的方法中的步骤,例如,所述计算机设备可以执行如图2中所示的步骤S21、根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,和步骤S22、针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库,以及步骤S23、将该视频数据存储至确定出的数据库子库中,步骤S24、向服务注册中心写入访问链路配置信息。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式的用于动态显示网页的的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种数据库表切分系统,其特征在于,包括视频业务服务器,Mycat服务器和数据库服务器,其中:
所述Mycat服务器,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片,针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;将该视频数据存储至确定出的数据库子库中;以及向服务注册中心写入访问链路配置信息;
所述视频业务服务器,用于从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息创建与所述Mycat服务器之间的访问链路;以及在接收到数据访问请求时,根据当前数据库访问状态位确定使用Mycat链路访问数据库服务器时,通过创建的访问链路访问所述Mycat服务器;以及在接收到数据访问请求时,根据其中携带的用户标识判断用户开通业务时长是否不大于预设时长,如果判断结果为是且所述数据访问请求为写数据访问请求,则采用双写方式分别写入Mycat数据库和Mysql数据中,如果判断结果为是且所述数据访问请求为读数据访问请求,则选择从Mycat数据库或者Mysql数据中读取数据;如果判断结果为否且所述数据访问请求为写数据请求,则写入Mycat数据库或者Mysql数据;如果判断结果为否且所述数据访问请求为读数据请求,则从存储有相应数据的数据库中读取数据。
2.如权利要求1所述的系统,其特征在于,
所述Mycat服务器,具体用于针对每一分片中包含的视频数据,利用哈希函数确定该视频数据对应的用户标识的哈希值,根据确定出的哈希值确定其对应的数据库子库。
3.如权利要求1所述的系统,其特征在于,
所述Mycat服务器,还用于在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路,并修改所述访问链路配置信息;
所述视频业务服务器,还用于在检测到自身与Mycat服务器之间的访问链路故障时,重新从从所述服务注册中心读取访问链路配置信息,根据读取的访问链路配置信息重新创建与所述Mycat服务器之间的访问链路。
4.如权利要求1所述的系统,其特征在于,
所述视频业务服务器,还用于在接收到读数据访问请求时,确定数据读取状态位和白名单访问状态位;如果确定所述数据读取状态位为从Mycat数据读取数据且所述白名单访问状态为开启状态,则根据所述数据访问请求中携带的用户标识判断其是否位于访问白名单中,如果存在,则通过与Mycat数据库之间的访问链路从Mycat数据库中读取数据;如果确定所述数据读取状态位为从Mycat数据读取数据且所述白名单访问状态为关闭状态,则直接通过与Mycat数据库之间的访问链路从Mycat数据库中读取数据;如果确定所述数据读取状态位为从Mysql数据读取数据且所述白名单访问状态为开启状态,则根据所述数据访问请求中携带的用户标识判断其是否位于访问白名单中,如果存在,则从Mysql数据库中读取数据;如果确定所述数据读取状态位为从Mysql数据读取数据且所述白名单访问状态为关闭状态,则直接从Mysql数据库中读取数据。
5.一种数据库表切分方法,其特征在于,所述方法应用于权利要求1~4任一权利要求所述的系统中,所述方法包括:
根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片;
针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;
将该视频数据存储至确定出的数据库子库中;并
向服务注册中心写入访问链路配置信息。
6.如权利要求5所述的方法,其特征在于,还包括:
在通过心跳检测确定任一访问链路故障时,通知所述服务注册中心移除故障链路;并
修改所述访问链路配置信息。
7.一种数据库表切分装置,其特征在于,应用于权利要求1~4任一权利要求所述的系统中,所述装置包括:
分片单元,用于根据用户标识以预设的用户数量为单位对数据库服务器中存储的视频数据进行分片;
确定单元,用于针对每一分片中包含的视频数据,根据该视频数据对应的用户标识确定其对应的数据库子库;
存储单元,用于将该视频数据存储至确定出的数据库子库中;
写入单元,用于向服务注册中心写入访问链路配置信息。
8.一种计算装置,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行权利要求5或6所述方法的步骤。
9.一种计算机可读介质,其存储有可由计算装置执行的计算机程序,当所述程序在计算装置上运行时,使得所述计算装置执行权利要求5或6所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385151.3A CN108153849B (zh) | 2017-12-20 | 2017-12-20 | 一种数据库表切分方法、装置、系统和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385151.3A CN108153849B (zh) | 2017-12-20 | 2017-12-20 | 一种数据库表切分方法、装置、系统和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108153849A CN108153849A (zh) | 2018-06-12 |
CN108153849B true CN108153849B (zh) | 2020-10-23 |
Family
ID=62464649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711385151.3A Active CN108153849B (zh) | 2017-12-20 | 2017-12-20 | 一种数据库表切分方法、装置、系统和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108153849B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851525B (zh) * | 2018-07-24 | 2022-08-26 | 华为云计算技术有限公司 | 一种数据分片方法、相关设备及计算机存储介质 |
CN110659282B (zh) * | 2019-08-14 | 2023-09-15 | 中国平安财产保险股份有限公司 | 数据路由的构建方法、装置、计算机设备和存储介质 |
CN110837506A (zh) * | 2019-11-07 | 2020-02-25 | 中电福富信息科技有限公司 | 一种基于Mycat的数据分片及读写分离方法及系统 |
CN111199386A (zh) * | 2019-12-27 | 2020-05-26 | 天阳宏业科技股份有限公司 | 一种工作流引擎及其实现方法 |
CN111324606B (zh) * | 2020-01-23 | 2023-06-09 | 北京恒华伟业科技股份有限公司 | 数据分片的方法及装置 |
CN111367995B (zh) * | 2020-02-10 | 2023-07-21 | 北京百度网讯科技有限公司 | 基于服务锁的数据同步方法及装置、电子设备与存储介质 |
CN111881323B (zh) * | 2020-06-19 | 2022-05-20 | 四川新网银行股份有限公司 | 基于排序字段与时间路由的表分离方法 |
CN112380217B (zh) * | 2020-11-17 | 2024-04-12 | 安徽鸿程光电有限公司 | 数据处理方法、装置、设备及介质 |
CN112817972A (zh) * | 2021-01-22 | 2021-05-18 | 中信百信银行股份有限公司 | 数据存储方法、数据查询方法、装置及电子设备 |
CN112822289A (zh) * | 2021-01-29 | 2021-05-18 | 深圳市大头兄弟科技有限公司 | 数据上传读取方法、系统、设备及存储介质 |
CN113645304B (zh) * | 2021-08-13 | 2023-06-16 | 恒生电子股份有限公司 | 数据服务处理方法及相关设备 |
CN113821514A (zh) * | 2021-09-26 | 2021-12-21 | 维沃移动通信有限公司 | 数据拆分方法、装置、电子设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326241A (zh) * | 2015-06-15 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 在将数据表拆分的过程中读写数据表的方法和装置 |
CN106354828A (zh) * | 2016-08-31 | 2017-01-25 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库数据的分片方法及装置 |
CN106980669A (zh) * | 2017-03-23 | 2017-07-25 | 珠海格力电器股份有限公司 | 一种数据的存储、获取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9588884B2 (en) * | 2012-06-26 | 2017-03-07 | Red Bend Ltd. | Systems and methods for in-place reorganization of device storage |
-
2017
- 2017-12-20 CN CN201711385151.3A patent/CN108153849B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326241A (zh) * | 2015-06-15 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 在将数据表拆分的过程中读写数据表的方法和装置 |
CN106354828A (zh) * | 2016-08-31 | 2017-01-25 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库数据的分片方法及装置 |
CN106980669A (zh) * | 2017-03-23 | 2017-07-25 | 珠海格力电器股份有限公司 | 一种数据的存储、获取方法及装置 |
Non-Patent Citations (1)
Title |
---|
MySQL分布式中间件:MyCAT;标点符;《https://www.biaodianfu.com/mycat.html》;20151108;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108153849A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153849B (zh) | 一种数据库表切分方法、装置、系统和介质 | |
US10073747B2 (en) | Reducing recovery time in disaster recovery/replication setup with multitier backend storage | |
US10565077B2 (en) | Using cognitive technologies to identify and resolve issues in a distributed infrastructure | |
US11741046B2 (en) | Method and apparatus for creating system disk snapshot of virtual machine | |
US10169173B2 (en) | Preserving management services with distributed metadata through the disaster recovery life cycle | |
US10817386B2 (en) | Virtual machine recovery method and virtual machine management device | |
US10725976B2 (en) | Fast recovery using self-describing replica files in a distributed storage system | |
US8949183B2 (en) | Continuous and asynchronous replication of a consistent dataset | |
US20170123848A1 (en) | Multi-task processing in a distributed storage network | |
US10061665B2 (en) | Preserving management services with self-contained metadata through the disaster recovery life cycle | |
US9635109B2 (en) | Enhancing reliability of a storage system by strategic replica placement and migration | |
CN105824846B (zh) | 数据迁移方法及装置 | |
CN107870802B (zh) | 一种虚拟机迁移方法和装置 | |
CN111475483A (zh) | 数据库迁移方法、装置及计算设备 | |
CN110737924B (zh) | 一种数据保护的方法和设备 | |
CN106406980B (zh) | 一种虚拟机的部署方法和装置 | |
US10761940B2 (en) | Method, device and program product for reducing data recovery time of storage system | |
CN113821168A (zh) | 一种共享存储迁移系统、方法及电子设备和存储介质 | |
CN115336237A (zh) | 远程存储的文件的预测性供应 | |
US11055017B1 (en) | Throttling a point-in-time snapshot copy operation within a data consistency application | |
CN105162833A (zh) | 应用于无盘工作站的客户机管理系统及方法 | |
US10712959B2 (en) | Method, device and computer program product for storing data | |
CN113535470A (zh) | 组态备份方法、装置、电子设备和存储介质 | |
US10698862B2 (en) | Enhanced snapshot performance, storage efficiency improvement, dynamic snapshot policy in erasure code supported object storage environment | |
CN112286626B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |