WSO2 Siddhi RDBMS 存储扩展 - 如何将 batchEnable 设置为 false

WSO2 Siddhi RDBMS Store Extension - how to set batchEnable to false

我正在使用 siddhi 创建一些也与 PostgreSQL 数据库交互的应用程序。虽然我不确定,但我相信,在单个事件中对同一个 PG table 进行多次更新存在错误(即在收到事件后,更新 table 中的记录,并在同一个 table 中再次创建另一个)似乎批量更新导致了一些问题。所以,我只想在禁用 batchUpdate(默认情况下启用)后尝试一下。我只是不知道如何使用 siddhi-sdk(通过 Intellij 插件)配置它。有两张相关的票: https://github.com/wso2-extensions/siddhi-store-rdbms/issues/43 https://github.com/wso2/product-sp/issues/472 在记录这些内容之前,我希望获得一些关于如何设置这些字段的快速响应。

此致...

I'm using siddhi to create some app which also interacts with PostgreSQL DB. Although I'm not sure, I believe, there is a bug about making multiple updates on the same PG table, within a single event (i.e. upon receiving an event, update a record in the table, and create another one again in the same table) it seems the batch updates are causing some problems.

当 batchEnabled 设置为 true 时,它​​将对一批事件执行 insert/update 操作,而不是对每个事件执行这些操作。简单地说,这是为了提高性能而引入的。

此参数的默认值当前设置为"true"。 但是,batchEnable 配置是通过名为“{{RDBMS-Name}}.batchEnable”的系统参数完成的,该参数必须在 WSO2 流处理器的 deployment.yaml

中进行配置

如果您想在 Product-SP 中覆盖此 属性,请按照以下步骤操作。

  1. 打开位于{Product-SP-Home}/conf/editor/

    中的deployment.yaml文件
  2. 在文件中插入以下行。

siddhi: extensions: extension: name: store namespace: rdbms properties: PostgreSQL.batchEnable: true

但目前无法从 siddhi 应用程序级别覆盖这些系统配置。由于您使用的是 SDK,您可以将上述参数的默认值更改为“false”。

请按照以下步骤进行操作。

  1. 在siddhi中找到siddhi-store-rdbms-4.x.xx.jar文件 SDK。它位于 {siddhi-sdk-home}/lib/ .

  2. 使用存档管理器打开 jar 文件并打开 rdbms-table-config.xml 文件用文本编辑器位于其中。

  3. <batchEnable>true</batchEnable>属性下设置false <database name="PostgreSQL"> 标记并保存。

谢谢瑞文。在 "extension" 之前用一个简单的破折号 (-) 我可以设置配置。

siddhi: 
  extensions: 
   - extension:
       name: store
       namespace: rdbms
       properties: 
         PostgreSQL.batchEnable: false