页面树结构
转至元数据结尾
转至元数据起始

界面介绍

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

2、Excel补录模板管理:需要上传Excel模板,以便补录用户可以下载模板并录入数据。

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

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


基本设置

设置项说明如下:

名称说明
数据源

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

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

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

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

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

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

结束行

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

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

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

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

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

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

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

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

数据处理模式选择全量时,支持配置主键校验方式。

如果Excel文件数据量较少,使用 内存校验 可以优化性能;如果Excel文件数据量较多时,请选择 数据库校验

  • 内存校验:通过Java校验Excel文件自身内容是否存在主键冲突;
  • 数据库校验:通过数据库校验Excel文件自身内容是否存在主键冲突;
主键冲突处理规则

数据处理模式选择增量时,支持配置主键冲突处理规则。

主键冲突处理规则指当Excel中要导入的数据与数据库中已有数据的主键重复时的处理规则,可以是执行更新操作,或者抛出主键冲突的异常信息。

注意,这里的“主键”是“列设置”中用户指定的主键列,并不一定是数据库表的主键,但列设置中的“主键”也需要满足数据唯一性。

  • 更新:主键重复时,更新数据。
  • 异常处理:主键重复时,抛出主键冲突的异常,并通过“异常处理规则”处理这个异常。
移除空格设置是否启自动去除单元格数据前后的空格,默认选择“是”。
是否开启批量

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

  • 开启批量:每执行1000条SQL或结束扫描Excel时提交一次事务,性能较好;
  • 关闭批量:每次单独执行一条SQL,性能较差。

批量导入与主键冲突情况:
1、【主键冲突处理规则】选择【更新】时,无论是否开启【是否开启批量】,有主键冲突的时候都会更新,且显示导入行数为导入文件的数据的总行数。数据库主键设置唯一时,当数据库提交事务,如果两条相同的数据也只会导入一条
2、【主键冲突处理规则】选择【作为异常处理】时:

  • 开启批量导入:冲突行后数量将不导入。导入行数为冲突行前导入的行数;若在同一个批量里有两条一样的数据(和设置的主键重复),其也会一同导入,因为此时还未回写到数据库中,即还没有提交事务,所以无法判断此字段是否和其他字段冲突,故全部导入。
  • 关闭批量导入:跳过冲突行,后续数据继续导入。导入行数为总行数减去异常行数。


列设置

设置项说明如下:

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

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

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

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

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

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

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

当前行号:返回当前导入的Excel文件对应的行号。

  • 根据指定列生成唯一id:指定多列,将多列的值使用_拼接在一起,生成一个新的值插入到字段中。

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


按文件绑定

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

如数据库表结构:

Excel文件内容:

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

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

校验设置

校验规则设置项如下:

设置项说明
字符长度用于设置限制字符长度。
值域范围用于设置只允许选择值域列表中的某个值。
范围检验用于设置数据的范围。
正则表达式

用于设置Java语法的正则表达式,例如设置“必须是小数”、“必须是小写字母”等。

  • 测试表达式:通过输入值来测试正则表达式是否正确。
  • 帮助:用于帮助用户快速了解正则表达式语法及常用示例。
自定义提示

正则表达式不匹配时,用于设置提示信息。

该项未设置时,显示系统默认提示信息。

扩展设置

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

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

参数布局设置

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

设置参数布局前:

设置参数布局后: