页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

界面介绍

1、导入规则管理:可以添加或删除导入规则(如果需要修改导入规则名称,双击名称即可进行编辑状态修改)。

目录

2、Excel补录模板管理:需要上传Excel文件(xlsx和xls格式)或绑定电子表格作为补录模板,以便补录用户可以下载模板并录入数据。

3、导入规则设置:包括基本设置、列设置、扩展设置。

4、参数布局设置:可以对参数的位置进行调整。


#基本设置
#基本设置
基本设置

设置项说明如下:

名称说明
数据源

要导入的目标库,需要在系统管理中先创建关系数据源。

信息

不支持跨库联合数据源目前已知暂不支持跨库联合数据源、Kylin数据库。


回写表要导入的目标表,需要在关系数据源中通过 数据库管理 将回写表添加到系统中。
Sheet名称Excel文件中要导入Sheet名称,区分英文大小写。
起始行

Excel文件开始导入的行,包含设置的值。

  • 行号:通过设置行号的形式设置起始行。
  • 出现字符:通过设置Excel中指定列开始出现指定字符设置起始行。
注意

出现字符的列需要选取列设置中有设置绑定Excel列的列,否则不生效


结束行

Excel文件结束导入的行,设置的结束行也会执行导入,缺省直到Excel结束。

  • 行号:通过设置行号的形式设置结束行。
  • 出现字符:通过设置Excel中指定列开始出现指定字符设置结束行。
注意

出现字符的列需要选取列设置中有设置绑定Excel列的列,否则不生效

  • 直到空行:遇到空行终止导入。
异常处理规则

设置出现校验异常时,是回滚还是继续执行。这里的异常是指不满足Excel导入规则中的校验规则,如长度超长、类型不匹配、超值域范围、主键冲突等),并非数据库sql执行过程中产生的异常。如果是数据库异常是直接回滚并抛出错误原因给用户的。

  • 回滚:当出现校验异常时,回滚整个sheet中数据的导入,并抛出碰到的第一个校验异常原因。注意:选择了回滚,异常日志中并不会记录所有的异常数据及原因,因为回滚意味着遇到第一个校验异常时,直接回滚,跳出导入该sheet。
  • 继续执行:批量导入更新情况下出现校验异常,选择继续执行,会进行更新,但在更新时会产生主键冲突,并将这条数据写入到异常日志,供后面下载查看异常原因。
数据处理模式

设置处理数据的模式是增量还是全量。

  • 增量:当选择增量时,不删除数据库中表的数据,直接在数据库表中插入需要更新的数据。
  • 全量:全量就是在数据导入到数据库之前,把数据库中表的数据先清除了之后再导入。
主键冲突处理规则

指当Excel中要导入的数据与数据库中已有数据的主键重复时的处理规则,可以是执行更新操作,或者抛出主键冲突的异常信息。注意,这里的“主键”是“列设置”中用户指定的主键列,并不一定是数据库表的主键,但列设置中的“主键”也需要满足数据唯一性。

  • 更新:主键重复时,更新数据。
  • 异常处理:主键重复时,抛出主键冲突的异常,并通过“异常处理规则”处理这个异常。
是否开启批量

配置处理数据库操作时是否使用数据库批处理。

  • 开启批量:每执行1000条SQL或结束扫描Excel时提交一次事务,性能较好;
  • 关闭批量:每次单独执行一条SQL,性能较差。
移除空格设置是否启自动去除单元格数据前后的空格,默认选择“是”。
主键校验方式

校验导入Excel文件中存在的重复数据。

  • 内存校验:把导入规则中的主键值放在应用服务器内存中进行校验,由于是在服务器内存中进行运算,因此校验速度较快;
  • 数据库校验:通过查询数据库中是否已经存在导入规则中的主键值对应的数据进行校验,由于需要通过查询数据库,因此校验速度较慢。

在导入Excel文件的数据量较少时推荐使用内存校验,数据量较多时推荐使用数据库校验。

批量导入与主键冲突情况:
1、【主键冲突处理规则】选择【更新】时,无论是否开启【是否开启批量】,有主键冲突的时候都会更新,且显示导入行数为导入文件的数据的总行数。
2、【主键冲突处理规则】选择【作为异常处理】时:

  • 开启批量导入:冲突行后数量将不导入。导入行数为冲突行前导入的行数;
  • 关闭批量导入:跳过冲突行,后续数据继续导入。导入行数为总行数减去异常行数。
  • 在同一个批量里有两条一样的数据,开启批量导入,和设置的主键重复的数据也会一同导入;关闭批量导入,主键重复的数据不会一同导入。

#列设置
#列设置
列设置

设置项说明如下:

名称说明
字段名和字段类型根据基本设置中的回写表结构自动读取。
是否主键用于标识导入数据的唯一性。缺省会自动从数据库读取,但用户可以更改,例如选择学校代码、单位号作为主键。
是否允许空值缺省会自动从数据库读取,但用户可以更改。
绑定输入

设置数据库表字段的数据来源。

  • 不绑定:执行导入时,该字段不插入值。
  • 绑定Excel列:绑定字段与Excel中指定列数据。设置绑定列时,需要指定具体某一列。
  • 绑定Excel单元格:绑定Excel中指定单元格数据。设置绑定Excel单元格时,需要指定具体某行、某列对应的单元格。
  • 绑定参数:将字段与公共设置中定义的参数进行绑定。绑定参数后,执行导入界面会显示该参数,用户导入前需要先选择参数的值再执行导入,这样这列导入的值就是用户所选的参数值。
  • 使用固定值:将一个固定值插入到字段中。
  • 使用JAVA类:通过java类实现一个业务逻辑,并将java类的返回值插入到字段中。系统内置了唯一id、系统时间、当前用户名称、当前用户别名、当前行号,用户可通过扩展包自定义java类,详细请见“列设置使用Java类自定义规则”。

唯一id:41位长的唯一id。

系统时间:执行导入时的系统时间。

当前用户名称:当前用户的名称。

当前用户别名:当前用户的别名。

当前行号:当前的行号。

注意

绑定Excel列最多到z,但实际如果更多收需要手工输入。



按文件绑定

按文件绑定是系统提供的一种快速绑定字段的方式,通过Excel文件中的某一行的内容与数据库表的字段名(或别名)相同,自动完成Excel列与字段的绑定,而无需逐列绑定。

如数据库表结构:

Excel文件内容:

则通过文件绑定,选择该Excel文件并设置Sheet名、行号,完成自动绑定。

  • Excel配置文件:Excel文件,该文件中必须有一行是数据库字段名或别名,系统通过将这个名称和数据库表的列名、或列的别名匹配达到自动映射的目的。
  • 作为补录模板:勾选这一项后,系统会将上传的配置文件作为补录模板,相当于功能“上传Excel补录模板”功能。
  • Sheet名:用于匹配的Sheet页名称,如果勾选了“作为补录模板”,该名称必须和Excel导入模板中配置的Sheet名相同。
  • 名称所在行号:字段名、别名所在行号。

校验设置

校验规则支持:

  • 字符长度限制。
  • 值域范围验证(必须先设置好值域范围)。
  • 数字范围验证。
  • 正则表达式验证(譬如某一列必须满足邮件的规则,就可以使用正则表达式验证)。

#扩展设置
#扩展设置
扩展设置

如果通过“列设置”中的“校验设置”不能满足用户的验证需求,可以通过扩展设置进行自定义校验规则。

  • 规则验证类:自定义java验证类,对每一行数据进行校验。该类必须实现smartbi.daq.Excelimport.IRuleValidator接口,设置了该项,系统缺省的“校验设置”是不生效的,用户可以通过继承smartbi.daq.Excelimport.DefaultRuleValidator保留缺省的校验设置。
    示例:扩展设置-规则校验类。
  • 数据处理类:缺省情况下,系统使用smartbi.daq.Excelimport.DefaultRowDataImporter处理每一行数据,如果用户需要实现自己的导入数据的逻辑,可设置该类,并必须实现smartbi.daq.Excelimport.IRowDataImporter接口。
    示例:扩展设置-数据处理类。

参数布局设置

若导入规则中的参数具有前后逻辑关系,但是在导入时参数顺序乱了,这时我们可以通过参数布局设置来调整参数位置。

设置参数布局前:

设置参数布局后: