[发明专利]基于openGauss平台的高速数据导入导出方法在审
| 申请号: | 202111214816.0 | 申请日: | 2021-10-19 |
| 公开(公告)号: | CN113886395A | 公开(公告)日: | 2022-01-04 |
| 发明(设计)人: | 张文龙;何小栋 | 申请(专利权)人: | 广州海量数据库技术有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/23;G06F21/60 |
| 代理公司: | 北京尚钺知识产权代理事务所(普通合伙) 11723 | 代理人: | 王海荣 |
| 地址: | 510510 广东省广州市天河区建*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 opengauss 平台 高速 数据 导入 导出 方法 | ||
1.一种基于openGauss平台的高速数据导入导出方法,其特征在于:
所述高速数据导出方法包括:首先通过SQL命令查询所需要导出对象的元数据,并将这些元数据保存到元数据文件中;然后根据表对象的oid,在源库的数据目录下,找到与其对应的表数据文件、可见性映射文件和空闲空间映射文件,最后以文件的方式将上述文件拷贝到导出的目录中;
所述高速数据导入方法包括:首先进行元数据导入,在新库中创建表对象;之后再将表数据文件、可见性映射文件和空闲空间映射文件拷贝到对应数据目录下,替换导入元数据时生成的表数据文件。
2.根据权利要求1所述的高速数据导入导出方法,其特征在于,在进行高速数据导入的过程中,当表数据文件导入后,对数据文件中所有记录进行可见性更新,以确保导入的数据可以正常使用;最后对导入的表重建索引,生成索引数据文件。
3.根据权利要求1所述的高速数据导入导出方法,其特征在于,所述方法具体包括以下步骤:
高速数据导出方法包括:
步骤一:输入导出命令与控制参数,解析该命令与参数;通过连接参数连接数据库,并将其他参数设置为本次导出的属性;
步骤二:判断导出属性选择相应的导出策略,导出策略分两种,一种是仅导出元数据,即对象定义;另一种是将元数据与表数据全部导出,该导出策略通过传入的参数项来判定;
步骤三:若选择第一种策略,则先通过SQL命令从系统表中查询所需要导出对象的元数据,并将这些元数据转换为DDL语言,然后按照指定格式进行存储,相同的对象类型为一类,对应一份元数据文件;
步骤四:若选择第二种策略,则先根据策略一的方案,进行元数据的导出,并保存成元数据文件;之后再导出关联的表数据文件,在源库目录下,直接将所涉及的表数据文件拷贝至导出目录下,一个表对象对应至少一个表数据文件,如果有多个表数据文件,则需要全部拷贝;
步骤五:导出元数据和表数据之后,根据表的oid标识,生成表对象与表数据文件的映射关系文件,即一个oid标识对应多个以该oid为前缀的表数据文件的关系,并在导入的过程中进行使用;
步骤六:对于索引对象,只导出其元数据文件,并将之转换成DDL语言,不导出索引数据文件;
步骤七:对导出的元数据文件、表数据文件以及表对象与表数据文件的映射关系文件进行加密;
步骤八:对加密之后的表数据文件进行压缩处理,减少大表数据文件对磁盘空间的占用;
步骤九:对上述加密压缩之后的文件进行统一的打包处理,以便在其他设备上进行导入操作;
高速数据导入方法包括:
步骤A:输入导入命令与控制参数,解析该命令与参数;通过连接参数连接数据库;
步骤B:先对需要导入的文件进行解压处理,获得加密的元数据DDL文件、表数据文件以及表对象与表数据文件的映射关系文件;然后对上述三类文件进行解密,获得解密后的文件;
步骤C:通过SQL命令先导入元数据文件,在此过程中,导入除索引以外的元数据,并通过DDL定义来创建相关对象;
步骤D:检查当前导入的对象中是否有表,以及是否存在对应的表数据文件;若不存在表数据文件,则完成当前元数据的导入;若存在表数据文件,则根据导入参数判断,是否需要导入表数据文件;
步骤E:若不需要导入表数据文件,则完成当前元数据的导入;若需要导入表数据文件,则根据表对象与表数据文件的映射关系,将对应的所有表数据文件拷贝到导入目标库的数据目录下,替换在创建表对象时新生成的空数据文件;
步骤F:如果导入的对象与目标库中的现有对象名称冲突,根据命令参数来判断是否覆盖旧的对象,若不覆盖则跳过不进行导入,若覆盖,则先删除之前的对象,再使用DDL语句进行新对象的创建及文件覆盖;
步骤G:根据openGauss的MVCC特性,获取目标库当前最新事务id,并获取改表的共享锁,启用多线程对数据文件中所有元组进行可见性更新,修改元组信息中创建元组的事务id标识,以确保数据导入后,其元组对未来事务的可见性与源库一致,更新完所有数据文件的元组信息后,释放共享锁;
步骤H:导入索引元数据,重建相应表对象上的索引信息,自动生成新的索引数据文件;
步骤I:最后调用vacuum命令,对新导入的表进行惰性清理操作,将该表中的无效元组进行清除,并生成最新的可见性映射文件oid_vm,以及空闲空间映射文件oid_fsm,以提高导入的表在目标库中的元组扫描效率。
4.权利要求1-3任一项所述的高速数据导入导出方法在数据库管理系统中的应用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州海量数据库技术有限公司,未经广州海量数据库技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111214816.0/1.html,转载请声明来源钻瓜专利网。





