插入/更新
组件介绍
"插入/更新"组件可以根据"查询字段"在给定数据库中查找到匹配的记录,如果没有记录被检索到,则添加一行.当"更新字段"中的值与数据库存储的值不同时,则执行更新操作.如需更新的值与数据库存储的值相同,则实际不执行操作.
- 输入:数据库连接、目标表
- 输出:被更新的数据库数据
- 参数:查询字段、更新字段
标签介绍
基本配置标签页
页面介绍:
数据库连接 | 写入数据的数据库连接 |
---|---|
目的模式 | 写入数据的表名称 |
目标表 | 您要在其中插入或更新的表的名称 |
提交记录数量 | 一次(插入/更新)的行数 |
不执行任何更新 | 如果启用,则永远不会更新数据库中的值,仅执行插入 |
查询字段标签页
页面介绍:
表字段 | 数据表中用于匹配的字段 |
---|---|
比较字符 | =,=〜NULL,<>,<,<=,>,> =,LIKE,BETWEEN,IS NULL,IS NOT NULL 等比较规则 |
流里的字段1 | 流数据中用于匹配的字段1 |
流里的字段2 | 为了满足某些二元运算而提供的流数据字段2 |
更新字段标签页
页面介绍:
表字段 | 数据表中被更新的字段 |
---|---|
流字段 | 流数据用于更新的字段 |
更新 | 是或否 |
使用案例
以下是一个从 sakila 数据库中加载 dim_location_address 维度表的实例,它首先通过数据库查询获取到维度表最近一次更新的时间。并且根据该时间获取最新的增量数据。同时通过数据库查询使得插入数据保持一致性,最后通过插入/更新组件来加载维度表。具体内容详见2.8 处理维度表。为方便起见读者可直接使用下方数据。
sakila-schema.sqlsakila-data.sql
sakila_snowflake_schema.sql
其中 "插入/更新 dim_location_address" 的设置如下
通过 navicat 可以查看到其中插入与更新的数据。