输出节点
输出节点是整个流程的最后的节点,在一个流程当中可以有一个或多个输出节点,不同的输出节点,可以定义不同的输出目的地。
在 BaskAdapt 当中输出节点就是要流程处理好的数据输出到目标数据库表当中,以便于对数据进行进一步的分析展示。
创建输出节点
创建输出节点的方法比较简单,就是在目标节点后添加一个输出节点即可,如下图:
当然,如果已添加了一某个输出节点,而前一节点被删除,我们也可以通过拖动方式将任意节点与这个输出节点建立连线,如下图:
事实上,这个方法除了可用在输出节点外,对其它非开始数据集节点同样适用。
输出配置
输出节点配置比较简单。
如上图所示,它有两个页签,第一个页签用于指定输出的目标库表以及输出时写入数据的选项;第二个页签用于配置在写入数据前或后执行一段 insert 或 update 类型的 SQL。
输出表指定表
连接属性用于指定目标数据库连接,这个列表中罗列的是已添加到当前数据数据流程的数据库连接,这个连接即可以是数据处理流程中直接配置的数据库连接,也可以是服务器数据源中的数据库连接。
需要注意的是,如果是服务器数据库连接,那么只能是服务器中配置的通过 JDBC 连接的数据库连接,而不能是服务器配置的虚拟数据源或其它类型的数据连接。
选好数据库连接后,下方的表属性会罗列出当前连接中对应的表,我们可以选择一个目标,也可以在下拉列表的过滤输入框中输入一个不存在的表名,然后选择它,这样在执行数据处理流程时,系统会自动创建这个不存在的表,如下图所示:
写入选项属性共有三个可选。
- 创建表:使用流程数据创建或重新创建(如果文件已经存在)数据表,也就是如果选择此选项,每次执行时,如果目标表已存在,都会先将其删除。
- 追加到表:在现有表中添加新行。如果表不存在,则创建一个,并且后续流程运行会向该表添加行。
- 替换数据:此选项删除现有表中的数据并将其替换为流程中的数据,但保留数据库表的结构和属性。如果表不存在,则在首次运行流程时创建该表,并且在每次后续流程运行时,表数据将替换。
自定义 SQL
输入您的自定义 SQL 并选择是在将数据写入数据库表之前、之后运行您的脚本。您可以使用这些脚本在将流程数据写入表之前创建数据库表的副本、添加索引、添加其他表属性、删除或更新某些表中的数据等等。
正如 SQL 编辑框提示,在输入 SQL 时支持使用表达式,可以在 SQL 中嵌入表达式,如下面的 SQL:
update orders set count=0 where order_date>${$orderDate}
上面的 SQL 中在更新 orders 表的 count 字段时,对 order_date 的限制条件是大于流程中定义的名为 orderDate 的参数。
当然也可以直接使用表达式返回一个 SQL:
${
if ($orderDate > now()){
return "update orders set count=0 where order_date>${$orderDate}"
}else{
return "update orders set count=0 where order_date>${now()}"
}
}
上面的脚本中,使用${}包裹,表示内容是一段 BaskAdapt 脚本,通过对 orderDate 参数值与当前日期进行比较,从而返回不同类型的 SQL,需要注意的是,返回的 SQL 中还可以再嵌入表达式。