TDengine RESTful 客户端
TDengine服务端和客户端版本必须匹配,若不匹配,会报错:
taos connect failed, reason: Invalid app version.
有时需要登录不同版本的服务端,要安装不同版本的客户端很麻烦。还好TDengine支持RESTful,用python写了一个简单的模拟客户端的查询脚本,可以与TDengine服务端进行交互。
代码如下:
import requests
import json
import sys
import getopt
import os
import readline
readline.write_history_file('.history')def pprint(ss:list):lstr=", ".join([str(s) for s in ss])return lstr
def perror(estr:str):print(" \n \033[0;37;41mCanot Connecto to {estr}! \033[0m \n ".format(estr=estr))
def status_query(host: str, port: int, user: str, password: str, cmd: str):url = "http://%s:%d/rest/sql" % (host, port)try:resp = requests.post(url, cmd, auth=(user, password),timeout=10)except:perror(host)return(2)else:return(json.loads(json.dumps(resp.json())))
def rest_print(rvalue:dict):rcode=(rvalue['status'])if rcode == 'succ': print("\033[0;37;42m{hed}\033[0m".format(hed=pprint(rvalue['head'])))data_ll=len(rvalue['data'])if data_ll == 0:data_l=1else:data_l=len(str(rvalue['data'][0]))head='-'print(head.center(data_l,'-'))for ii in range(data_ll):print(pprint(rvalue['data'][ii]))iii=ii+1if iii>90 and iii%100 == 0:anykey=input("{rnum} rows output.Press Enter to Contine......".format(rnum=iii)).strip() else:print(" \n Excute Error, {error} !\n ".format(error=rvalue['desc']))if len(sys.argv) <= 1:print('\nptaos.py -h host [-p port -u root -P password]\n')exit
else:try:opts,args=getopt.getopt(sys.argv[1:],"h:p:u:P")except getopt.GetoptError:print('\nptaos.py -h host [-p port -u root -P password]\n')sys.exitelse:host=''port=6041user='root'password='taosdata'for opt,arg in opts:if opt == '-h':host=argelif opt== '-p':port=int(arg)elif opt == '-u':user=argelif opt == '-P':passowrd=argelse:sys.exitos.system("clear")qr=status_query(host,port,user,password,'select server_version()')if qr != 2 and qr['status'] == 'succ':version=qr['data'][0][0]cquery=status_query(host,port,user,password,'show connections')qquery=status_query(host,port,user,password,'show queries')cnum=cquery['rows']qnum=qquery['rows']print('\n\033[0;32;40m TDengine Version:{version} Connections:{cnum} Queries:{qnum} \033[0m\n'.format(version=version,cnum=cnum,qnum=qnum))while True:SQL=input("\n\033[0;32;40m[{cname}]>\033[0m".format(cname=host)).strip() if SQL == 'q':breakUSERSQL=SQL.replace(';','')qr=status_query(host,port,user,password,USERSQL)if qr != 2:rest_print(qr) continue
TDengine RESTful 客户端相关推荐
- 声明式RESTful客户端在asp.net core中的应用
1 声明式RESTful客户端 声明式服务调用的客户端,常见有安卓的Retrofit.SpringCloud的Feign等,.net有Refit和WebApiClient,这些客户端都是以java或. ...
- RESTful客户端库:RestClient
WebService 话说我刚知道这词的时候还是十二年前-大约2001年,微软的.net刚出来的时候,这货就热了,只不过当年这货的标配通讯协议是SOAP.当年我觉得这货还是很方便的,但是在尝鲜过后,我 ...
- 使用RESTful客户端API进行GET / POST
互联网上有很多如何使用RESTful Client API的东西. 这些是基础. 但是,尽管该主题看起来微不足道,但仍然存在一些障碍,尤其是对于初学者而言. 在这篇文章中,我将尝试总结我的专业知识,以 ...
- restful java客户端_如何在Java客户端调用RESTful服务
在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及J ...
- 如何在Java客户端调用RESTful服务
在这个例子中,我们将看到如何使用java.net包实用工具,创建一个访问REST服务RESTful的客户端.当然这不是创建一个RESTful客户端最简单的方法,因为你必须自己读取服务器端的响应,以及J ...
- TDengine 在IT运维监控领域的应用
目录 前言 一.TD 特点 二.安装部署 2.1 部署 2.2 验证 三.应用领域 3.1 运维监控 3.2 远端扩展 总结 前言 TDengine 由北京涛思数据科技有限公司(TAOS Data)自 ...
- 如何从InfluxDB/OpenTSDB无缝连接到TDengine
小 T 导读:taosAdapter 是 TDengine 这款时序数据库(Time Series Database)的配套工具,是 TDengine 集群和应用程序之间的桥梁和适配器.当我们需要从数 ...
- RESTful编程究竟是什么?
RESTful编程究竟是什么? #1楼 这可能是它的样子. 创建具有三个属性的用户: POST /user fname=John&lname=Doe&age=25 服务器响应: 200 ...
- Go 语言编程 — go-restful RESTful 框架
目录 文章目录 目录 一个 RESTful API 框架需要什么? go-restful 核心概念 Route WebService Container 过滤器(Filter) 响应编码(Respon ...
最新文章
- 【转】statfs获得硬盘使用情况 模拟linux命令 df
- java web windows_Java Web服务器部署指南(windows版)
- 同步工具之CyclicBarrier循环栅栏
- linux释放内存后设备起不来,Linux-Memory小记
- Invalid byte 2 of 2-byte UTF-8 sequence解决方案
- mysql后天命令查下显示_MySQL命令
- 随手记-----cookie
- moea切比雪夫_基于分解的多目标进化优化MOEA/D之切比雪夫方法代码
- 《头文字D》热门同人插画欣赏
- 开发团队人员配备与角色分配
- 解决windows下无法ctrl+A全选数据快捷键的问题
- 3D模型制作的流程的步骤
- #搜索#(ssl 1758)连通图
- 配置 不使用rsa 密码_了解使用RSA的密码学
- 老师利用计算机分析学生成绩属于什么,计算机二级考试真题-Excel-小蒋-老师学生成绩分析...
- 用js实现动态添加删除表格数据
- 前端加载高德离线地图的解决方案
- Spring Cloud(15)——配置中心
- 通达信金融终端卖点爆点怎么显示?
- 打死我,我也不去美国当市长
热门文章
- 重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)
- 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,2009年10月全国自考计算机应用基础历年真题...
- echarts 好看的柱形图
- 这个公式,让你的学习更高效 (L先生说-微信公众号)
- 【selection】 学习光标API并实现编辑区插入表情图片的功能
- EBCDIC 与 GBK 的字符编码及其转换(转)
- 假期读书计划表怎么写?能够随时查看读书计划的手机便签
- 微信小程序获取当前地址以及选择地址详解
- 微信小程序如何在地图选择地址并返回经纬度
- c罗python可视化分析_鸟枪换炮,利用python3对球员做大数据降维(因子分析得分),为C罗找到合格僚机...