在我的项目中,我需要收集数据,处理/分析数据并发布。 我正在使用WSO2 DAS 3.0.0。
为了达到这个目的,我遵循了以下步骤: -
我的问题如下: -
还有其他方法可以在数据库中存储持久化事件。我可以使用Main-> stream-> persist事件将事件存储在数据库中。我可以使用它来存储数据库中的事件,或者我需要使用Main-> publishers。选择"输出事件适配器类型" - 用于存储事件的RDBMS?
我可以使用SQL Server 2008在SQL Server 2008中存储事件吗?将数据存储到SQL Server 2008时,我遇到了以下错误。
无法执行创建表查询。已有一个名为' tbl_City'在数据库中。因此事件被删除。
TID [-1234] [DAS] [2015-11-09 12:28:06,265] ERROR {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.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.EventPublisher.process(EventPublisher.java:361)org。 wso2.carbon.event.publisher.core.internal.EventPublisher.sendEvent(EventPublisher.java:209)org.wso2.carbon.event.publisher.core.internal.EventPublisher.consumeEvent(EventPublisher.java:275)org.wso2。 carbon.event.stream.core.internal.EventJunction.sendEvent(EventJunction.java:142)org.wso2.carbon.event.receiver.core.internal.management.In putEventDispatcher.onEvent(InputEventDispatcher.java:27)org.wso2.carbon.event.receiver.core.internal.EventReceiver.sendEvent(EventReceiver.java:259)org.wso2.carbon.event.receiver.core.internal.EventReceiver。 processTypedEvent(EventReceiver.java:237)org.wso2.carbon.event.receiver.core.internal.EventReceiver $ TypedEventSubscription.onEvent(EventReceiver.java:317)org.wso2.carbon.event.input.adapter.core.internal。 InputAdapterRuntime.onEvent(InputAdapterRuntime.java:110)org.wso2.carbon.event.input.adapter.http.HTTPMessageServlet $ HTTPRequestProcessor.run(HTTPMessageServlet.java:210)java.util.concurrent.Executors $ RunnableAdapter.call(Executors。 java:471)java.util.concurrent.FutureTask.run(FutureTask.java:262)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor。 java:615)java.lang.Thread.run(Thread.java:745)
请确认。
答案 0 :(得分:0)
似乎您将事件发布者与数据发布者混为一谈。
事件发布者用于将结果发布到外部系统以采取进一步操作。事件发布者提供从WSO2 DAS向外部系统发送事件通知和警报的功能。
对于您的用例,您需要做什么 do是将数据发布到DAS。有几种方法可以做到这一点。有关更多信息,请查看[1]。
您还可以按照DAS快速入门指南[2]来更好地理解这些概念。
关于使用SQL Server 2008的问题,是DAS支持Microsoft SQL服务器。
[1] https://docs.wso2.com/display/DAS300/Publishing+Data+to+DAS
答案 1 :(得分:0)
感谢您的回复。
是的,你是对的。我在事件/数据发布者之间感到困惑。我不想发布我希望它存储在SQL服务器中的事件。
请按照以下方式完成我的系统流程: -
外部系统将数据推送到DAS。我需要将这些数据存储在SQL服务器中,并需要进行处理以进行进一步分析。
我为此做了以下步骤。
我可以将以下样本数据发布到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`
&#34;
所以我的问题是如何将上述数据存储到我在DAS(事件接收器)中收到的SQL服务器中。
答案 2 :(得分: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 :(得分:0)
感谢链接和信息,它对我很有帮助。
我可以将事件保存到SQL Server 2008中。
我只想添加我遵循的步骤: -
请按照以下链接获取详细步骤: -
https://docs.wso2.com/display/DAS300/Setting+up+Microsoft+SQL
打开\ repository \ conf \ datasources \ analytics-datasources.xml 更改配置设置。更改URL,用户名,密码,driveclassname。 e.g。
"<datasource> <name>WSO2_ANALYTICS_FS_DB</name> <description>The datasource used for analytics file system</description> <definition type="RDBMS"> <configuration>
JDBC:SQLSERVER://本地主机:1433;的databaseName = testDAS SA ****** driverClassName&GT; com.microsoft.sqlserver.jdbc.SQLServerDriver 50 60000 五 真正 选择1 30000 &#34;
对&#34; WSO2_ANALYTICS_EVENT_STORE_DB&#34;,&#34; WSO2_ANALYTICS_PROCESSED_DATA_STORE_DB&#34;进行类似的更改。
创建一个事件并检查SQL Server表是否获取捕获。在我的例子中,SQL表创建时使用名称&#34; [ANX ___ 7Lk3JrzI _]&#34;。
感谢。