1. 概述
关系数据源是指从Smartbi关系数据源中读取的表数据。
2. 输入/输出
输入 | 没有输入端口。 |
---|---|
输出 | 只有一个输出端口,用于输出数据到下一节点资源。 |
3. 参数配置
设置关系数据源的参数:
设置说明如下:
参数 | 说明 |
---|---|
数据源 | 选择数据源,这些数据源是Smartbi中连接配置好的关系数据源,必填。 |
SCHEMA | 选择SCHEMA,必填。 |
表名 | 选择表,必填。 |
分区设置 | 把表数据相对平均分成多个分区,抽取程序会尽可能一个分区分配一个线程进行并行抽取,能够极大的提高大数据量情况下的数据抽取性能。详情请参考 分区设置 。 |
选择列 | 用于筛选节点输出的列,适用于大数据量情况下,提升数据导出速度。 |
SQL语句 | 通过SQL语句设置where条件,过滤出表中的数据用于工作流。 |
节点高级设置 | 用于配置JDBC读取数据时的connection以及fetchsizes属性详,请参考 节点高级设置 。 |
4. 分区设置
把表数据相对平均分成多个分区,抽取程序会尽可能一个分区分配一个线程进行并行抽取,能够极大的提高大数据量情况下的数据抽取性能。这里关键在于如何把表数据相对平均分成多个分区,具体按照下面步骤进行:
4.1 查询数据分布
查询数据分布是为了通过数据分布图表,直观展现出每个字段数据分布情况,帮助挑选出数据分布最为均匀的字段。
- 分区数量:表示把数据切分成多少个分区,系统会提供默认值,一般不需要修改,系统提供的默认值取决于分配给ETL执行引擎的cpu核数。
- 采样条数:对表数据进行采样条数,因为全量数据做数据分布计算性能较差,所以只能做数据采样。
点击“刷新”按钮,就展现出数据分布图表,并默认选中数据分布最为均匀的字段。因为是基于采样的数据进行计算,所以展现出来的结果不是绝对准确的。如果对表的数据比较了解的话,可以换选更加合适的字段作为分区字段,比如这里我们换选LO_ORDERDATE字段作为分区字段:
4.2 生成分区条件
如图所示,点击生成分区条件按钮,便根据上面设置的分区数量跟选中的分区字段,生成分区条件,每个分区条件对应到一个数据分区。
4.3 计算分区条数
由于生成的分区条件不确定是否可以把表的数据均匀切分,可以点击计算分区条数按钮进行计算每个分区的记录条数。
4.4 调整分区条件(可选)
如果觉得数据分区并不均匀,可以对分区条件进行修改,每个分区条件都可以修改,不过这里修改要注意,要保证这些分区条件能覆盖到所有的数据。
至此,完成了分区设置,以上图的例子,已经比较均匀把数据分成8个分区,执行的时候每个分区就会有对应一个线程对数据进行抽取,总共就有8个线程并行抽取,理论上性能随着并行数量线性提升。
注意:如果表的数据量比较大,上面每个步骤的操作可能会有一定耗时,请耐心等待。
5. 自定义驱动
使用前请确保数据源连接界面测试连接通过,并在挖掘引擎所在服务器配置好了需要的IP映射。
对于自定义驱动的业务库数据源,在部署数据挖掘引擎时需要将驱动包放到部署挖掘引擎主机的<smartbi-engine-bin>/conf/lib对应数据库的目录里面。然后重启数据挖掘服务。
操作步骤:
- 找到目录conf\lib 找到对应的目录。
- 将自定义jar包放入目录。
- 重启引擎。
6. Kerberos/other驱动
使用前请确保数据源连接界面测试连接通过,并在挖掘引擎所在服务器配置好了需要的IP映射。
6.1 常规使用:一个数据源单Kerberos用户
操作步骤:
- 找到目录conf\standalone-lib(如Impala则对应目录是IMPALA-Kerberos)。
- 将所需的jar包以及验证文件(keytab、conf等文件)全部放入. 示例(apache-hive):
- 重启引擎。
6.2 多用户:同一个数据库环境不同Kerberos文件
假设以下两个数据源连接:first_hive 、second_hive
操作步骤:
- 找到目录conf\standalone-lib
- 新建以下两个目录名称:HADOOP_HIVE-Kerberos-first_hive、HADOOP_HIVE-Kerberos-second_hive
- 放入对应的jar包和验证文件。
- 重启引擎。
注:OTHER数据源同上使用逻辑,单用户时放入conf\standalone-lib\OTHER 目录。多用户时以 OTHER-数据源连接的真名,新建目录。
7. 节点高级设置
功能入口,如下图:
配置界面,如下图。配置说明:
QUERY_JDBC_FETCHSIZE 为引擎内读取一次数据的批次(jdbc的fetchsize可以参考网上类似的文档说明jdbc_fetchsize说明)、对性能有较大影响,若需要根据数据库不同环境配置JDBCl连接的属性,需要带上connprop.(注意有点:.)的前缀。且大小写严格区分。