数据库导出模块
概述
数据库导出模块提供从设备接收的数据实时导出到流行数据库的功能。支持的 DBMS 包括 Microsoft SQL Server、Oracle、PostgreSQL 和 MySQL。该模块包含在RapidSCADA 发行版中,不需要单独安装。下图显示了配置模块的形式。
该模块支持并行导出到多个不同的数据库。执行导出的数据库称为出口目标。根据导出目标选项,该模块创建一个出口商,一个处理数据队列并调用 SQL 查询的软件对象。
有关模块操作的信息记录在ModDbExport.log文件。每个出口商的操作信息都写在ModDbExport_*.log和ModDbExport_*.txt文件。
配置
要打开模块配置表单,请转至服务器 > 模块页面,选择模块数据库导出模块并单击特性按钮。该模块应位于活动模块列表中。模块配置保存在ModDbExport.xml文件。
使用以下命令将新的导出目标添加到模块配置中
按钮,从下拉列表中选择 DBMS。接下来,让我们看一下包含各组导出目标设置的页面。下面的屏幕截图显示了默认参数值。
指定命令码如果用户计划手动发送命令来导出档案。设置状态通道数通过 Web 界面监控导出状态。的一个频道已计算类型应在配置数据库中创建。通道值:0- 普通的,1- 错误。队列选项根据导出的数据量和数据库服务器的性能进行实验性设置。
执行导出的数据库必须事先创建并包含用于存储信息的表。应与数据库管理员明确连接数据库的选项。如果数据库服务器部署在单独的计算机上,则必须将服务器的防火墙设置配置为允许w 正在使用的 TCP 端口上的传入连接。
可导出当前数据接收时通过 Communicator 中的服务器或定时开机。接收到数据后传输可确保从轮询设备接收到的所有当前数据都上传到数据库。通过定时器传输数据可以减少数据库大小并节省网络流量。
历史数据导出是指传输带有时间戳的数据,例如:
- Communicator 从计量设备下载并传输到服务器的存档。
- 收到的数据来自快速门模块复制存档时安装在远程服务器上。
这导出前延迟如果相继接收到具有相同时间戳的多个数据切片,该选项有助于避免计算数据的多次导出。这历史档案的一点用于从计算的通道中检索数据。
归档复制可确保RapidSCADA 归档中的信息与数据库中的信息相同。如果启用了归档复制并且自动导出档案选中复选框后,服务器服务从客户端接收的历史数据和事件不会添加到导出队列中以避免重复。复制状态在模块运行时保存,并在服务器服务重新启动时加载。
上图显示了当Server收到相应数据或复制存档时导出器调用的SQL查询的选项。这关联包含用于创建数据库模型和示例查询的脚本。 SQL 查询可以包含参数,这些参数通过@前缀。要查看取决于请求数据类型的可用参数列表,请单击
按钮。
如果单次查询取消选中该复选框,将为每个处理数据的通道调用 SQL 查询。导出通道值和状态的请求参数为@val和@stat。
如果单次查询选中复选框后,仅对查询过滤器中明确指定编号的通道调用一次 SQL 查询。此时,通道值和状态参数的名称中包含通道号,例如:@val101和@stat101。
具有以下条件的查询单次查询选中的复选框将被忽略:
- 如果当前数据在接收时导出。
- 导出从客户收到的历史数据时。
命令
数据库导出模块支持接收命令。要将命令发送到模块,请在配置数据库中创建输出类型通道。这标签代码通道的必须匹配命令码在常规导出目标选项中指定。可以通过 Webstation 应用程序 Web 界面或使用与服务器应用程序交互的另一个客户端来发送命令。
当收到有效命令时,将创建一个任务并将其添加到导出器任务队列中。任务队列的最大长度为10。如果队列已满,新命令将被忽略。
存档导出命令示例:
cmd=ExportArchive
startDT=2025-12-31 10:00:00
endDT=2025-12-31 11:00:00
清空导出器任务队列:
cmd=ClearTaskQueue
命令参数指定 UTC 时间。