如何从Proficy Historian/iHistorian检索原始时间序列数据?
理想情况下,我会要求两个日期之间的特定标签的数据.
我将获得访问AspenTech InfoPlus 21端点的权限,但是这些系统似乎是很旧的,而且(公开)记录的不是很好。我将需要查询一些数据(即浏览数据库中的内容)。关于连接和查询InfoPlus 21历史学家,我有几个问题。
如何连接到InfoPlus 21服务器(最好以编程方式连接)?我主要使用Mac,可以通过VM使用Linux和Windows。的确,欢迎提供解决方案的想法。
如何从InfoPlus 21中查询数据(以打赌方式进行编程),数据是什么样的?任何指针等都将非常有帮助。
我在使用NoSQL(mongodb)和SQL(postgres和mysql)数据库方面有一些经验,但是在Web上找不到真正对aspentech infoplus 21有用的东西。任何帮助将不胜感激。
我正在研究Hyperledger-composer(V0.13)的最新版本,并建立了具有多个角色的网络,每个角色都可以调用区块链中的选定交易。我现在想查询区块链(“历史记录”)中针对特定订单(资产的定义类型)执行的所有交易。
我使用两种不同的方法来提取Historian数据,一次通过直接API访问historian.getall()
,另一次通过定义的查询:
query getHistorianRecords {
description: "get all Historian records"
statement: SELECT org.hyperledger.composer.system.HistorianRecord
}
Run Code Online (Sandbox Code Playgroud)
这两个查询都成功,因为它们返回了系统内的所有事务。每前:
ValidatedResource {
'$modelManager': ModelManager { modelFiles: [Object] },
'$namespace': 'org.hyperledger.composer.system',
'$type': 'HistorianRecord',
'$identifier': '0c3274475fed3703692bb7344453ab0910686905451b41d5d08ff1b032732aa1',
'$validator': ResourceValidator { options: {} },
transactionId: '0c3274475fed3703692bb7344453ab0910686905451b41d5d08ff1b032732aa1',
transactionType: 'org.acme.Z2BTestNetwork.CreateOrder',
transactionInvoked:
Relationship {
'$modelManager': [Object],
'$namespace': 'org.acme.Z2BTestNetwork',
'$type': 'CreateOrder',
'$identifier': '0c3274475fed3703692bb7344453ab0910686905451b41d5d08ff1b032732aa1',
'$class': 'Relationship' },
eventsEmitted: [],
transactionTimestamp: 2017-09-22T19:32:48.182Z }
Run Code Online (Sandbox Code Playgroud)
我找不到和需要的是一种针对单个订单查询交易历史的方法。订单的定义(部分列出)如下:
asset Order identified by orderNumber {
o String orderNumber
o String[] items
o String status
...
o String approved …
Run Code Online (Sandbox Code Playgroud) 我对 Proficy Historian 和 Python 相当陌生。我的应用程序的目的是开始从 Proficy 中提取数据。
GE (Proficy) Historian 安装在虚拟机上,Server A
而我的 python 安装在其他 VM 中Server B
。
两台服务器在同一个防火墙下,在同一个 VLAN 中,所以它们可以通信。
我试图环顾四周,但我不确定哪种提取数据最简单的方法......有帮助吗?
我链接到Proficy Historian,它允许列名称中包含句点.因为数据以非DBMS格式存储,所以我不能openquery
用来获取数据,因为表没有设置模式.所以我必须使用四部分名称语法来获取数据.这个例子有效:
SELECT * FROM iHist...[SELECT * FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
但是在'.'附近的语法不正确.
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07][0].F_CV.Value] FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
SERVER.pid_astatus[07][0].F_CV.Value
列的名称在哪里
这也与关键字'from'附近的语法错误一致.
SELECT * FROM
iHist...[SELECT [SERVER.pid_astatus[[07]][[0]].F_CV.Value] from ihTrend]`
Run Code Online (Sandbox Code Playgroud)
关于如何让SQL Server将其视为列的任何想法?
编辑:
Martins建议右括号转义括号只能在sql调用的外部工作
SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM iHist...[SELECT * FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
但是它在关键字'from'附近的不正确语法中不起作用.
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
编辑
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value]] FROM ihTrend]
Run Code Online (Sandbox Code Playgroud)
我不得不逃脱列逃脱:)
旧主题,结合新工具:从AspenTech IP21(InfoPlus.21)数据历史记录中查询Web应用程序数据的最佳/适当方式是什么?
在过去,我通过Aspen SqlPlus ODBC驱动程序使用了一些非常糟糕的查询,但这似乎不是正确的方法,因为它似乎根本不安装在Win 7上.
这里有人有经验吗?