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