著录项信息
专利名称 | 一种二进制大对象类型数据的快照生成方法及装置 |
申请号 | CN201310140988.7 | 申请日期 | 2013-04-22 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-08-14 | 公开/公告号 | CN103246711A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 邢玉辉;车皓阳;杜培亮 |
代理机构 | 深圳中一专利商标事务所 | 代理人 | 张全文 |
摘要
本发明实施例提供了一种二进制大对象类型数据的快照生成方法及装置,所述方法包括:识别数据库系统中BLOB类型数据的文件格式;根据预设的文件格式与快照生成算法的对应关系,获取与所述BLOB类型数据的文件格式对应的快照生成算法;根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照;在所述数据库系统中存储与所述BLOB类型数据对应的快照,并存储所述BLOB类型数据与所述对应的快照之间的映射关系。本发明通过自动识别数据库中BLOB类型数据的文件格式,生成与该BLOB类型数据对应的快照,并在该数据库内部保存所述BLOB类型数据与该对应的快照之间的关系,降低了开发者工作量及快照获取响应的时延。
1.一种二进制大对象BLOB类型数据的快照生成方法,其特征在于,所述方法包括:
识别数据库系统中BLOB类型数据的文件格式;
根据预设的文件格式与快照生成算法的对应关系,获取与所述BLOB类型数据的文件格式对应的快照生成算法;
根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照;
在所述数据库系统中存储与所述BLOB类型数据对应的快照,并存储所述BLOB类型数据与所述对应的快照之间的映射关系;
接收客户端发送的请求获取所述BLOB类型数据对应的快照的快照获取请求,所述快照获取请求包含有所述BLOB类型数据的标识;
根据所述快照获取请求中所述BLOB类型数据的标识,以及所述数据库系统中存储的所述BLOB类型数据与所述对应的快照之间的映射关系,在所述数据库系统中查询得到所述BLOB类型数据与所述对应的快照,并通过预设的快照访问接口,将所述BLOB类型数据对应的快照发送至所述客户端;
所述方法还包括:
当检测到BLOB类型数据被修改或删除时,自动对应修改或删除与该BLOB类型数据对应的快照及对应的映射关系。
2.如权利要求1所述的方法,其特征在于,在所述生成与所述BLOB类型数据对应的快照步骤之前,所述方法还包括:
获取所述数据库系统当前的系统时间,并判断预设的快照生成时间是否与所述系统时间相同;
如果是,则执行所述根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照的步骤;如果否,则重复执行所述获取所述数据库系统当前的系统时间,并判断所述预设的快照生成时间是否与所述系统时间相同的步骤, 直至所述预设的快照生成时间与所述数据库系统当前的系统时间相同。
3.如权利要求1所述的方法,其特征在于,在所述生成与所述BLOB类型数据对应的快照的步骤之前,所述方法还包括:
获取所述BLOB类型数据的大小;
判断所述BLOB类型数据的大小是否超过预设阈值;
所述根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照,包括:
当所述BLOB类型数据的大小超过预设阈值时,由所述数据库系统后台调用所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照;
当所述BLOB类型数据的大小未超过预设阈值时,根据所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照。
4.如权利要求1所述的方法,其特征在于,在所述生成与所述BLOB类型数据对应的快照的步骤之前,所述方法还包括:
设置快照的生成参数,所述生成参数包括快照的压缩比、大小;
所述根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照,包括:
根据所述对应的快照生成算法,以及设置的所述生成参数,生成与所述BLOB类型数据对应的快照,且生成的所述BLOB类型数据对应的快照的压缩比和大小与分别与所述生成参数中的压缩比和大小匹配。
5.一种二进制大对象BLOB类型数据的快照生成装置,其特征在于,所述装置包括:
格式识别单元,用于识别数据库系统中BLOB类型数据的文件格式;
算法获取单元,用于根据预设的文件格式与快照生成算法的对应关系,获取与所述BLOB类型数据的文件格式对应的快照生成算法;
快照生成单元,用于根据所述对应的快照生成算法,生成与所述BLOB类 型数据对应的快照;以及
存储单元,用于在所述数据库系统中存储与所述BLOB类型数据对应的快照,并存储所述BLOB类型数据与所述对应的快照之间的映射关系;
接收单元,用于接收客户端发送的请求获取所述BLOB类型数据对应的快照的快照获取请求,所述快照获取请求包含有所述BLOB类型数据的标识;
发送单元,用于根据所述快照获取请求中所述BLOB类型数据的标识,以及所述数据库系统中存储的所述BLOB类型数据与所述对应的快照之间的映射关系,在所述数据库系统中查询得到所述BLOB类型数据与所述对应的快照,并通过预设的快照访问接口,将所述BLOB类型数据对应的快照发送至所述客户端;
所述装置还包括:
编辑单元,用于当检测到BLOB类型数据被修改或删除时,自动对应修改或删除与该BLOB类型数据对应的快照及对应的映射关系。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
时间判断单元,用于获取所述数据库系统当前的系统时间,并判断预设的快照生成时间是否与所述系统时间相同;以及
结果处理单元,用于当所述时间判断单元输出结果为是时,立即触发所述快照生成单元;否则,重复触发所述时间判断单元,直至所述预设的快照生成时间与所述数据库系统当前的系统时间相同。
7.如权利要求5或6所述的装置,其特征在于,所述装置还包括:
获取单元,用于获取所述BLOB类型数据的大小;
判断单元,用于判断所述BLOB类型数据的大小是否超过预设阈值;
所述快照生成单元,具体用于当所述判断单元判断出所述BLOB类型数据的大小超过预设阈值时,触发所述数据库系统后台调用所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照;当所述判断单元判断出所述BLOB类型数据的大小未超过预设阈值时,根据所述BLOB类型数 据对应的快照生成算法,生成与所述BLOB类型数据对应的快照。
8.如权利要求5或6所述的装置,其特征在于,所述装置还包括:
参数定义单元,用于设置快照的生成参数,所述生成参数包括快照的压缩比、大小;
所述快照生成单元,具体用于根据所述对应的快照生成算法,以及设置的所述生成参数,生成与所述BLOB类型数据对应的快照,且生成的所述BLOB类型数据对应的快照的压缩比和大小与分别与所述生成参数中的压缩比和大小匹配。
一种二进制大对象类型数据的快照生成方法及装置\n技术领域\n[0001] 本发明属于数据库领域,尤其涉及一种二进制大对象类型数据的快照生成方法及装置。\n背景技术\n[0002] 二进制大对象BLOB(Binary Large Object),是数据库系统中作为一个整体的二进制数据的集合,典型的应用是用来存储多媒体对象如图片、声音、视频等。BLOB这种数据类型的产生晚于关系数据库,主要因为此种数据类型存储内容太大,在商用关系数据库出现的时候还没有这方面的需求。现在随着信息技术的发展,计算机所处理的对象所占空间也急剧增大,对于BLOB的处理也日渐完善,目前主流关系数据库平台都支持BLOB数据类型。\n[0003] 目前,一般通过查询语言接口将存放在数据库中的BLOB从数据库中检索出来使用。检索BLOB时数据库内部的工作原理是:由于BLOB的体积过大(一般超过2G),一般在表中不会保存实际的BLOB,只会保存一个地址,地址指向的位置是BLOB实际存储区域。应用程序层通过调用数据库的访问接口来访问BLOB,数据库系统以流的方式返回BLOB的内容,然后应用程序打开这个对象。目前直接将BLOB传回客户端进行打开的方法存在的问题是:当BLOB超大的时候同一时间传送一批BLOB会增加客户端的响应时延,影响用户体验;也会对网络带宽造成比较大的压力,降低硬件资源的利用效率。比如:每个图片文件100M文件,在平均传输速度100m/s的网络内,传到客户端的时延超过1s,若再加上客户端对大文件的打开时间,这个时间将更长。由于网络瓶颈,随着返回BLOB数目的增加,时延和网络带宽的消耗会程线性增长,甚至会导致网络拥塞。\n[0004] 现有技术中的解决方法基本上都是先区分预览型访问场景和实际读取型访问场景,对于预览型场景,一般是在数据库服务器端取出BLOB后,通过事先关联的处理程序实时计算出BLOB的快照,然后将这个快照返回给客户端进行显示。通过这个技术可以减少预览场景下网络传输带宽和客户端文件打开的时间,然而,这种技术等于在数据库和应用程序处理之间增加了快照生成模块,而这个模块的开发也是比较复杂的,用户需要实现对于多种高效率的BLOB的快照提取算法,实际使用中还要处理好客户端缓存与快照的关系,增加了额外的开发工作量;而且对于预览快照的处理时间会受BLOB的实际类型、大小和快照提取算法的影响,在BLOB超大的场合,实时提取快照可能会花费大量的时间,在实际应用中如果处理不好可能还会延长响应时延。\n发明内容\n[0005] 本发明实施例的目的在于提供一种二进制大对象BLOB类型数据的快照生成方法及装置,旨在解决由于现有技术在获取BLOB类型数据的快照时,存在复杂度高、快照响应时延较高等问题。\n[0006] 第一方面,所述二进制大对象BLOB类型数据的快照生成方法包括:识别数据库系统中BLOB类型数据的文件格式;根据预设的文件格式与快照生成算法的对应关系,获取与所述BLOB类型数据的文件格式对应的快照生成算法;根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照;在所述数据库系统中存储与所述BLOB类型数据对应的快照,并存储所述BLOB类型数据与所述对应的快照之间的映射关系。\n[0007] 在第一方面的第一种可能的实现方式中,所述方法还包括:接收客户端发送的请求获取所述BLOB类型数据对应的快照的快照获取请求,所述快照获取请求包含有所述BLOB类型数据的标识;根据所述快照获取请求中所述BLOB类型数据的标识,以及所述数据库系统中存储的所述BLOB类型数据与所述对应的快照之间的映射关系,在所述数据库系统中查询得到所述BLOB类型数据与所述对应的快照,并通过预设的快照访问接口,将所述BLOB类型数据对应的快照发送至所述客户端。\n[0008] 结合第一方面或在第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述生成与所述BLOB类型数据对应的快照步骤之前,所述方法还包括:获取所述数据库系统当前的系统时间,并判断预设的快照生成时间是否与所系统时间相同;如果是,则执行所述根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照的步骤;如果否,则重复执行所述获取所述数据库系统当前的系统时间,并判断所述预设的快照生成时间是否与所述系统时间相同的步骤,直至所述预设的快照生成时间与所述数据库系统当前的系统时间相同。\n[0009] 结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述生成与所述BLOB类型数据对应的快照的步骤之前,所述方法还包括:获取所述BLOB类型数据的大小;判断所述BLOB类型数据的大小是否超过预设阈值;所述根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照,包括:当所述BLOB类型数据的大小超过预设阈值时,由所述数据库系统后台调用所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照;当所述BLOB类型数据的大小未超过预设阈值时,根据所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照。\n[0010] 结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第四种可能的实现方式中,在所述生成与所述BLOB类型数据对应的快照的步骤之前,所述方法还包括:设置快照的生成参数,所述生成参数包括快照的压缩比、大小;所述根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照,包括:根据所述对应的快照生成算法,以及设置的所述生成参数,生成与所述BLOB类型数据对应的快照,且生成的所述BLOB类型数据对应的快照的压缩比和大小与分别与所述生成参数中的压缩比和大小匹配。\n[0011] 结合第一方面或第一方面的第一种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:当检测到所述BLOB类型数据被删除时,删除在所述数据库系统中存储的与所述BLOB类型数据对应的快照,同时删除所述BLOB类型数据与所述对应的快照之间的映射关系。\n[0012] 第二方面,所述BLOB类型数据的快照生成装置包括:格式识别单元,用于识别数据库系统中BLOB类型数据的文件格式;算法获取单元,用于根据预设的文件格式与快照生成算法的对应关系,获取与所述BLOB类型数据的文件格式对应的快照生成算法;快照生成单元,用于根据所述对应的快照生成算法,生成与所述BLOB类型数据对应的快照;以及存储单元,用于在所述数据库系统中存储与所述BLOB类型数据对应的快照,并存储所述BLOB类型数据与所述对应的快照之间的映射关系。\n[0013] 在第二方面的第一种可能的实现方式中,所述装置还包括:时间判断单元,用于获取所述数据库系统当前的系统时间,并判断预设的快照生成时间是否与所述系统时间相同;以及结果处理单元,用于当所述时间判断单元输出结果为是时,立即触发所述快照生成单元;否则,重复触发所述时间判断单元,直至所述预设的快照生成时间与所述数据库系统当前的系统时间相同。\n[0014] 结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:获取单元,用于获取所述BLOB类型数据的大小;判断单元,用于判断所述BLOB类型数据的大小是否超过预设阈值;所述快照生成单元,具体用于当所述判断单元判断出所述BLOB类型数据的大小超过预设阈值时,触发所述数据库系统后台调用所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照;当所述判断单元判断出所述BLOB类型数据的大小未超过预设阈值时,根据所述BLOB类型数据对应的快照生成算法,生成与所述BLOB类型数据对应的快照。\n[0015] 结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:参数定义单元,用于设置快照的生成参数,所述生成参数包括快照的压缩比、大小;所述快照生成单元,具体用于根据所述对应的快照生成算法,以及设置的所述生成参数,生成与所述BLOB类型数据对应的快照,且生成的所述BLOB类型数据对应的快照的压缩比和大小与分别与所述生成参数中的压缩比和大小匹配。\n[0016] 在第二方面的第四种可能的实现方式中,所述装置还包括:编辑单元,用于当检测到所述BLOB类型数据被删除时,删除在所述数据库系统中存储的与所述BLOB类型数据对应的快照,同时删除所述BLOB类型数据与所述对应的快照之间的映射关系。\n[0017] 本发明实施例通过自动识别数据库系统中BLOB类型数据的文件格式,根据预设的文件格式与快照生成算法的对应关系,获取与所述BLOB类型数据的文件格式对应的快照生成算法,再根据所述对应的快照生成算法,自动生成与所述BLOB类型数据对应的快照,并在所述数据库系统内部存储与所述BLOB类型数据对应的快照,并存储所述BLOB类型数据与所述对应的快照之间的映射关系,以实现对用户完全透明,解决了现有技术在获取BLOB类型数据的快照时,存在开发工作量大、快照响应时延较高等问题,能够在数据库内部实现了快照与对应BLOB类型数据的一致性,使得开发复杂度及快照响应延时均得到降低。\n附图说明\n[0018] 图1是本发明第一实施例提供的BLOB类型数据的快照生成方法的实现流程图;\n[0019] 图2是本发明第二实施例提供的BLOB类型数据的快照生成方法的实现流程图;\n[0020] 图3是本发明第三实施例提供的BLOB类型数据的快照生成方法的实现流程图;\n[0021] 图4是本发明第四实施例提供的BLOB类型数据的快照生成装置的结构图;\n[0022] 图5是本发明第五实施例提供的BLOB类型数据的快照生成装置的结构图。\n具体实施方式\n[0023] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0024] 本发明实施例通过根据预设的BLOB类型数据的文件格式自动识别算法,自动识别数据库系统中BLOB类型数据的文件格式,根据预设的文件格式与快照生成算法的对应关系,自动获取与该BLOB类型数据的文件格式对应的快照生成算法,再根据对应的快照生成算法,自动生成与该BLOB类型数据对应的快照,并在数据库系统内部存储与所述BLOB类型数据对应的快照,并存储该BLOB类型数据与所述对应的快照之间的映射关系,以实现对用户完全透明,而且可以根据实际需要自定义文件格式、识别算法及快照生成算法等,生成方法比较灵活,且当客户端需要返回某一BLOB类型数据的快照时,直接通过快照访问接口返回预先生成的所需快照,降低了快照响应延时。另外,由于不需要如现有技术那样在数据库和应用程序处理之间增加复杂的快照生成模块,也不需要处理好客户端缓存与快照的关系,也降低了开发工作量。\n[0025] 以下结合具体实施例对本发明的具体实现进行详细描述:\n[0026] 实施例一:\n[0027] 图1示出了本发明第一实施例提供的BLOB类型数据的快照生成方法的实现流程,详述如下:\n[0028] 在步骤S101中,识别数据库系统中BLOB类型数据的文件格式。\n[0029] 一般情况下,BLOB类型数据在数据库系统内部被当作二进制数据来处理,但是都可以根据二进制数据的存储内容特点等识别为某种具体文件格式,比如图像格式、音频格式、视频格式、XML格式等文件格式类型下的各种文件格式,如,jpg、bmp、avi、rmvb、mp3、wav等等。具体的BLOB类型数据的文件格式及对应的识别方法都可以灵活扩展,用户可以增加自定义文件格式及识别方法等。另外,在通过步骤S101识别数据库系统中BLOB类型数据的文件格式步骤之后,还可以进一步判断该BLOB类型数据的文件格式是不是已注册的文件格式,如果是,则继续执行步骤S102,否,则可以不对该BLOB类型数据进行后续处理。在本发明实施例中,当判断该BLOB类型数据的文件格式不是已注册的文件格式时,还可以将该BLOB类型数据的文件格式转换为同种文件格式类型下的指定的文件格式,之后再继续执行后续操作。\n[0030] 在步骤S102中,根据预设的文件格式与快照生成算法的对应关系,获取与该BLOB类型数据的文件格式对应的快照生成算法。\n[0031] 在步骤S103中,根据该对应的快照生成算法,生成与该BLOB类型数据对应的快照。\n[0032] 其中,与每一文件格式对快照生成算法可以根据用户对生成快照的类型、参数的要求,由用户自行设置、修改等。比如,设置相关算法,将某种图像格式的BLOB类型数据的生成具有一定压缩比的图像快照;设置有损压缩算法,将音频格式的BLOB类型数据的生成具有一定压缩比的音频快照;设置相关压缩算法,将视频格式的BLOB类型数据的生成经压缩的视频快照等等,当然此处产生的快照大小、压缩比、准确度等等及生成对应快照的算法等都可以自行配置,也即用户可以自行修改照获取算法等。其中,在设置快照的生成参数后,该生成参数包括快照的压缩比、大小等,则根据该对应的快照生成算法,以及设置的该生成参数,生成与该BLOB类型数据对应的快照,且生成的该BLOB类型数据对应的快照的压缩比和大小与分别与该生成参数中的压缩比和大小匹配。其中,该具体匹配的程度可以为完全相同,也可以设置一定的误差范围,只要生成的该BLOB类型数据对应的快照的压缩比和大小与分别与该生成参数中的压缩比和大小存在的误差在该误差范围内,则认为匹配成功等,另外,也可以设置生成的该BLOB类型数据对应的快照的压缩比和大小分别不超过与该生成参数中的压缩比和大小等,可以根据实际需要灵活设置,在此不做限定。另外,生成与该BLOB类型数据对应的快照的时间可以为根据预设的时间点等来触发控制等。\n[0033] 在步骤S104中,在该数据库系统中存储与该BLOB类型数据对应的快照,并存储该BLOB类型数据与该对应的快照之间的映射关系。\n[0034] 在具体实施过程中,在识别数据库中BLOB类型数据的文件格式以后,根据预先设置的文件格式与快照生成算法的对应关系,获取与该BLOB类型数据的文件格式对应的快照生成算法,进而,根据该对应的快照生成算法,生成与该BLOB类型数据对应的快照,最后,在该数据库系统中存储与该BLOB类型数据对应的快照,并存储该BLOB类型数据与该对应的快照之间的映射关系。需要说明的是,快照的存储位置对用户透明,也即当检测到某BLOB类型数据被修改或删除时,可以自动对应修改或删除与该BLOB类型数据对应的快照及关系,用户不需要关心其实际存储位置,只要能够通过该BLOB类型数据与该对应的快照之间的映射关系,查询对应的快照即可,且快照和对应的BLOB本体可以存储在连续的存储空间,也可以是离散的存储空间,在此不做限定。\n[0035] 另外,该BLOB类型数据的快照生成方法还包括以下步骤:\n[0036] 接收客户端发送的请求获取该BLOB类型数据对应的快照的快照获取请求,该快照获取请求包含有该BLOB类型数据的标识;\n[0037] 根据该快照获取请求中该BLOB类型数据标识,以及该数据库系统中存储的该BLOB类型数据与该对应的快照之间的映射关系,在该数据库系统中查询得到该BLOB类型数据与该对应的快照,并通过预设的快照访问接口,将该BLOB类型数据对应的快照发送至该客户端。\n[0038] 在本发明实施例中,将该BLOB类型数据的快照生成方法应用于主流的数据系统库中,比如Oracle11g、SQL Server2008、My SQL5.5等中。则对于实际读取BLOB数据内容的场景下,应用程序层通过调用数据库的访问接口来访问BLOB,数据库系统以流的方式返回BLOB的内容,然后应用程序层打开这个对象;而预览快照的场景下,需要预览该BLOB类型数据的快照时,则应用程序层通过调用数据库的快照访问接口来访问BLOB,进而根据预先存储的该BLOB类型数据与该对应的快照之间的关系,获取预先存储的该对应的快照,数据库系统将该对应的快照返回至应用程序层,应用程序层打开该快照。\n[0039] 在本发明实施例中,通过该BLOB类型数据的快照生成方法获取每一BLOB类型数据对应的快照之后,则可以接收客户端发送的请求获取该BLOB类型数据对应的快照的快照获取请求,在数据库系统中根据该快照获取请求中包含该BLOB类型数据标识,以及该数据库系统中存储的该BLOB类型数据与该对应的快照之间的映射关系,查询得到该BLOB类型数据与该对应的快照,通过预设的快照访问接口,将该BLOB类型数据对应的快照发送至该客户端,也即可以快速、准确地返回与该BLOB类型数据对应的快照至该客户端,提高了查询快照的速度,降低了快照响应时延;通过该方法,还可以进一步对快照进行归一化处理等,以实现用户基于内容等实现对BLOB进行的检索,类似于现有的图像检索方法,还可以按照快照内容的详细程度生成不同级别的快照,以使得不同的访问权限访问不同级别的快照,从而应用范围更广;在实际使用中,客户端可以立即获取相关快照,不需要去关心客户端缓存与快照生成时间的关系等,降低了额外的开发工作量及复杂度;由于本方法不需要先从数据库系统中实时读取BOLB类型数据,实时生成快照,也降低了由于查询传输BLOB而占用的带宽,最终增强了用户体验效果。\n[0040] 实施例二:\n[0041] 图2示出了本发明第二实施例提供的BLOB类型数据的快照生成方法的实现流程,详述如下:\n[0042] 在步骤S201中,识别数据库中BLOB类型数据的文件格式。\n[0043] 在步骤S202中,判断该BLOB类型数据的文件格式是否为已注册,是,则执行步骤S204;否,则执行步骤S203。\n[0044] 在步骤S203中,将该BLOB类型数据的文件格式转换为同种文件格式类型下指定的文件格式,并继续执行步骤S204。\n[0045] 在步骤S204中,根据预设的文件格式与快照生成算法的对应关系,获取与该BLOB类型数据的文件格式对应的快照生成算法。\n[0046] 具体地,由于没有预先设置某种文件格式的对应快照生成算法,比如文件格式为JPG格式,则在执行完该步骤202后,判断出JPG格式没有注册,则会出现无法继续执行的情况,此时,本申请通过步骤S203将该JPG格式强制转换成某种已注册的图像文件类型下指定文件格式,比如bmp格式,从而使得操作方法更灵活,进一步还可以给出该BLOB类型没有注册的提示等等。另外用户也可以自定义某BLOB类型数据的文件格式、快照生成算法等之间的关系。\n[0047] 在步骤S205中,获取该数据库系统当前的系统时间。\n[0048] 在步骤S206中,判断预设的快照生成时间是否与该系统时间相同,是,则执行步骤S207;否,则转向执行该步骤S205。\n[0049] 在步骤S207中,根据该对应的快照生成算法,生成与该BLOB类型数据对应的快照。\n[0050] 在步骤S208中,在该数据库系统中存储与该BLOB类型数据对应的快照,并存储该BLOB类型数据与该对应的快照之间的映射关系。\n[0051] 具体地,该BLOB类型数据的快照生成方法可以自动或者手动触发生成,也即可以自行设置生成时间,比如,可以预先设置一快照生成时间,只有在该快照生成时间与所在数据库系统当前的系统时间相同时,才会触发生成与该BLOB类型数据对应的快照,其中,该系统时间为所在数据库系统当前时间,具体获取方式可以通过现有技术利用所在数据库系统的语言代码获取,在此不再赘述;若该快照生成时间与所在数据库系统当前的系统时间不相同,则继续获取数据库系统当前的系统时间,直至在该快照生成时间与所在数据库系统当前的系统时间相同时触发生成与该BLOB类型数据对应的快照,具体如上述步骤S205至\n207所述。其中步骤S201、S204、S207、S208分别与上述实施例一步骤S101、S102、S103、S104相同,在此不再赘述。\n[0052] 实施例三:\n[0053] 图3示出了本发明第三实施例提供的BLOB类型数据的快照生成方法的实现流程,详述如下:\n[0054] 在本发明实施例中,在基于上述实施例一中步骤S102之后,步骤S103之前,或者基于上述实施例二中步骤S206判断结果为是之后,步骤S207之前,该BLOB类型数据的快照生成方法还包括下述步骤:\n[0055] 在步骤S301中,获取该BLOB类型数据的大小。\n[0056] 在步骤S302中,判断该BLOB类型数据的大小是否超过预设阈值,是,则执行步骤S303,否,则执行步骤S204。\n[0057] 在步骤S303中,由该数据库系统后台调用该BLOB类型数据对应的快照生成算法,生成与该BLOB类型数据对应的快照。\n[0058] 在步骤S304中,根据该BLOB类型数据对应的快照生成算法,生成与该BLOB类型数据对应的快照。\n[0059] 在步骤S305中,在数据库系统中存储与该BLOB类型数据对应的快照,并存储该BLOB类型数据与该对应的快照之间的映射关系。\n[0060] 在具体实施过程中,当检测到某BLOB类型数据被修改或删除时,可以自动对应修改或删除与该BLOB类型数据对应的快照,比如用新的BLOB替换原有BLOB后,原有的BLOB对应的快照自动失效,并能够根据新的BLOB的内容生成新的快照,或者说该新的快照替换原有的快照。\n[0061] 在本发明实施例中,在获取BLOB类型数据的大小后,通过判断该BLOB类型数据的大小是否超过预设阈值,来决定是由所在数据库系统后台调用该BLOB类型数据对应的快照生成算法,自动生成与该BLOB类型数据对应的快照,还是直接根据该BLOB类型数据对应的快照生成算法,自动生成与该BLOB类型数据对应的快照,从而可以更加灵活的处理快照的生成操作,还不会占用系统较多时间,且在后台生成快照期间,不能够访问该BLOB类型数据对应的快照,此时还可以给出相关后台生成操作提示给用户等,以使得用户及时了解情况,预览其他快照等等。\n[0062] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。\n[0063] 实施例四:\n[0064] 图4示出了本发明第四实施例提供的BLOB类型数据的快照生成装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。\n[0065] 该BLOB类型数据的快照生成装置可以用于现有的关系型数据库或者非关系型数据库中,比如SQL Server2008、My SQL5.5等。如图4所示,该BLOB类型数据的快照生成装置包括:格式识别单元41、算法获取单元42、快照生成单元43及存储单元44,其中:\n[0066] 格式识别单元41,用于识别数据库系统中BLOB类型数据的文件格式。\n[0067] 算法获取单元42,用于根据预设的文件格式与快照生成算法的对应关系,获取与该BLOB类型数据的文件格式对应的快照生成算法。\n[0068] 其中,在触发该格式识别单元41之后,触发该算法获取单元42之前,该BLOB类型数据的快照生成装置还包括:\n[0069] 注册判断单元,用于判断该BLOB类型数据的文件格式是否是已注册的文件格式;\n以及\n[0070] 格式转换单元,用于当该注册判断单元输出结果为否时,将所该BLOB类型数据的文件格式转换为同种文件格式类型下指定的文件格式。\n[0071] 在本发明实施例中,对于每一插入数据库系统的BLOB类型数据都可以通过格式识别单元41识别其具体地文件格式。而BLOB类型数据在数据库系统内部被当作二进制数据来处理,但是都可以根据二进制数据的存储内容特点等识别为某种文件格式,比如图像格式、音频格式、视频格式、XML格式等文件格式类型下的各种文件格式。具体的BLOB类型数据的文件格式及对应的识别方法都可以灵活扩展,用户可以增加自定义文件格式及识别方法等。进而根据该算法获取单元42基于预设的文件格式与快照生成算法的对应关系,获取与该BLOB类型数据的文件格式对应的快照生成算法。\n[0072] 另外,在触发该格式识别单元41之后,还可以通过注册判断单元判断该BLOB类型数据的文件格式是否是已注册的文件格式,当该注册判断单元输出结果为是时,直接触发该算法获取单元42;而当该注册判断单元输出结果为否时,由该格式转换单元将所该BLOB类型数据的文件格式转换为同种文件格式类型下指定的文件格式后,再进行后续的操作,从而能够更灵活地获取任一BLOB类型数据的文件格式。\n[0073] 快照生成单元43,用于根据该对应的快照生成算法,生成与该BLOB类型数据对应的快照。\n[0074] 其中,与每一文件格式对快照生成算法可以根据用户对生成快照的类型、参数的要求,由用户自行设置、修改等。比如,设置相关算法,将图像格式的BLOB类型数据的生成具有一定压缩比的图像快照;设置有损压缩算法,将音频格式的BLOB类型数据的生成具有一定压缩比的音频快照;设置相关压缩算法,将视频格式的BLOB类型数据的生成经压缩的视频快照等等。\n[0075] 在生成与该BLOB类型数据对应的快照前,还可以通过参数定义单元设置快照的生成参数,该生成参数包括快照的压缩比、大小等,此时,该快照生成单元43具体用于根据该对应的快照生成算法,以及设置的该生成参数,生成与该BLOB类型数据对应的快照,且生成的该BLOB类型数据对应的快照的压缩比和大小与分别与该生成参数中的压缩比和大小匹配。其中,该具体匹配的程度可以为完全相同,也可以设置一定的误差范围,只要生成的该BLOB类型数据对应的快照的压缩比和大小与分别与该生成参数中的压缩比和大小存在的误差在该误差范围内,则认为匹配成功等,另外,也可以设置生成的该BLOB类型数据对应的快照的压缩比和大小分别不超过与该生成参数中的压缩比和大小等,可以根据实际需要灵活设置,在此不做限定。\n[0076] 在本发明实施例中,生成与该BLOB类型数据对应的快照的时间可以为根据预设的快照生成时间等来自动触发控制,也可以即时生成,可以根据需要设置。比如,在获取任一BLOB类型数据的文件格式及该文件格式对应的快照生成算法后,生成与该BLOB类型数据对应的快照前,该BLOB类型数据的快照生成装置还可以包括时间判断单元及结果处理单元,实现了自定义设置快照生成时间的目的,其中:\n[0077] 时间判断单元,用于获取该数据库系统当前的系统时间,并判断预设快照生成时间是否与该数系统时间相同;以及\n[0078] 结果处理单元,用于当该时间判断单元输出结果为是时,立即触发该快照生成单元;否则,重复触发该时间判断单元,直至该预设的快照生成时间与所述数据库系统当前的系统时间相同。\n[0079] 存储单元44,用于在该数据库系统中存储与该BLOB类型数据对应的快照,并存储该BLOB类型数据与该对应的快照之间的映射关系。\n[0080] 在本发明实施例中,与该BLOB类型数据的快照生成装置对应的快照生成方法见上述实施例一至三,在此不再赘述。\n[0081] 通过本发明实施例四中提供的BLOB类型数据的快照生成装置,能够在数据库系统内部自动生成并存储BLOB类型数据的快照,且BLOB类型数据与对应的快照之间的关联存储对用户完全透明,解决了在BLOB类型的数据超大,需要预览其对应的快照时造成的高时延问题,实现了通过单独的快照访问接口,快速访问快照的目的,而且,当检测到该BLOB类型数据被删除时,还可以通过编辑单元对应删除与该BLOB类型数据对应的快照,以及该BLOB类型数据与该对应的快照之间的映射关系,则在不增加数据库用户额外的工作量的前提下,通过数据库内部实现了解决快照和原始数据的一致性问题。\n[0082] 实施例五:\n[0083] 图5示出了本发明第五实施例提供的BLOB类型数据的快照生成装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。\n[0084] 基于上述实施例四中所给出的BLOB类型数据的快照生成装置结构,如图5所示,本发明实施例中该BLOB类型数据的快照生成装置包括:格式识别单元51、算法获取单元52、获取单元53、判断单元54,快照生成单元55及存储单元56,该格式识别单元51、算法获取单元\n52、存储单元56分别与上述实施例四中格式识别单元41、算法获取单元42、存储单元44一一对应,完全相同。此时该BLOB类型数据的快照生成装置可以用于现有的关系型数据库系统或者非关系型数据库系统中,其中:\n[0085] 获取单元53,用于获取该BLOB类型数据的大小。\n[0086] 判断单元54,用于判断该BLOB类型数据的大小是否超过预设阈值。\n[0087] 此时,快照生成单元55具体用于当该判断单元53判断出该BLOB类型数据的大小超过预设阈值时,触发该数据库系统后台调用该BLOB类型数据对应的快照生成算法,生成与该BLOB类型数据对应的快照;当该判断单元53判断出该BLOB类型数据的大小未超过预设阈值时,根据该BLOB类型数据对应的快照生成算法,生成与该BLOB类型数据对应的快照。\n[0088] 通过本发明实施例五中提供的装置,该获取单元53获取BLOB类型数据的大小后,判断单元54判断该BLOB类型数据的大小是否超过预设阈值,触发快照生成单元55来决定是由数据库系统后台调用该对应的快照生成算法,自动生成与该BLOB类型数据对应的快照,还是直接根据该对应的快照生成算法,自动生成与该BLOB类型数据对应的快照,可以更加灵活的处理快照的生成操作,还不会占用系统较多时间,且在后台生成快照期间,不能够访问该BLOB类型数据对应的快照,此时还可以给出相关后台生成操作提示给用户等,以使得用户及时了解情况,预览其他快照等等。\n[0089] 本发明实施例通过根据预设的BLOB类型数据的文件格式自动识别算法,自动识别数据库系统中BLOB类型数据的文件格式,根据预设的文件格式与快照生成算法的对应关系,自动获取与该BLOB类型数据的文件格式对应的快照生成算法,再根据对应的快照生成算法,自动生成与该BLOB类型数据对应的快照,并在数据库系统内部关联存储该BLOB类型数据与该对应的快照,以及存储该BLOB类型数据与该对应的快照之间的映射关系,实现了对用户完全透明,而且还可以根据实际需要自定义文件格式、识别算法及快照生成算法等,生成方法比较灵活,且当客户端需要返回某一BLOB类型数据的快照时,直接通过快照访问接口返回预先生成的所需快照,降低了快照响应延时。另外,由于不需要如现有技术那样在数据库和应用程序处理之间增加复杂度较高的快照生成模块,也不需要处理好客户端缓存与快照的关系,也降低了复杂度及开发工作量。\n[0090] 需要说明的是,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。\n[0091] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。\n[0092] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2022-02-25
专利权的转移
登记生效日: 2022.02.15
专利权人由华为技术有限公司变更为华为云计算技术有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为550025 贵州省贵阳市贵安新区黔中大道交兴功路华为云数据中心
- 2016-12-07
- 2013-09-11
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201310140988.7
申请日: 2013.04.22
- 2013-08-14
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-11-28
|
2005-12-09
| | |
2
| |
2009-01-14
|
2007-07-09
| | |
3
| |
2011-05-04
|
2010-11-17
| | |
4
| |
2012-12-26
|
2012-06-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |