siddhi - 在 siddhi 文件中更新或插入以忽略不可用的字段,而不是更新所有字段
问题描述
我有一个 siddhi 文件可以从 kafka 主题中读取并写入数据库。
@store(type='rdbms' , datasource='WSO2_CLUSTER',table.name='sample_table')
define table sample_table(col1 string, col2 string, corr_id string);
from kafkaInputMetricCorr
select col1, col2, corr_id
update or insert into sample_table
on sample_table.corr_id == corr_id;
当我使用此“更新或插入”功能时,它会更新所有字段(col1、col2、corr_id),即使该字段在 Kafka 事件中不可用。当 kafka 消息具有“col1 和 corr_id”时,我只想更新 col1 和 corr_id。现在发生的事情是,它将 col2 更新为空。我什至尝试更改为
select *
希望仅更新 Kafka 事件中可用的字段。但它不起作用。请帮助解决这个问题。谢谢。
解决方案
如果您不想更新所有字段,则必须使用 set 子句,https://siddhi.io/en/v5.1/docs/query-guide/#update-or-insert
from kafkaInputMetricCorr
select col1, col2, corr_id
update or insert into sample_table
set sample_table.col1 = col1, sample_table.corr_id = corr_id
on sample_table.corr_id == corr_id;
推荐阅读
- css - Bootstrap4:如何在移动视图中将项目 C 推到底部
- php - 将间隔的表格文本转换为数组。去掉 2 个以上的空格
- python - 熊猫问题与外国信件
- java - 在运行时使用方法的返回类型进行转换的 Scala 反射
- android - 如何解决 Duplicate class java.lang.RuntimeException: Duplicate class com.google.zxing.client
- javascript - 为什么在重新渲染页面之前调用 componentWillRecieveProps()?
- java - 单击recyclerview中的列表之一时如何关闭活动?
- java - 使用 java netcdfAll 读取 NOAA CFS (grib) 文件
- amazon-web-services - 调整正在运行的 Amazon EC2 实例的大小
- c - 在 Keil 中使用 Arcom 的 C 嵌入式程序的目标和板