1. 概述
关系数据源是指从Smartbi关系数据源中读取的表数据。
支持数据库
目前支持:
MySQL,Oracle,Clickhouse,DB2,SQL Server,Vertica,Inforbright,Presto,Hive,星环-Inceptor,Postgresql,GreenPlum,Gauss100,Gauss200,Gbase 8A,Gbase 8S,Gbase 8T,达梦6,达梦7,Sybase,Hana,Aliyun AnalyticDB,Aliyun MaxCompute、MariaDB,华为Fusioninsight,Teradata、Teradata_V12、神通(单节点/集群)、Kingbase、Kingbase_V8、Kingbase AnalyticsDB、Informix、Obase、Kylin(麒麟)、Impala、MonetDB、starRocks(社区版2.2.2)、Rapids(博睿)、OceanBase、OceanBase_Oracle、SelectDB、SparkSQL、Other、TIDB、MogDB、PanWeiDB、YMatrix、磐维、ByteHouse、Doris、ArgoDB。
注:
以上支持数据源范围,仅以V11版本为准,其他版本的支持情况,请移步对应版本的Wiki。
- 某些数据源以Kerberos方式验证登录,当前已全部支持。详情请参考 Kerberos/other驱动放置说明
- 若需自定义业务数据源的驱动版本,详情请参考 自定义驱动放置说明
- 以下数据源未内置驱动,请先放置驱动同自定义驱动放置说明,重启引擎再尝试执行:达梦8、hive、Kylin(麒麟)、Impala、oceanbase、Aliyun MaxCompute、Rapids(博睿)、Doris、ArgoDB。
- 由于doris使用的是mariadb的驱动,且要自定义放置驱动包,所以引擎端需要按照自定义放置步骤,把驱动放在conf\lib\maria目录下,并重启引擎进程。另外厂商提供的mariadb的驱动无法兼容mariadb数据库,所以doris和mariadb无法同时运行, 除非厂商能另外提供兼容版驱动。
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对应数据库的目录里面。然后重启数据挖掘服务。
操作步骤:
1.找到目录conf\lib 找到对应的目录。
2.将自定义jar包放入目录。
3.重启引擎。
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.(注意有点:.)的前缀。且大小写严格区分。