【技术实现步骤摘要】
一种关系引擎数据导入实现方法及装置
[0001]本专利技术涉及数据库
,具体提供一种关系引擎数据导入实现方法及装置
。
技术介绍
[0002]导入导出可以应用在用户生产环境迁移中,可以应于在用户模拟环境中重建源环境的对象定义及统计信息以便开发测试,也可以在只收集用户的对象定义及统计信息从避免触及用户敏感数据来进问题诊断
、
调试和调优的场景中
。
[0003]导入导出为用户提供一种途径将
KaiwuDB
中的用户数据对象
(
如表
、
索引
、
视图
、
设备
、
订阅主题
、
等等
)、
用户数据以及相关对象的统计信息从源数据库端导出,并保存到指定的目录的指定压缩文件中,之后可以导入到目标端的数据库中
。
[0004]数据导入是数据库中的重要内容,数据的导入就像搬家,基本每个用过手机的人都做过数据导入,将旧智能手机中的电话号码
、
照片
、
微信聊天记录导入到另一台新的智能手机
。
数据库中的数据导入也是类似的,将一台数据库中的内容导入到另一台数据库中,可以是同构的数据库,即
KaiwuDB
导入到
KaiwuDB
,也可以是异构数据库,即
Oracle
或
MySQL
导入到
KaiwuDB。
[00 ...
【技术保护点】
【技术特征摘要】
1.
一种关系引擎数据导入实现方法,其特征在于,具有如下步骤:
S1、
使用
Job
来进行流程控制,执行管理性任务或后台任务;
S2、
对数据进行读取和转换;
S3、
进行
KV
数据的消费
。2.
根据权利要求1所述的一种关系引擎数据导入实现方法,其特征在于,在步骤
S1
中,进一步包括:
S101、
将相关的用户表下载,即不再提供业务,等待所有节点均看到所述用户表的相同元数据版本后开始导入;
S102、
开始分布式的数据导入,在数据导入中,定期更新
jobs
表中导入的进度;
S103、
如果导入正常结束,返回统计信息到客户端,并将表状态置为
public
,继续提供业务;
S104、
如果导入发生了可重试错误,更新错误到
jobs
表中,数据库节点会在后台自动重试
Job
,重试时会根据
jobs
表中的进度跳过已经加载完毕的数据
。3.
根据权利要求2所述的一种关系引擎数据导入实现方法,其特征在于,如果导入中发生了不可重试的错误,回滚已加载数据;对于导入数据到一张新表,会执行删除操作,对于导入数据到已存在的表,将数据回滚到导入前的时间节点,然后将表状态设置额为
public
,继续提供业务
。4.
根据权利要求3所述的一种关系引擎数据导入实现方法,其特征在于,在步骤
S2
中,导入的数据读取由
readCSVFile
协程完成,
readCSVFile
协程按行读取
CSV
文件,并将读取的
record
添加到
record batch
中,当
record batch
大小达到阈值时,将所述
record batch
发送到
record Channel。5.
根据权利要求4所述的一种关系引擎数据导入实现方法,其特征在于,导入数据的转换由
convertRecord
协程完成,数据格式转换的协程即
convertRecord
负责消费
record Channel
中的接收到的
record batch
,将
record batch
转化为
KV,
写入
KV batch
,当
KV batch
【专利技术属性】
技术研发人员:田祥雨,
申请(专利权)人:上海沄熹科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。