我正在使用siddhi创建一些也与PostgreSQL DB交互的应用程序。虽然我不确定,但我相信,在单个事件中(即在收到事件时,更新表中的记录,然后再次创建另一个事件),在同一个PG表上进行多次更新存在一个错误。同一个表)似乎批量更新导致了一些问题。所以,我只想在禁用batchUpdate后尝试一下(默认情况下启用它)。我只是不知道如何使用siddhi-sdk(通过Intellij插件)配置它。有两张相关的门票: https://github.com/wso2-extensions/siddhi-store-rdbms/issues/43 https://github.com/wso2/product-sp/issues/472 在记录这些内容之前,我想快速回复一下如何设置这些字段。
最好的问候......
答案 0 :(得分:1)
我正在使用siddhi创建一些也与PostgreSQL DB交互的应用程序。虽然我不确定,但我相信,在单个事件中(即在收到事件时,更新表中的记录,然后再次创建另一个事件),在同一个PG表上进行多次更新存在一个错误。同一个表)似乎批量更新导致了一些问题。
当batchEnabled设置为true时,它将对一批事件执行插入/更新操作,而不是对每个单个事件执行这些操作。简单来说,这是为了提高性能而引入的。
此参数的默认值当前设置为" true"。 但是,batchEnable配置是通过名为" {{RDBMS-Name}}的系统参数完成的.batchEnable"必须在WSO2 Stream Processor的deployment.yaml
中进行配置如果您想在Product-SP中覆盖此属性,请找到以下步骤。
打开位于 {Product-SP-Home} / conf / editor /
在文件中插入以下行。
siddhi:
extensions:
extension:
name: store
namespace: rdbms
properties:
PostgreSQL.batchEnable: true
但目前无法从siddhi应用程序级别覆盖这些系统配置。由于您使用的是SDK,因此您可以将上述参数的默认值更改为" false "。
请找到以下步骤。
在siddhi中找到 siddhi-store-rdbms-4.x.xx.jar 文件 SDK。它位于 {siddhi-sdk-home} / lib / 。
使用存档管理器打开jar文件并打开 rdbms-table-config.xml 文件位于其中,带有文本编辑器。
在<batchEnable>true</batchEnable>
属性下设置false
<database name="PostgreSQL">
标记并保存。
答案 1 :(得分:1)
谢谢拉文。在“扩展”之前使用简单的短划线( - )我可以设置配置。
siddhi:
extensions:
- extension:
name: store
namespace: rdbms
properties:
PostgreSQL.batchEnable: false