物可视DataTableAPI
物可视仪表盘通常会包含数据表(DataTable)作为驱动可视化展示的数据源,用户可以通过Player的仪表盘运行时API(Dashboard Runtime API)在嵌入式(Embedded)地使用时,动态地更新仪表盘中DataTable的配置(Config),具体方法参见物可视PlayerAPI文档。
DataTable按所对接的数据获取方式不同,目前支持如下类型:
类型 | 说明 |
---|---|
tsdblivequery | DataTable的数据通过TSDB查询实时获取 |
dmsub | DataTable的数据通过对物管理中设备影子的订阅实时推送获取 |
staticcsv | 用户在设计时仪表盘时,自行上传的静态csv格式文件,该文件包含的数据会直接保存在仪表盘中,因此设有大小上限 |
staticjson | 用户在设计时仪表盘时,自行上传的静态固定格式的json文件(能描述成二维表的二维数组),该文件包含的数据会直接保存在仪表盘中,因此设有大小上限 |
DataTable的运行时Config
tsdblivequery
tsdblivequery类型的DataTable的运行时Config结构如下:
{
filters: FILTER,
trigger: TRIGGER
}
filters的结构如下:
{
start: 0,
end: 0,
tags: [{
in: ["shanghai", "beijing"],
tag: "city"
},...]
}
filters包含当前用于为DataTable提供数据的TSDB查询的过滤条件:
- start: 起始时间,表示timestamp的整数
- end: 截至时间,表示timestamp的整数
- tags: 用于进一步过滤结果集的标签,详见[TSDB文档](TSDB/API参考/介绍.md)
filters有如下规则约束:当trigger的rangeRule不为'none'时,start和end的取值将会被忽略。
trigger定义了TSDB查询被触发的方式,接受以下两种结构之一:
{
type: "interval",
interval: 5000,
rangeRule: "last15min"
}
{
type: "once",
rangeRule: "last15min"
}
type为interval的结构表明查询会被周期性地触发执行,interval为间隔的毫秒数,rangeRule定义了每次执行时如何确定查询的过滤起止时间。
type为once的结构表明查询只会执行一次(仪表盘初次打开时或用户通过Player API更新DataTable Config时),如需再次执行需刷新浏览器重新渲染。rangeRule定义了执行时如何确定查询的过滤起止时间
两种trigger结构都包含rangeRule字段,该字段接受的值如下:
值 | 说明 |
---|---|
none | 不根据当前时间推算起止时间,由filters内的start,end指定 |
last5min | 过去5分钟到现在 |
last15min | 过去15分钟到现在 |
last30min | 过去30分钟到现在 |
last1hour | 过去1小时到现在 |
last3hour | 过去3小时到现在 |
last6hour | 过去6小时到现在 |
last12hour | 过去12小时到现在 |
last24hour | 过去24小时到现在 |
last2days | 过去2天到现在 |
last7days | 过去7天到现在 |
last30days | 过去30天到现在 |
last90days | 过去90天到现在 |
last6months | 过去6个月到现在 |
last1year | 过去1年到现在 |
last2years | 过去2年到现在 |
last5years | 过去5年到现在 |
yesterday | 昨天 |
daybeforeyesterday | 前天 |
thisdaylastweek | 上周今天 |
previousweek | 上周 |
previousmonth | 上个月 |
previousyear | 去年 |
today | 今天 |
todaysofar | 今天到目前为止 |
thisweek | 本周 |
thisweeksofar | 本周到目前为止 |
thismonth | 本月 |
thismonthsofar | 本月到目前为止 |
thisyear | 本年 |
thisyearsofar | 本年到目前为止 |
用户可通过Player运行时API动态更新TSDB的查询参数和触发方式,从而运行时程序化地控制仪表盘的数据获取
dmsub
物管理设备影子订阅类型的DataTable无运行时配置
staticjson
staticjson类型的DataTable的运行时Config结构如下:
{
source: [USER_PROVIDED_JSON_OBJECT]
}
source字段的值为用户设计仪表盘时上传文件内的JSON对象。
用户可通过Player运行时API动态地更新staticjson类型DataTable的原始JSON对象,从而在应用中程序化地驱动仪表盘的数据更新.
注意:运行时用户提供的JSON对象须与设计仪表盘时提供的JSON对象结构一致,否则将会被忽略。
staticcsv
staticcsv类型的DataTable的运行时Config结构如下:
{
source: "USER_PROVIDED_CSV_STRING"
}
source字段的值为用户设计仪表盘时上传文件内的CSV字符串。
用户可通过Player运行时API动态地更新staticcsv类型DataTable的原始csv数据,从而在应用中程序化地驱动仪表盘的数据更新
注意:运行时用户提供的csv须与设计仪表盘时提供的csv结构一致,否则将会被忽略。