0

在我的项目中,我需要收集数据、处理/分析数据并将其发布。我正在使用 WSO2 DAS 3.0.0。

为了实现这一点,我遵循了以下步骤:-

  1. 创建事件流(定义属性)。
  2. 创建事件接收器。(HTTP、SOAP)
  3. 创建事件发布者(在 My sql 中存储事件,但在 SQL Server 中出现错误,请参见下文)。

我的问题如下:-

  1. 有没有其他方法可以在数据库中存储持久事件。我可以使用 Main->stream->persist 事件将事件存储在数据库中吗?我可以使用它在数据库中存储事件还是需要使用 Main->publishers。选择“输出事件适配器类型”-RDBMS 来存储事件?

  2. 我可以使用 SQL server 2008 将事件存储在 SQL server 2008 中吗?将数据存储到 SQL Server 2008 时出现以下错误。

无法执行创建表查询。数据库中已经有一个名为“tbl_City”的对象。因此事件被丢弃。

TID[-1234] [DAS] [2015-11-09 12:28:06,265] 错误 {org.wso2.carbon.event.output.adapter.rdbms.RDBMSEventAdapter} - 无法执行创建表查询。数据库中已经有一个名为“tbl_City”的对象。因此事件被丢弃。org.wso2.carbon.event.output.adapter.rdbms.RDBMSEventAdapter.createTableIfNotExist(RDBMSEventAdapter.java:416) org.wso2.carbon.event.output.adapter.rdbms.RDBMSEventAdapter.executeProcessActions(RDBMSEventAdapter.java:290) org.wso2.carbon.event.output.adapter.rdbms.RDBMSEventAdapter.executeProcessActions(RDBMSEventAdapter.java:290) wso2.carbon.event.output.adapter.rdbms.RDBMSEventAdapter.publish(RDBMSEventAdapter.java:134) org.wso2.carbon.event.output.adapter.core.internal.OutputAdapterRuntime.publish(OutputAdapterRuntime.java:62) org. wso2.carbon.event.output.adapter.core.internal.CarbonOutputEventAdapterService.publish(CarbonOutputEventAdapterService.java:143) org.wso2.carbon.event.publisher.core.internal。

请确认。

4

4 回答 4

0

感谢您提供的链接和信息,它真的对我有很大帮助。

我能够将事件保存到 SQL Server 2008 中。

我只是想添加我遵循的步骤:-

  1. 打开 \repository\conf\datasources\master-datasources.xml 更改数据源标签。更改 URL、用户名、密码、驱动器类名。

请按照以下链接了解详细步骤:-

https://docs.wso2.com/display/DAS300/Setting+up+Microsoft+SQL

  1. 打开 \repository\conf\datasources\analytics-datasources.xml 更改配置设置。更改 URL、用户名、密码、驱动器类名。例如

       "<datasource>
          <name>WSO2_ANALYTICS_FS_DB</name>
          <description>The datasource used for analytics file system</description>
          <definition type="RDBMS">
              <configuration>
    

    jdbc:sqlserver://localhost:1433;databaseName=testDAS sa ****** driverClassName>com.microsoft.sqlserver.jdbc.SQLServerDriver 50 60000 5 true SELECT 1 30000 "

  2. 对“WSO2_ANALYTICS_EVENT_STORE_DB”、“WSO2_ANALYTICS_PROCESSED_DATA_STORE_DB”进行类似的更改。

  3. 创建一个事件并在 SQL Server 表中检查它是否被捕获。在我的例子中,SQL 表是用名称“[ANX___7Lk3JrzI_]”创建的。

谢谢。

于 2015-11-17T16:24:30.727 回答
0

感谢您的回复。

是的,你是对的。我对事件/数据发布者感到困惑。我不想发布我的事件,我希望它存储在 SQL 服务器中。

请通过我的系统流程如下:-

外部系统会将数据推送到 DAS。我需要存储在 SQL 服务器中并需要处理以进行进一步分析的数据。

我为此做了以下步骤。

  1. 创建的事件流。定义 5 个属性。:- 完毕
  2. 创建事件接收器。暴露的 HTTP 端点。:- 完成
  3. 我需要将此数据存储到 SQL Server 2008 中。 - 待定

我可以将以下示例数据发布到 DAS。:-

"<events>
<event>
    <payloadData>
        <queueName>data3</queueName>
        <agentsOnThreshold>100</agentsOnThreshold>
        <agentsAvailThreshold>45</agentsAvailThreshold>
        <callsWtngThreshold>4</callsWtngThreshold>
        <avgWaitInSecThreshold>100</avgWaitInSecThreshold>
        <oldestCallInSecThreshold>45</oldestCallInSecThreshold>
    </payloadData>
</event>`enter code here`

"

所以我的问题是如何将上述数据存储到我在 DAS(事件接收器)中收到的 SQL 服务器中。

于 2015-11-12T23:40:49.050 回答
0

似乎您将事件发布者与数据发布者混淆了。

事件发布者用于将结果发布到外部系统以采取进一步的行动。事件发布者提供从 WSO2 DAS 向外部系统发送事件通知和警报的能力。

对于您的用例,您要做的就是将数据发布到 DAS。有几种方法可以做到这一点。请查看 [1] 以获取更多信息。

您还可以按照 DAS 快速入门指南 [2] 来更好地理解这些概念。

关于使用 SQL server 2008 的问题,是的,DAS 支持 Microsoft SQL server。

[1] https://docs.wso2.com/display/DAS300/Publishing+Data+to+DAS

[2] https://docs.wso2.com/display/DAS300/Quick+Start+Guide

于 2015-11-10T07:06:08.860 回答
0

为了持久化 DAS 正在为特定流接收的数据,您需要为其启用数据持久性。如果您还没有这样做,请关注 [1] 并保持流。

您可以通过使用 DAS 内置事件模拟功能 [2] 向 DAS 发送示例事件来验证 DAS 数据接收功能。

要确保数据是否保留在 Event Store 中,请转到 Data Exporer [3] 并浏览您发布的数据。

[1] https://docs.wso2.com/display/DAS300/Persisting+Data+for+Batch+Analytics

[2] https://docs.wso2.com/display/DAS300/Publishing+Data+Using+Event+Simulation

[3] https://docs.wso2.com/display/DAS300/Data+Explorer

于 2015-11-14T10:52:56.123 回答