版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深圳市汉云科技 SCSDB-RDBMS 数据导入模块概要设计 模块名称: SCSDB-RDBMS数据导入模块 版 本: V0.1 完成日期: 2013-02-19 作 者: 熊志强 审 核: 批 准: 文件状态: 草稿匚正式发布 DE在修改 深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 I 版本历史 版本/状态 责任人 起止日期 备注 V0.1/草福 熊志强 2013-02-19 至 2013-02-21 1、元成接口 7E义。具体的开发设计由合作者补 充完成。 深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 2 1. 前言 . 1 1.1. 项目简要说明
2、 . 1 1.2. 文档说明 . 1 1.3. 术语 . 1 2. 设计目标 . 1 2.1. 关键功能 . 1 2.2. 关键质量属性 . 1 2.3. 约束条件 . 2 3. 逻辑架构设计 . 3 4. 开发架构设计 . 3 4.1. 关键目录、文件组织 . 3 4.2. 程序单元组织 . 3 4.3. 数据结构设计 . 4 4.4. 接口定义 . 5 4.5. 关键处理逻辑流程 . 6 5. 物理架构设计 . 7深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 -1 - 1.前言 1.1. 项目简要说明 数据导入模块是SCSDB-RDBMS整个系统的一个子系统模块。 1.
3、2. 文档说明 本文档是数据导入模块的设计文档,包括接口定义、开发架构设计、逻辑架构设计等方面内容。 文档当前主要描述了接口定义及一些重要的逻辑处理内容。具体的其他设计内容由合作者补充完 成。 1.3. 术语 源数据库:导出数据的数据库 目标(目的)数据库:被导入数据的数据库 2. 设计目标 2.1. 关键功能 功能 描述 备注 数据库、表 结构导入 能够将源数据库、表的结构信息导入目标数据 库中。主键、索引信息需要保留下来 由于SCSDB与mysql的无缝兼容,所 以将mysql的数据库、表结构信息导 入SCSDB是非常容易的,可以先期开 发。而 oracle、sql server 与 SC
4、SDB 的 差异较大,可以后期再升发 表数据导入 能够将源数据库、表中的数据导入到 SCSDB 支持多种商 用源数据库 能够支持将 mysql、 oracle、 sql server的数据导 5 SCSDB 模块需要全面支持将 mysql、oracle、 sql server的数据导入SCSDB 图表1关键功能列表 2.2.关键质量属性 质量属性 描述 备注 -2 - 深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 局可靠性 这里的高可靠性是指数据不丢失、数据不被修 改,导入后的数据与源数据完全相同;表属性 能正确保留,如索引、主键属性要保留;其他 SCSDB不支持的属性可删
5、除,如外键 高可靠性是数据导入模块的一个非常 重要指标。导入完成后,从目标数据 库中查询到的数据与从源数据库查询 到的数据完全相问,数据不丢失、不 截留(只保留了小数点前几位)。 SCSDB支持的数据类型、属性可能与 其他商业数据库有些不同,如 SCSDB 不支持外键,在处理类型、属性时请 积极与SCSDB开灯沟通,确定开发 万案 高稳定性 在长时间导入大数据时能够稳定运行 高性能 在导入大数据表(kw级别以上)时,能有较好 的性能表现 通过多线程并行导入等各种手段提高 数据导入的性能 多线程安全 调用者在多线程方式下调用本模块应是线程安 全的 可维护性 有良好的可维护性,方便其他人员维护本模
6、块 详细的设计文档;良好的编码规范; 详细的注释 可扩展性 模块要划分清晰;各子模块、接口间要弱耦合 图表2质量属性列表 2.3 .约束条件 约束条件 描述 备注 系统支持 能够支持 Windows (XP/VISTA/VIN7 )、linux (centos5.5/centos6.2)系统 Windows 系统输出 sip.dll 和 sip.lib 文 件,linux 系统输出 libsip.so 和 libsip.a 文件 服务不中断 在数据导入过程中,不能中断源数据库服务器 的服务 采用各种手段,尽量保证服务不中断 或只中断部分服务。如从 mysql导入 数据,可以进行lock tab
7、le操作,暂停 增删改服务,但不影响查询服务 图表3约束条件列表深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 -3 - 3. 逻辑架构设计 图表4数据导入模块逻辑架构 封装接口 API层:负责封装本模块的接口,供上层调用者使用。 数据导入逻辑控制层:按照一定的逻辑,调用下层的查询源数据库、数据分析、导入目标数据库 子模块,来实现数据导入功能。 查询源数据库:通过向源数据库发送查询命令,从而获取源数据库的表结构信息或表数据。 数据分析:对从源数据库中查询到的数据进行分析,以转换成适合导入到目标数据库的数据。 导入目标数据:将转换后的目标数据导入目标数据库。 数据库访问接口层:
8、相应数据库厂商提供的访问下层数据库的接口 API。 4. 开发架构设计 4.1. 关键目录、文件组织 目录、文件名 目的 sip.h 数据导入模块封装的对外接口 API的定义 sip_types.h 数据导入模块重要的、公共对外的数据类型定义 sip_error.h 数据导入模块的错误码、错误消息定义 图表5关键目录、文件列表 4.2.程序单元组织 明确描述各单元编译依赖关系。深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 -4 - 4.3.数据结构设计 /枚举目标数据库(表)存在时的处理方法 typedef enum EXIT_DEL EXIT_IGN / / / EXIT
9、_ABORT IF_EXIT; 如果目标数据库(表)已存在,则先删除目标数据库(表) 如果目标数据库已存在,则忽略,继续后面的操作; 如果目标数据表已存在,则忽略,继续后面其他数据表的导入 如果目标数据库(表)已存在,则终止本次导入操作 /枚举数据库类型 typedef enum DB_SCSD B /SCSD欧型数据库 DB_MYSQL/MYSQ决型数据库 DB_ORACLE DB_SQLSERVER DB_TYP;E /连接数据库服务器的一些必要参数 typedef struct DB_TYPEdb_type; ip ; / const char* int port ; const cha
10、r* const char* / user; / pwc| / 数据库类型 /数据库服务器ip 数据库服务端口号 连接、操作数据库的用户名 密码 DB_SERVER_CON DB_SERVER_CON_server ; / 源数据库服务器 DB_SERVER_CON_server ; / 目标数据库服务器 const char* db; / 将要导入的数据库名称, 不能为 NULL const char* table ; / 将要导入的数据表名称, 若不为 NULL则只导入 table指正的数据表 / 若为NULL则导入数据库db中的所有数据表 /是否导入表结构,表示不导入表结构,表示导入表
11、/import typedef 接口参数的结构体 struct int ip_struct ; 结构,其丽非法 int ip_data ; 中数据,其他值非法 IF_EXIT db_exit ; IFEXIT table exit / / 是否导入表中数据,表小不导入表中数据,表小导入表 目标数据库已存在时,需要进行的处理 /目标数据表已存在时,需要进行的处理 深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 -5 - IMPORT_ARG 后续在此补充重要的数据结构设计。 4.4.接口定义 /初始化库。如分配内存、初始化全局变量等。 /成功返回0,否则返回错误码 int si
12、p_library_init (); 结束库使用,进行活理。如析构对象、释放内存等 /成功返回0,否则返回错误码 int sip_library_end (); class CSCSDBImport public : CSCSDBImpoQ; virtual CSCSDBImpoQ; /获取执行失败的错误码 int get_errno (); /获取执行失败的错误信息 string get_error (); /导入数据库、表的接口调用 /成功返回0,其他表示错误 int import (IMPORT_AR(p_arg ); private : int nErr; string strErr
13、; ; 后续再开发过程中若需要提供更多的接口,需在此补充深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 -6 - 4.5.关键处理逻辑流程 开始 X _ 参数检查 连接源、目连接源、目* *标服务标服务 一目标数据库 db已存. 是 db_exit = 在? - * . EXIT_ABORT? 结束 图表6数据导入的逻辑处理流程 数据导入的逻辑处理流程如上图所示,在该图中引用到的“导入数据表”的逻辑处理流程如下。 开始 数据库db中的所有 表时,可以多线程并行 导入多张表,以提高导 入数据库的效率。 创建数据库 db -db_exit = EXIT_DEL ? 否/db_exit = -EXTIGN ? 获取薮据库db甲的 所有数据表 table = NULL 删除旧数据库 db 导入下一张数据表 表 导入数据表 table 嘎见“数据表导入逻辑 处理流程” 否 1 所有数据表导入完? 是 深圳市汉云科技 SCSDB_RDS数据导入模块概要设计 V0.1 -7 - 图表8导入表数据的处理流程 5. 物理架构设计 图表7数据表导入的逻辑处理流程 在数据表的导入过程中,在“导入表数据”时,应采用多线程的方式来提高运行效率。 “导入表数 据”的处理流程如下。 逻辑流程 Lock
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生态农业园租赁合同模板
- 水产养殖销售代表聘用合同范本
- 美容院防水施工合同
- 儿童摄影相机租赁协议
- 股份质押合同三篇
- 高速公路路面养护承包合同三篇
- 车辆租赁公司和员工安全协议书(2篇)
- 挖机在工地干活合同范本
- 公共机构合同能源管理的意义和作用
- 工商银行解除贷款合同流程
- 保安队长年终工作汇报
- 肿瘤的类型和治疗手段
- 美丽文字 民族瑰宝
- 化肥减量培训课件
- 牙合畸形的早期矫治通用课件
- 四川省资阳市安岳县2023-2024年九年级上期期末化学试题
- 初中道德与法治差异化作业实践探究
- 部编版小学道德与法治五年级上册单元复习课件(全册)
- 北京市2022-2023学年七年级上学期语文期末试卷(含答案)
- 电缆放线施工方案
- 废水处理系统点检表
评论
0/150
提交评论