读取和写入数据¶
将创建的通道授权给指定应用后,可通过调用数据联邦 API 接口,通过授权的通道,从数据源读取数据或向数据源写入数据。
前提条件¶
已创建通道,并且通道处于运行状态
已将通道授权给指定应用
读取数据¶
通过调用数据联邦API服务的读取数据(Read Data)接口,可使用SQL语句从数据源中查询符合条件的数据。有关调用数据联邦 API 的详细信息,前往 EnOS管理门户 > EnOS API 页面,查看数据联邦 API 文档。
SQL查询语句示例¶
show schemas
返回示例¶
{
"status": 0,
"msg": "success",
"submsg": null,
"data": {
"queryState": "COMPLETED",
"columns": [
"SCHEMA_NAME"
],
"metadata": [
"VARCHAR"
],
"rows": [
{
"SCHEMA_NAME": "mysql196.test1"
},
{
"SCHEMA_NAME": "mysql196.test2"
}
]
}
}
该语句用于查询数据源。以上返回示例中,mysql196
为创建通道时自定义的数据源别名,test1
与 test2
为数据源中数据库的名称。
在查询数据时,可将 mysql196.test1
视为 MySQL 数据库中的 Database 名称。用于数据查询的SQL语句的语法与 MySQL 语法基本相同,例如:
select * from mysql196.test1.user limit 100
写入数据¶
通过调用数据联邦 API 服务的写入消息和文件接口,可向数据源写入数据。有关调用数据联邦 API 的详细信息,前往 EnOS管理门户 > EnOS API 页面,查看数据联邦 API 文档。
写入数据到 MySQ 数据源示例¶
写入数据到 MySQL 数据源的数据格式如下:
{
"dataSourceName": "data_source_name",
"data":{
"table": "table_name",
"lines": [
{
"column_name": "value"
}
]
}
}
其中:
dataSourceName
:数据源名称data
:需要写入的数据经过 JSON 转换后的结果table
:写入数据的表名lines
:需要写入的若干行数据,column_name
为字段名称,所有value
都需要转换为字符串
实际写入数据示例如下:
{
"dataSourceName": "mysql_remote",
"data": "{\"table\":\"data\",\"lines\":[{\"WGEN.GenReactivePW\":\"2.5283\",\"ou_id\":\"o15622268182161\",\"WTUR.TurbineListSts\":\"5\",\"WTUR.TurbineUnionSts\":\"71\",\"WTUR.ConnectionSts\":\"0\",\"WGEN.GenActivePW\":\"45.700001\",\"WROT.TemB2Mot\":\"29.504801\",\"WTUR.TurbineTopSts\":\"2\",\"WGEN.TorqueSetpoint\":\"867.359375\",\"WWPP.PPCurrentDay\":\"0\",\"WCNV.GridFreq\":\"49.971561\",\"WWPP.PPCurrentYear\":\"17896\",\"dev_id\":\"04mmQAEM\",\"WNAC.TemOut\":\"25.691801\",\"WWPP.PPCurrentMonth\":\"33763\",\"WTUR.TurbineHealthSts\":\"0\",\"timeOfDay\":\"2019-09-01 00:00:00\",\"WTUR.TurbineGroupSts\":\"70\"},{\"WGEN.GenReactivePW\":\"2.7037\",\"ou_id\":\"o15622268182161\",\"WTUR.TurbineListSts\":\"5\",\"WTUR.TurbineUnionSts\":\"71\",\"WTUR.ConnectionSts\":\"0\",\"WGEN.GenActivePW\":\"45.439999\",\"WTUR.TurbineTopSts\":\"2\",\"WGEN.TorqueSetpoint\":\"865.127869\",\"WCNV.GridFreq\":\"49.998112\",\"dev_id\":\"04mmQAEM\",\"WTUR.TurbineHealthSts\":\"0\",\"timeOfDay\":\"2019-09-01 00:00:01\",\"WTUR.TurbineGroupSts\":\"70\"}]}"
}
写入数据到 Redis 数据源示例¶
写入数据到 Redis 数据源目前仅支持写入KV结构的数据,其数据格式如下:
{
"dataSourceName": "data_source_name",
"data":{
"item": [
{
"key": "key",
"value": "value"
}
]
}
}
其中:
dataSourceName
:数据源名称data
:需要写入的数据经过 JSON 转换后的结果item
:需要写入 Redis 的若干 “key-value” 对集合,所有 “value” 都必须转换为字符串类型
实际写入数据示例如下:
{
"dataSourceName": "redis_remote",
"data": "{\"item\":[{\"key\":\"04mmQAEM\",\"value\":\"1180\"},{\"key\":\"1jbWuJA7\",\"value\":\"964\"}]}"
}