• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

pinusproxy: PinusProxy是为松果时序数据库(PinusDB)提供Restful的服务,一个PinusPro ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:pinusproxy


开源软件地址:https://gitee.com/pinusdb/pinusproxy


开源软件介绍:

PinusProxy

PinusProxy是为松果时序数据库(PinusDB)提供Restful的服务,一个PinusProxy可以为多个PinusDB提供Restful服务。 本项目仅仅是一个示例,并不包含用户验证。

开发环境

visual studio 2019 + asp.net core 3.1

配置文件

proxy.xml
服务配置ServerSet下每一个Server项都是一个数据库服务。
server配置项

  • name : 服务名,在一个配置文件中,服务名必须唯一。
  • ip : PinusDB的IP。
  • port : PinusDB的端口。
  • username : PinusDB的用户名。
  • password : PinusDB的密码。
  • maxconn : 数据库连接池的最大连接数

每个TableSet对应一个Restful可以访问的数据表。
table配置项

  • aliasName : Restful对外的表名, 一个配置文件中aliasName必须唯一。
  • tableName : PinusDB数据库上的表名。
  • server : PinusDB数据库实例名,server配置项中的 name 项的值。

查询条件

名字类型是否必须描述
Field字符串字段名
Op字符串比较运算
Value?比较值

Op 取值
isnull : 指定的字段值是否为空,无Value参数。
isnotnull : 指定的字段值是否非空,无Value参数。
eq : 等于,可以用于bigint,datetime, double及string数据类型。
ne : 不等于, 可以用于bigint,datetime, double及string数据类型。
lt : 小于, 可以用于bigint,datetime,double数据类型。
le : 小于等于,可以用于bigint,datetime,double数据类型。
gt : 大于,可以用于bigint,datetime,double数据类型。
ge : 大于等于, 可以用于bigint,datetime,double数据类型。
like : 模式匹配,可以用于string类型,可以使用通配符%。
in : 值位于指定的数组内,可以用于bigint类型。
notin : 值不位于指定的数组内,可以用于bigint类型。

读取数据

  • 查询表信息
    请求地址: /api/query/tables
    请求方法: POST
    返回实例:
[    {"AliasName":"tab01","TableName":"tab01","ServerName":"server1"}]
  • 查询原始数据
    请求地址: /api/query/raw
    请求方法: POST
    请求参数:
名字类型是否必须描述
Table字符串表名
Fields字符串列表查询的列
Conditions查询条件列表查询条件
Offset数字跳过条数
Limit数字查询条数,默认为1000, 不大于10000

请求示例:

{    "Table":"tab01",     "Fields":["devid","tstamp","val01","val02"],     "Conditions":[{"Field":"devid", "Op":"eq", "Value":10}],     "Limit":5}

返回示例:

{     "err":0,     "data":     [        {"devid":10,"tstamp":1582449065073,"val01":false,"val02":3378},        {"devid":10,"tstamp":1582449070073,"val01":false,"val02":9733},        {"devid":10,"tstamp":1582449075073,"val01":false,"val02":16130},        {"devid":10,"tstamp":1582449080073,"val01":true,"val02":22529},        {"devid":10,"tstamp":1582449085073,"val01":false,"val02":28876}    ]}
  • 查询快照数据
    与查询原始数据一致,表名后加.snapshot即可
    请求示例:
{    "Table":"tab01.snapshot",    "Fields":["devid","tstamp","val01","val02"],     "Limit": 3}

返回示例:

{     "err":0,     "data":     [        {"devid":1,"tstamp":1582461490073,"val01":true,"val02":-179517},        {"devid":2,"tstamp":1582461490073,"val01":true,"val02":-179427},        {"devid":3,"tstamp":1582461490073,"val01":true,"val02":-179415}    ]}
  • 根据devid聚合查询
    请求地址: /api/query/group_devid
    请求方法: POST
    请求参数:
名字类型是否必须描述
Table字符串表名
Fields聚合字段列表查询的列
Conditions查询条件列表查询条件
Offset数字跳过条数
Limit数字查询条数,默认为1000,不大于10000

请求示例:

{    "Table":"tab01",     "Fields":    [        {"Aggregator":"none", "Field":"devid", "Alias":"devid"},         {"Aggregator":"max", "Field":"val02", "Alias":"max_val02"}    ],     "Limit": 3}

返回示例:

{     "err":0,     "data":     [        {"devid":1,"max_val02":199981},        {"devid":2,"max_val02":199964},        {"devid":3,"max_val02":199965}    ]}
  • 根据 tstamp 聚合查询
    请求地址: /api/query/group_tstamp
    请求方法: POST
    请求参数:
名字类型是否必须描述
Table字符串表名
Fields聚合字段列表查询的列
Conditions查询条件列表查询条件
GroupTstamp数字毫秒数
Offset数字跳过条数
Limit数字查询条数,默认为1000,不大于10000

以1分钟为聚合,请求示例:

{    "Table":"tab01",     "Fields":    [        {"Aggregator":"none", "Field":"tstamp", "Alias":"tstamp"},        {"Aggregator":"max", "Field":"val02", "Alias":"max_val02"}    ],     "Conditions":    [        {"Field":"tstamp", "Op":"gt", "Value":"2020-2-23 18:0:0"},        {"Field":"devid", "Op":"eq", "Value": 123}    ],     "GroupTstamp":60000,     "Limit": 3}

返回示例:

{     "err":0,     "data":     [        {"tstamp":1582452000000,"max_val02":null},        {"tstamp":1582512000000,"max_val02":null},        {"tstamp":1582572000000,"max_val02":null}    ]}
  • 对所有数据进行聚合
    请求地址: /api/query/group_all
    请求方法:POST
    请求参数:
名字类型是否必须描述
Table字符串表名
Fields聚合字段列表查询的列
Conditions查询条件列表查询条件

请求示例:

{    "Table":"tab01",     "Fields":    [        {"Aggregator":"count", "Field":"devid", "Alias":"count_num"}    ]}

返回示例:

{     "err":0,     "data": [{"count_num":248600}]}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
jocean-restful-server: Restful Serverside's utils发布时间:2022-02-14
下一篇:
wecnode: 基于kao开发的nodejs服务端RESTAPI框架发布时间:2022-02-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap