115 lines
3.5 KiB
Python
115 lines
3.5 KiB
Python
import taos
|
|
import time
|
|
import sys
|
|
import getopt
|
|
class ConnectorChecker:
|
|
def init(self):
|
|
self.host = "127.0.0.1"
|
|
self.dbName = "test"
|
|
self.tbName = "weather"
|
|
self.user = "root"
|
|
self.password = "taosdata"
|
|
|
|
|
|
def sethdt(self,FQDN,dbname,tbname):
|
|
if(FQDN):
|
|
self.host=FQDN
|
|
if(dbname):
|
|
self.dbname=dbname
|
|
if(tbname):
|
|
self.tbName
|
|
def printSql(self,sql,elapsed):
|
|
print("[ "+"OK"+" ]"+" time cost: %s ms, execute statement ====> %s"
|
|
%(elapsed,sql))
|
|
def executeQuery(self,sql):
|
|
try:
|
|
start=time.time()
|
|
execute = self.cl.execute(sql)
|
|
elapsed = (time.time()-start)*1000
|
|
self.printSql(sql,elapsed)
|
|
data = self.cl.fetchall()
|
|
numOfRows = self.cl.rowcount
|
|
numOfCols = len(self.cl.description)
|
|
for irow in range(numOfRows):
|
|
print("Row%d: ts=%s, temperature=%d, humidity=%f" %(irow, data[irow][0], data[irow][1],data[irow][2]))
|
|
except Exception as e:
|
|
print("Failure sql: %s,exception: %s" %sql,str(e))
|
|
def execute(self,sql):
|
|
try:
|
|
start=time.time()
|
|
execute = self.cl.execute(sql)
|
|
elapsed = (time.time()-start)*1000
|
|
self.printSql(sql,elapsed)
|
|
|
|
except Exception as e:
|
|
print("Failure sql: %s,exception: %s" %
|
|
sql,str(e))
|
|
def close(self):
|
|
print("connetion closed.")
|
|
self.cl.close()
|
|
self.conn.close()
|
|
def createDatabase(self):
|
|
sql="create database if not exists %s" % self.dbName
|
|
self.execute(sql)
|
|
def useDatabase(self):
|
|
sql="use %s" % self.dbName
|
|
self.execute(sql)
|
|
def createTable(self):
|
|
sql="create table if not exists %s.%s (ts timestamp, temperature float, humidity int)"%(self.dbName,self.tbName)
|
|
self.execute(sql)
|
|
def checkDropTable(self):
|
|
sql="drop table if exists " + self.dbName + "." + self.tbName + ""
|
|
self.execute(sql)
|
|
def checkInsert(self):
|
|
sql="insert into test.weather (ts, temperature, humidity) values(now, 20.5, 34)"
|
|
self.execute(sql)
|
|
def checkSelect(self):
|
|
sql = "select * from test.weather"
|
|
self.executeQuery(sql)
|
|
def srun(self):
|
|
try:
|
|
self.conn = taos.connect(host=self.host,user=self.user,password=self.password)
|
|
#self.conn = taos.connect(self.host,self.user,self.password)
|
|
except Exception as e:
|
|
print("connection failed: %s"%self.host)
|
|
exit(1)
|
|
print("[ OK ] Connection established.")
|
|
self.cl = self.conn.cursor()
|
|
|
|
def main(argv):
|
|
FQDN=''
|
|
dbname=''
|
|
tbname=''
|
|
try:
|
|
opts, args = getopt.getopt(argv,"h:d:t:",["FQDN=","ifile=","ofile="])
|
|
except getopt.GetoptError:
|
|
print ('PYTHONConnectorChecker.py -h <FQDN>')
|
|
sys.exit(2)
|
|
for opt, arg in opts:
|
|
if opt in ("-h", "--FQDN"):
|
|
FQDN=arg
|
|
elif opt in ("-d", "--dbname"):
|
|
dbname = arg
|
|
elif opt in ("-t", "--tbname"):
|
|
tbname = arg
|
|
|
|
checker = ConnectorChecker()
|
|
checker.init()
|
|
checker.sethdt(FQDN,dbname,tbname)
|
|
checker.srun()
|
|
checker.createDatabase()
|
|
checker.useDatabase()
|
|
checker.checkDropTable()
|
|
checker.createTable()
|
|
checker.checkInsert()
|
|
checker.checkSelect()
|
|
checker.checkDropTable()
|
|
checker.close()
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv[1:])
|
|
|
|
|