连接数据
数据加工和分析需要连接已存在的数据,通常是业务系统的数据或文件数据,业务系统数据一般存储在关系型数据库中。对于存储在json文件中的,也可以通过脚本数据加工的方式获取数据。
在数据模块下,点击新建,可以选择不同的连接方式:
1、数据库连接
2、上传数据文件
数据源管理
数据库连接属性设置
连接属性设置包含基础配置和高级配置,基础配置是必填项,高级配置是选填项。
基础配置
名称:项目中引用数据源时显示的名称(引用方式详见项目数据管理设置),用户可自定义,新建后不能修改
描述:描述该数据源的业务用途
用途:根据权限不同,分为只读和可写。只读只允许读取数据,可写允许对数据和表结构进行修改。如果用户只有只读权限,但是用途设置为可写,数据库仍然能连接,但是写入数据时会提示用户没有权限,无法写入数据。
地址:输入数据库地址和端口号,若输入的地址IP中带有端口号和数据库名,系统会自动识别填充
数据库名:需要连接的物理数据库名称
用户名:连接数据库用到的账户
密码:连接数据库用到的密码
高级配置
JDBC URL:数据库连接时,用来连接到指定远程数据库标识符。用户输入ip、数据库名和数据库类型后会自动生成一个JDBC URL。反之,输入JDBC URL也会自动生成ip、数据库名和数据库类型
最大连接数:数据库连接池的最大连接数,设置为100就是同时只能有100个连接在执行sql,若超过100个系统就会报错并显示超过最大连接数
等待超时(秒):数据库连接的最大等待时间,若数据库连接超过设置的时间,数据库会强行断开已有的连接
有效性检查:用于获取连接时检查连接是否有效
镜像库:启用镜像库功能,镜像库是数据库本身的能力,系统可以利用数据库的镜像能力做到读写分离和分散查询压力,增加系统的承压能力
镜像库URL:启用镜像库功能后,需要配置镜像库的地址
镜像同步延迟时间:设置一个镜像库延迟读取时间,用于修改模型数据后,是否延迟读取镜像库数据。单位秒,默认0,表示不延迟,可以直接查镜像库。比如:期望修改后5分钟内,只查主库,则设置为300
自定义属性:用于数据源的特定参数,详见数据源自定义属性
数据源自定义属性
有些数据库要设置特定的属性,用于指定在数据源中管理表时的默认属性或者用于优化性能。这些属性通常是来自数据库内部的定义,也有产品内置的属性。在自定义属性框中以名值对的形式设置属性,如databaseStatisticsSchedule=true,不同的数据库类型设置的属性也不一样,可参考jdbc配置文件格式。
默认数据库
默认数据库用来存储系统表和元数据,比如default库,除迁移环境时需要修改默认数据库以外,其它情况下不建议直接修改默认数据库,修改默认数据源时,修改的数据源属性会保存到工作目录的jdbc.conf文件中。详见工作目录和默认数据库配置。
数据库表管理
系统提供了数据库表的管理功能,在数据模块下的数据源中,可以查看各个数据源的数据库表,右键选中的数据库表,可对其进行操作管理,如导入为模型、查看数据、导入数据库表、导出数据库表、血统分析以及其他通用文件操作等,如下图所示:
查看数据库表信息
右键数据库表,弹出的菜单选项中,提供了多个查看快捷选项,如下所示:
- 新建查询:打开SQL查询窗口并默认输入当前表的查询语句
- 查看数据:打开数据列表查看页面,可分页查看表中的数据
- 查看结构:打开字段列表页面,可查看数据库表的字段定义
- 查看DDL:打开SQL页面,显示当前数据库表的创建语句
数据库表操作
数据库表也可以像系统资源文件一样进行导入和导出、复制、重命名、刷新等操作。具体如下所示:
数据库错误提示排查
数据源配置
-
连接数据库失败,与数据库管理员确认,配置正确的数据源属性。
-
数据源连接数量超过上限
当系统在线用户增多时,对数据库的访问量也会增大,数据源默认有连接数限制,建议增大数据源属性中的最大连接数,或者部署集群分担压力。
数据库错误
-
该数据库无法流式写入数据
提取文件数据源数据需要使用LOAD DATA INFILE语句,Mysql默认未启用,联系数据库管理员在Mysql配置文件中添加loose-local-infile=1
,并重启Mysql服务。在数据库服务器启用后,若仍然出现该异常,则确认数据源属性的URL中是否存在allowLoadLocalInfile=true
。 -
数据库函数不存在
可能原因:
1、当前数据库版本不支持使用该函数,或用户没有该存储过程的执行权限。
解决方法:
1、使用SuccBI提供的函数时出现该异常:低版本数据库未支持窗口函数,与数据库管理员确认数据库版本是否符合推荐版本中的要求,例如Mysql8+、Oracle9+。
2、使用SQL直通函数时出现该异常:与数据库管理员确认,使用的自定义函数是否已在数据库正确创建。 -
数据已存在
可能原因:
该问题可能由于插入数据的主键已经在目标表中存在,不允许再次插入。
解决方法:
数据加工时出现该异常:解决主键数据重复问题,可使用加工中的去重节点。
SuperPage新增数据时出现该异常:确认绑定主键的输入组件值不重复;例如新增ID,可将对应输入组件默认值设置为UUID()。 -
缺少执行权限
可能原因:
1、没有该存储过程或自定义函数的执行权限。
解决方法:
若调用存储过程、自定义函数时出现该异常,请确认当前数据源用户是否拥有该存储过程或自定义函数的执行权限。
若调用数据库常见函数时出现该异常,检查函数调用是否存在拼写错误、数据源的数据库版本是否支持此函数。 -
无权限访问数据库或表
与数据库管理员确认,当前数据源用户的权限设置是否符合需求。 -
数据长度超出字段的最大长度
可能原因:
插入的数据某个字段过长,超过了表字段的最大限制长度。
解决方法:
确认超长的数据是否正确。
数据正确的情况下,增大异常字段的长度以满足插入数据的要求。 -
数据类型与字段的类型不一致
确认插入的数据类型是否正确。
数据正确的情况下,修改异常字段类型与数据一致。 -
表名长度超过数据库允许最大长度
可能原因
跨库复制数据表时,不同数据库表名长度限制不一样,目标数据库的表名长度限制小于来源库
重命名物理表时,输入的表名超过数据库表名长度限制
解决方法:
复制数据表时,修改目标物理表表名,缩小表名的长度
重命名物理表时,缩小输入的表名的长度 -
对象不存在
数据库表被重命名或删除,恢复或重新创建数据库表。
数据库失效,与数据库管理员确认后,修改数据源属性指向有效数据库。 -
非空字段或主键字段不允许提交空值
补充该字段的值,使该值不为null。
或是根据业务需求,修改表结构,将字段设置成可以为空。 -
数据类型转换错误
可能原因:
可能是因为关联字段的数据类型不一致,如整型字段与非整型字段进行比较或关联。
解决方法:
确认关联的字段类型是否一致。
将字段转成相同类型再进行比较,如使用TOSTR(1.2345,“0.000”)=“1.235”,把其他类型转成str类型再进行比较。
或调整表格字段类型,做到类型一致。 -
无法将不同类型的数据进行比较转换
可能原因:
该问题出现在vertica数据库中,原因可能是将两个不同类型的数据进行比较或是关联导致。
解决方法:
请确认进行比较或关联的字段的类型是否一致,如果不一致可以使用TOSTR(1.2345,“0.000”)="1.235"等函数转成一致。
或调整表格字段类型,做到类型一致。 -
无法join多个其他表
可能原因:
可能是由于项目设置中Oracle使用Join语句选项被取消。若想继续使用join多个其他表,建议勾选。
解决方法:
打开 项目设置>数据。
勾选 Oracle是否使用join语法,点击保存。 -
SQL语法错误
可能原因:
使用了当前数据库不支持的语法。
类型转换函数,格式不对。
加工的sql组件、sql数据源、raw函数、直接sql查询等都可能导致sql语法错误。
解决办法:
检查语法,使用符合当前数据库的语法。 -
行长超过最大限制
可能原因:
MySQL数据库限制了行的最大长度(不包括BLOB和TEXT),在MySQL 8.x中,最大不能超过65535字节
解决办法:
检查数据模型中字符字段的长度,缩短长度为合理值
对于字符长度很大的字段,将其类型修改为CLOB -
GROUP_CONCAT超过最大限制
可能原因:
MySQL数据库通过参数group_concat_max_len限制了GROUP_CONCAT函数返回的最大长度,默认为1024。
对于Oracle数据库,SuccBI中的GROUP_CONCAT函数翻译为Oracle中的listagg,listagg使用时结果长度超过4000会报错
解决办法
在MySQL配置文件(linux/mac下是my.cnf,windows下是my.ini)的[mysqld]下修改参数设置为group_concat_max_len=102400,102400具体的值可以根据实际情况调整。
对于Oracle数据库,可以在SuccBI的GROUP_CONCAT函数中给maxlength参数指定一个大于4000的值来解决,具体参见GROUP_CONCAT函数的使用。
调度管理
调度管理(计划任务)负责将系统中的大量的数据加工模型定时执行并提取到最新状态。调度管理可以自动识别各加工模型间的依赖关系,智能的安排调度的并发和先后次序,尽量在最短的时间窗口内将模型数据提取完成。
计划管理
一个计划表示一个定时执行的“批次”,计划内包含了一批任务,当计划设定的时间条件触发时系统将会开始调度计划并执行计划内的任务。
增删计划
新建计划:在计划页面,点击新建,在弹出的添加计划对话框设置相关属性后,点击确认按钮
删除计划:勾选计划,点击左上角的删除按钮,需要注意的是计划被删除后,不能撤销
日志
计划或者任务执行的详细日志,包括执行SQL,提取的数据行数、异常报错等信息。
流向图
流向图展示了计划内各个任务间的依赖关系,在计划执行过程中,也可以在流向图中看到模型执行的顺序,数据流向等。
查看流向图
在计划页面点击计划名称,在左侧导航栏选择流向图标签,查看最新执行任务流向图。
鼠标移动到流向图的模型上,会浮动出模型的名称、路径、最新调度等信息;右键出现的菜单选项中提供如下操作:
1、定位到:系统会定位到当前任务对应的模型中,点击浏览器的返回按键可以回到流程图界面。
2、查看:当流向图展示的任务太多时,可以选择只查看当前任务的来源、只查看当前任务的影响或者查看当前任务的来源和影响。
3、执行:可以根据需要选择仅执行当前任务的数据提取,或者执行当前任务的所有来源、执行当前任务的所有影响、执行当前任务的所有来源和影响。