页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

信息
title支持数据库

目前支持:

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、磐维。SparkSQL、Other、TIDB、MogDB、PanWeiDB、YMatrix、磐维、ByteHouse。


注:

以上支持数据源范围,仅以V11版本为准,其他版本的支持情况,请移步对应版本的wiki。

1. 某些数据源以Kerberos方式验证登录,当前已全部支持。详情请参考 Kerberos/other驱动放置说明

2.若需自定义业务数据源的驱动版本,详情请参考  自定义驱动放置说明

3.以下数据源未内置驱动,请先放置驱动同自定义驱动放置说明,重启引擎再尝试执行:

达梦8、hive、Kylin(麒麟)、Impala、oceanbase、Aliyun MaxCompute、Rapids(博睿)。



输入/输出

输入

没有输入端口。
输出只有一个输出端口,用于输出数据到下一节点资源。

参数配置

设置关系数据源的参数:

设置说明如下:

参数

说明

数据源选择数据源,这些数据源是Smartbi中连接配置好的关系数据源,必填。
SCHEMA选择SCHEMA,必填。
表名选择表,必填。
分区设置

把表数据相对平均分成多个分区,抽取程序会尽可能一个分区分配一个线程进行并行抽取,能够极大的提高大数据量情况下的数据抽取性能。详情请参考 分区设置 。

选择列

用于筛选节点输出的列,适用于大数据量情况下,提升数据导出速度。

Image Modified

SQL语句通过SQL语句设置where条件,过滤出表中的数据用于工作流。
节点高级设置

用于配置JDBC读取数据时的connection以及fetchsizes属性详,请参考 节点高级设置 。


分区设置
分区设置

分区设置

把表数据相对平均分成多个分区,抽取程序会尽可能一个分区分配一个线程进行并行抽取,能够极大的提高大数据量情况下的数据抽取性能。

如图设置分区字段“累计治愈”的分区数量为4,最小值为1,最大值为20,则系统会以(-∞,5)、[5,10)、[10,15)、[15,+∞)这4个区间来并行读取数据,提升数据抽取性能。

Image Removed

  • 分区字段(必填):分区字段为数值型(不支持浮点型)、日期类型。
  • 分区数量(必填):设置抽取分区的数量,正整数。
  • 分区字段最小值/分区字段最大值(必填):在设置的最小值和最大值的区间中抽取数据。

分区字段的选取:

  1. 选择的字段尽可能把数据按照不同区间,相对平均分成多个分区。

  2. 在分区表中,可以选择创建分区表时选择的字段作为分区字段。如果不是分区表,建议选取一些比较有区分度的字段。例如在一张用户表中,“年龄”比“性别”字段更具有区分度,因此可以选择“年龄”作为分区字段。

使用场景:在一家互联网类企业中,用户使用产品的日志表按天或按季度做成的分区表,可以通过分区抽取数据,提升抽取性能。

这里关键在于如何把表数据相对平均分成多个分区,具体按照下面步骤进行:

1. 查询数据分布

查询数据分布是为了通过数据分布图表,直观展现出每个字段数据分布情况,帮助挑选出数据分布最为均匀的字段

Image Added

分区数量:表示把数据切分成多少个分区,系统会提供默认值,一般不需要修改,系统提供的默认值取决于分配给ETL执行引擎的cpu核数。

采样条数:对表数据进行采样条数,因为全量数据做数据分布计算性能较差,所以只能做数据采样

点击刷新按钮,就展现出数据分布图表,并默认选中数据分布最为均匀的字段。因为是基于采样的数据进行计算,所以展现出来的结果不是绝对准确的,

如果对表的数据比较了解的话,可以换选更加合适的字段作为分区字段,比如这里我们换选LO_ORDERDATE字段作为分区字段:

Image Added


2. 生成分区条件

Image Added

如图所示,点击生成分区条件按钮,便根据上面设置的分区数量跟选中的分区字段,生成分区条件,每个分区条件对应到一个数据分区。

3.  计算分区条数

Image Added

由于生成的分区条件不确定是否可以把表的数据均匀切分,可以点击计算分区条数按钮进行计算每个分区的记录条数

4.  调整分区条件(可选)

Image Added

如果觉得数据分区并不均匀,可以对分区条件进行修改,每个分区条件都可以修改,不过这里修改要注意,要保证这些分区条件

能覆盖到所有的数据。  

至此,完成了分区设置,以上图的例子,已经比较均匀把数据分成8个分区,执行的时候每个分区就会有对应一个线程对数据进行抽取,

总共就有8个线程并行抽取,理论上性能随着并行数量线性提升。

注意:如果表的数据量比较大,上面每个步骤的操作可能会有一定耗时,请耐心等待。


自定义驱动放置说明
自定义驱动放置说明

自定义驱动放置说明

...

2.将所需的jar包以及验证文件(keytab、conf等文件)全部放入. 示例(apache-hive):

Image Added

3.重启引擎


多用户:客户场存在 同一数据库环境但是不同kerberos验证文件的场景。

...

配置界面,如下图。配置说明:
QUERY_JDBC_FETCHSIZE为引擎内读取一次数据的批次、对性能有较大影响,为引擎内读取一次数据的批次(jdbc的fetchsize可以参考网上类似的文档说明jdbc_fetchsize说明)、对性能有较大影响,若需要根据数据库不同环境配置JDBCl连接的属性,需要带上connprop.(注意有点:.)的前缀。大小写严格区分

...