ODBC
向本地 ODBC 驱动程序或可以在服务器同一机器上管理 ODBC 查询的远程 OIBus Agent 发送 SQL 查询。
OIBus agent 可以根据其文档中的说明单独安装。
当需要从 IP21 ODBC 接口或其他 ODBC 兼容应用程序检索数据时,此连接器非常有价值。
特定设置
- 使用远程代理:如果设置为
No
,确保在部署 OIBus 的机器上安装了 ODBC 驱动程序。或者,您可以选择在配备必要驱动程序的远程机器上安装 OIBus agent。 - 远程代理 URL:指定远程 OIBus agent 的 URL,例如,
http://ip-address-or-host:2224
。 - 重试间隔:在重新尝试连接前的等待时间。
- 请求超时:确定每个查询的超时持续时间。
- 连接超时:建立连接的超时设置。
- 连接字符串:ODBC 连接字符串。
- 密码:认证密码,在 OIBus 配置中安全存储。如果直接包含在连接字符串中,密码将以明文存储。当使用密码时,OIBus 会在连接字符串的末尾附加
PWD=<password>
。
请确保 ODBC 连接字符串符合指定驱动程序的格式,并且连接字符串中指定的驱动程序正确安装。
Driver={驱动程序名称};SERVER=localhost,10014;TrustServerCertificate=yes;Database=test;UID=oibus;PWD=<secret>
驱动程序是驱 动程序的名称(Windows)或驱动程序文件的路径(类 Unix 系统)。
端口是可选的,可以用 PORT=10014
替换(确保将逗号 ,
替换为分号 ;
)。
驱动程序安装
在 Windows 上,您可以方便地访问 ODBC 驱动程序管理工具,在那里您可以在连接字符串中指定驱动程序的名称,例如 MySQL ODBC 3.51 驱动程序
或 SQL Server
。
在类 UNIX 系统上,您应该先在您的机器上安装驱动程序,然后在连接字符串中指定驱动程序的路径,例如 /opt/lib/libmsodbcsql.18.dylib
。
安装 unixodbc:brew install unixodbc
.
检查安装是否成功,并列出 ODBC 配置文件:odbcinst -j
检查已安装的驱动程序:cat /opt/homebrew/etc/odbcinst.ini
与 IP21 使用 OIBus
ODBC 连接通常会遇到延迟问题,特别是在大型历史查询期间,例如涉及 IP21 的查询。这可能会对网络和服务器造成重大负载。
为了 减轻这些挑战,我们建议将 OIBus Agent 作为服务安装在与 IP21 相同的机器上。OIBus 然后可以使用 HTTP 协议将查询传输给其代理,代理可以直接使用 ODBC 与 IP21 通信,消除网络延迟。
当然,必须确保在 代理机器上 安装了适合的 ODBC 驱动程序,并在连接字符串中正确指定。
要通过 ODBC 建立与 IP21 的连接,您需要在您的机器上安装 AspenTech SQLplus
驱动程序。
请确保此驱动程序正确安装。
认证可以通过连接字符串或本地处理。在选择本地认证时,重要的是确保 OIBus agent 以适当的权限运行。您可能需要以不同用户身份运行服务,这可 以通过服务管理窗口配置。
以下连接字符串适用于基本的 IP21 安装:Driver={AspenTech SQLplus};HOST=<host>;PORT=10014"
项目设置
在 South 连接器中,每个项目都可以根据选择的扫描模式进行配置以被查询。同一个 South 连接器内可以配置对同一数据库的多个查询。OIBus 将依次执行这些查询, 准备输出文件,然后将其发送到 North 连接器。
查询
South 连接器中的查询字段接受 SQL 语法,并且可以利用几个内部变量。这些变量用于多种目的,包括在连接失败时增强数据流的韧性以及将大时间间隔分解为更小的块,这有助于减轻服务器和网络的负载。更多信息,请参考大查询部分。
查询变量
在 OIBus 中,你可以使用以下内部变量,系统将解释这些变量:
- @StartTime:最初,@StartTime 变量设置为查询第一次执行的日期。当从数据库检索到结果时,@StartTime 值更新为这些结果中用作参考的字段的最新时间戳(参考日期时间字段部分)。
- @EndTime:@EndTime 变量设置为当前时间(now())或者如果查询被分割,则为子间隔的结束时间。
SELECT data_name AS dataName, value, timestamp FROM table WHERE timestamp > @StartTime AND timestamp < @EndTime