知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 报表技术分享 > 快逸报表利用语义层数据管道功能实现数据迁移

快逸报表利用语义层数据管道功能实现数据迁移

随着快逸报表在各种系统中所占比重的日益增加,用户对润乾报表数据处理方面提出了更多更高的要求。本文就数据处理中的数据管道功能做一个简单的描述,同时结合实际应用场景中的几种用例,阐述如何使用润乾语义层实现数据管道功能。

快逸报表的数据管道定义和PowerBuilder的数据管道定义类似:

在应用系统的开发和使用过程中,常常需要对数据进行备份和迁移。当应用系统开发成功后,系统从开发环境向运行环境迁移时,当旧的系统需要升级时,当新系统为了兼容原有系统使用时,当自动进行数据的备份和恢复时,或者为了提取数据样本时,开发者或用户可以通过手工的方法完成操作,但某些情况下,开发者应该考虑在应用程序中实现数据的自动迁移。数据管道是实现这种自动移动的有效方法之一。

根据数据管道的定义,我们可以总结出数据管道的应用场景分为以下几种:

1、 数据从开发环境向运行环境迁移
2、 旧的系统需要升级
3、 新系统为了兼容原有系统使用
4、 自动进行数据的备份和恢复
5、 提取数据样本

目前我们对数据管道的应用,主要是在第5种情况,也就是提取数据样本时,使用数据管道。

使用数据管道提取的数据样本,较内建数据集的优势:

内建数据集 使用数据管道提取的数据样本
参数支持 不支持参数 支持参数查询
主键索引 不支持主键索引 支持主键索引
外键关联 不支持表间关系(外键关联) 支持表间关系(外键关联)
数据类型 所有数据为字符串类型 目标库完全克隆源数据库的数据类型
内存使用 载入模板时即消耗内存 载入模板时不消耗内存
数据过滤 无法进行二次过滤 可通过WHERE条件进行二次过滤
计算开销 和模板的计算同时进行,同一时刻运算开销较大 和模板的计算是顺序进行,取数和模板运算分开独立进行

从上表可以看出,使用数据管道提取的数据,较内建数据的优势非常明显,特别是在根据提取的数据样本进行性能测试时,数据样本较内建数据集更能真实的模拟用户的真实环境。

在语义层中使用数据管道:

在语义层中使用数据管道,包括以下几个步骤:

1、 在语义层中定义源数据库的语义视图。
数据管道功能不依赖于原数据库和目标数据库的类型。在数据迁移的过程中,会按照语义视图中对字段的定义,使用标准的SQL在目的数据库进行创建表、搬迁数据和进行数据类型校验。

2、 在语义层中的数据管道选项中,新建数据管道。
在新建数据管道时,会弹出管道向导,供我们选择源数据库和目标数据库。并选择迁移使用的语义视图。特别注意,在选择时,可支持按照条件进行数据筛选的功能,比如WHERE条件、起始行和结束行条件、只抽取指定字段等等。
有以下几点需要特别注明:
如果只选择了指定字段,则未指定筛选的字段也会在目标数据库建立,只是值为NULL,换句话说,如果选择了语义视图A,则A视图映射的源数据库表a会保留其完整表结构迁移至目标数据库,未在语义层中指定的字段,填充为NULL。

迁移时有三个选择,更新、清空和增量。
如果使用更新传输或增量传输,则语义视图中必须定义主键。特别注意,语义层不支持自动识别源数据库的主键功能。在使用语义视图映射后,必须手动指定一下主键。
更新传输是指管道首先检查需要传输的数据和目标数据库数据之间是否相同,如果相同,则不传输,不同的,做更新操作,没有的,做插入操作。
清空传输是指,管道首先检查目标库有没有和传输数据相同的表,如果有,则先删除,再进行传输。
增量传输,是指直接在目标数据库的表内,进行数据追加操作。

3、 在建立好的数据管道上单击右键,选择数据传输,进行数据迁移。

以上就是语义层数据管道使用的简单介绍。下面我介绍一下提取数据样本时,使用数据管道的几个典型场景。

一、 某用户需要我们配合进行大数据量测试。单表数据100万行左右。
该种情况最为简单:使用数据管道,建立用户环境数据库和润乾现场支持人员机器上数据库的数据管道,直接进行迁移,然后在现场支持人员本机数据库和北京统一测试数据库之间的连接,进行两次数据搬迁即可。

二、 某用户需要我们配合进行大数据量测试。单表数据100万行,且数据较敏感,只能提供部分数据。
该情况即用户数据敏感,不能全部搬迁。用户环境数据库和润乾现场支持人员数据库之间做迁移时,可通过语义视图的删选条件,利用起始行和结束行,过滤出几条数据,然后搬迁到北京统一测试数据库上,然后在北京的数据库上利用循环,执行一条SQL多次插入数据的操作即可。
三、 某用户需要我们配合进行大数据量和表间关联测试。两个表数据量各100万行,其中有关联的数据在2000行左右。
该情况可首先根据WHERE条件删选两个表间有关系的2000条数据,然后将这2000条数据通过数据管道进行两次搬运至北京数据库,其他数据依然使用循环SQL生成即可。

总的来说,利用数据管道,可更真实的模拟客户环境的真实数据库情况,同时也大大的方便了数据取样的工作,非常便于我们更快的查找和解决问题。对我们积累案例,改进产品,都起到了非常积极的作用。

本文标签: