未验证 提交 cfe07e61 编写于 作者: H Hui Li 提交者: GitHub

Merge pull request #14920 from taosdata/test/chr/TD-14699

test:modify test frame that add multiple retries for sql execution and query
...@@ -79,22 +79,39 @@ class TDSql: ...@@ -79,22 +79,39 @@ class TDSql:
self.queryResult = None self.queryResult = None
tdLog.info("sql:%s, expect error occured" % (sql)) tdLog.info("sql:%s, expect error occured" % (sql))
def query(self, sql, row_tag=None): def query(self, sql, row_tag=None,queyTimes=10):
self.sql = sql self.sql = sql
try: i=1
self.cursor.execute(sql) while i <= queyTimes:
self.queryResult = self.cursor.fetchall() try:
self.queryRows = len(self.queryResult) self.cursor.execute(sql)
self.queryCols = len(self.cursor.description) self.queryResult = self.cursor.fetchall()
except Exception as e: self.queryRows = len(self.queryResult)
caller = inspect.getframeinfo(inspect.stack()[1][0]) self.queryCols = len(self.cursor.description)
args = (caller.filename, caller.lineno, sql, repr(e)) if row_tag:
tdLog.notice("%s(%d) failed: sql:%s, %s" % args) return self.queryResult
traceback.print_exc() return self.queryRows
raise Exception(repr(e)) except Exception as e:
if row_tag: i+=1
return self.queryResult tdLog.notice("Try to query again, query times: %d "%i)
return self.queryRows pass
else:
try:
tdLog.notice("Try the last query ")
self.cursor.execute(sql)
self.queryResult = self.cursor.fetchall()
self.queryRows = len(self.queryResult)
self.queryCols = len(self.cursor.description)
if row_tag:
return self.queryResult
return self.queryRows
except Exception as e:
caller = inspect.getframeinfo(inspect.stack()[1][0])
args = (caller.filename, caller.lineno, sql, repr(e))
tdLog.notice("%s(%d) failed: sql:%s, %s" % args)
traceback.print_exc()
raise Exception(repr(e))
def is_err_sql(self, sql): def is_err_sql(self, sql):
err_flag = True err_flag = True
...@@ -266,16 +283,27 @@ class TDSql: ...@@ -266,16 +283,27 @@ class TDSql:
time.sleep(1) time.sleep(1)
continue continue
def execute(self, sql): def execute(self, sql,queyTimes=10):
self.sql = sql self.sql = sql
try: i=1
self.affectedRows = self.cursor.execute(sql) while i <= queyTimes:
except Exception as e: try:
caller = inspect.getframeinfo(inspect.stack()[1][0]) self.affectedRows = self.cursor.execute(sql)
args = (caller.filename, caller.lineno, sql, repr(e)) return self.affectedRows
tdLog.notice("%s(%d) failed: sql:%s, %s" % args) except Exception as e:
raise Exception(repr(e)) i+=1
return self.affectedRows tdLog.notice("Try to execute sql again, query times: %d "%i)
pass
else:
try:
tdLog.notice("Try the last execute sql ")
self.affectedRows = self.cursor.execute(sql)
return self.affectedRows
except Exception as e:
caller = inspect.getframeinfo(inspect.stack()[1][0])
args = (caller.filename, caller.lineno, sql, repr(e))
tdLog.notice("%s(%d) failed: sql:%s, %s" % args)
raise Exception(repr(e))
def checkAffectedRows(self, expectAffectedRows): def checkAffectedRows(self, expectAffectedRows):
if self.affectedRows != expectAffectedRows: if self.affectedRows != expectAffectedRows:
......
...@@ -91,21 +91,21 @@ if $rows != $vgroups then ...@@ -91,21 +91,21 @@ if $rows != $vgroups then
return -1 return -1
endi endi
if $data[0][4] == LEADER then if $data[0][4] == leader then
if $data[0][6] == FOLLOWER then if $data[0][6] == follower then
if $data[0][8] == FOLLOWER then if $data[0][8] == follower then
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3] print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
endi endi
endi endi
elif $data[0][6] == LEADER then elif $data[0][6] == leader then
if $data[0][4] == FOLLOWER then if $data[0][4] == follower then
if $data[0][8] == FOLLOWER then if $data[0][8] == follower then
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5] print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
endi endi
endi endi
elif $data[0][8] == LEADER then elif $data[0][8] == leader then
if $data[0][4] == FOLLOWER then if $data[0][4] == follower then
if $data[0][6] == FOLLOWER then if $data[0][6] == follower then
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7] print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
endi endi
endi endi
...@@ -113,21 +113,21 @@ else ...@@ -113,21 +113,21 @@ else
goto check_vg_ready goto check_vg_ready
endi endi
if $data[1][4] == LEADER then if $data[1][4] == leader then
if $data[1][6] == FOLLOWER then if $data[1][6] == follower then
if $data[1][8] == FOLLOWER then if $data[1][8] == follower then
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3] print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
endi endi
endi endi
elif $data[1][6] == LEADER then elif $data[1][6] == leader then
if $data[1][4] == FOLLOWER then if $data[1][4] == follower then
if $data[1][8] == FOLLOWER then if $data[1][8] == follower then
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5] print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
endi endi
endi endi
elif $data[1][8] == LEADER then elif $data[1][8] == leader then
if $data[1][4] == FOLLOWER then if $data[1][4] == follower then
if $data[1][6] == FOLLOWER then if $data[1][6] == follower then
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7] print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
endi endi
endi endi
...@@ -135,21 +135,21 @@ else ...@@ -135,21 +135,21 @@ else
goto check_vg_ready goto check_vg_ready
endi endi
if $data[2][4] == LEADER then if $data[2][4] == leader then
if $data[2][6] == FOLLOWER then if $data[2][6] == follower then
if $data[2][8] == FOLLOWER then if $data[2][8] == follower then
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3] print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
endi endi
endi endi
elif $data[2][6] == LEADER then elif $data[2][6] == leader then
if $data[2][4] == FOLLOWER then if $data[2][4] == follower then
if $data[2][8] == FOLLOWER then if $data[2][8] == follower then
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5] print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
endi endi
endi endi
elif $data[2][8] == LEADER then elif $data[2][8] == leader then
if $data[2][4] == FOLLOWER then if $data[2][4] == follower then
if $data[2][6] == FOLLOWER then if $data[2][6] == follower then
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7] print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
endi endi
endi endi
...@@ -157,21 +157,21 @@ else ...@@ -157,21 +157,21 @@ else
goto check_vg_ready goto check_vg_ready
endi endi
if $data[3][4] == LEADER then if $data[3][4] == leader then
if $data[3][6] == FOLLOWER then if $data[3][6] == follower then
if $data[3][8] == FOLLOWER then if $data[3][8] == follower then
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3] print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
endi endi
endi endi
elif $data[3][6] == LEADER then elif $data[3][6] == leader then
if $data[3][4] == FOLLOWER then if $data[3][4] == follower then
if $data[3][8] == FOLLOWER then if $data[3][8] == follower then
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5] print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
endi endi
endi endi
elif $data[3][8] == LEADER then elif $data[3][8] == leader then
if $data[3][4] == FOLLOWER then if $data[3][4] == follower then
if $data[3][6] == FOLLOWER then if $data[3][6] == follower then
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7] print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
endi endi
endi endi
...@@ -179,21 +179,21 @@ else ...@@ -179,21 +179,21 @@ else
goto check_vg_ready goto check_vg_ready
endi endi
if $data[4][4] == LEADER then if $data[4][4] == leader then
if $data[4][6] == FOLLOWER then if $data[4][6] == follower then
if $data[4][8] == FOLLOWER then if $data[4][8] == follower then
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3] print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
endi endi
endi endi
elif $data[4][6] == LEADER then elif $data[4][6] == leader then
if $data[4][4] == FOLLOWER then if $data[4][4] == follower then
if $data[4][8] == FOLLOWER then if $data[4][8] == follower then
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5] print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
endi endi
endi endi
elif $data[4][8] == LEADER then elif $data[4][8] == leader then
if $data[4][4] == FOLLOWER then if $data[4][4] == follower then
if $data[4][6] == FOLLOWER then if $data[4][6] == follower then
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7] print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
endi endi
endi endi
...@@ -286,13 +286,13 @@ if $data[0][0] != 1 then ...@@ -286,13 +286,13 @@ if $data[0][0] != 1 then
return -1 return -1
endi endi
if $data[0][2] != LEADER then if $data[0][2] != leader then
goto check_mnode_ready_2 goto check_mnode_ready_2
endi endi
if $data[1][2] != FOLLOWER then if $data[1][2] != follower then
goto check_mnode_ready_2 goto check_mnode_ready_2
endi endi
if $data[2][2] != FOLLOWER then if $data[2][2] != follower then
goto check_mnode_ready_2 goto check_mnode_ready_2
endi endi
...@@ -318,21 +318,21 @@ if $rows != $vgroups then ...@@ -318,21 +318,21 @@ if $rows != $vgroups then
return -1 return -1
endi endi
if $data[0][4] == LEADER then if $data[0][4] == leader then
if $data[0][6] == FOLLOWER then if $data[0][6] == follower then
if $data[0][8] == FOLLOWER then if $data[0][8] == follower then
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3] print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
endi endi
endi endi
elif $data[0][6] == LEADER then elif $data[0][6] == leader then
if $data[0][4] == FOLLOWER then if $data[0][4] == follower then
if $data[0][8] == FOLLOWER then if $data[0][8] == follower then
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5] print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
endi endi
endi endi
elif $data[0][8] == LEADER then elif $data[0][8] == leader then
if $data[0][4] == FOLLOWER then if $data[0][4] == follower then
if $data[0][6] == FOLLOWER then if $data[0][6] == follower then
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7] print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
endi endi
endi endi
...@@ -340,21 +340,21 @@ else ...@@ -340,21 +340,21 @@ else
goto check_vg_ready1 goto check_vg_ready1
endi endi
if $data[1][4] == LEADER then if $data[1][4] == leader then
if $data[1][6] == FOLLOWER then if $data[1][6] == follower then
if $data[1][8] == FOLLOWER then if $data[1][8] == follower then
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3] print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
endi endi
endi endi
elif $data[1][6] == LEADER then elif $data[1][6] == leader then
if $data[1][4] == FOLLOWER then if $data[1][4] == follower then
if $data[1][8] == FOLLOWER then if $data[1][8] == follower then
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5] print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
endi endi
endi endi
elif $data[1][8] == LEADER then elif $data[1][8] == leader then
if $data[1][4] == FOLLOWER then if $data[1][4] == follower then
if $data[1][6] == FOLLOWER then if $data[1][6] == follower then
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7] print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
endi endi
endi endi
...@@ -362,21 +362,21 @@ else ...@@ -362,21 +362,21 @@ else
goto check_vg_ready1 goto check_vg_ready1
endi endi
if $data[2][4] == LEADER then if $data[2][4] == leader then
if $data[2][6] == FOLLOWER then if $data[2][6] == follower then
if $data[2][8] == FOLLOWER then if $data[2][8] == follower then
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3] print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
endi endi
endi endi
elif $data[2][6] == LEADER then elif $data[2][6] == leader then
if $data[2][4] == FOLLOWER then if $data[2][4] == follower then
if $data[2][8] == FOLLOWER then if $data[2][8] == follower then
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5] print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
endi endi
endi endi
elif $data[2][8] == LEADER then elif $data[2][8] == leader then
if $data[2][4] == FOLLOWER then if $data[2][4] == follower then
if $data[2][6] == FOLLOWER then if $data[2][6] == follower then
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7] print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
endi endi
endi endi
...@@ -384,21 +384,21 @@ else ...@@ -384,21 +384,21 @@ else
goto check_vg_ready1 goto check_vg_ready1
endi endi
if $data[3][4] == LEADER then if $data[3][4] == leader then
if $data[3][6] == FOLLOWER then if $data[3][6] == follower then
if $data[3][8] == FOLLOWER then if $data[3][8] == follower then
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3] print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
endi endi
endi endi
elif $data[3][6] == LEADER then elif $data[3][6] == leader then
if $data[3][4] == FOLLOWER then if $data[3][4] == follower then
if $data[3][8] == FOLLOWER then if $data[3][8] == follower then
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5] print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
endi endi
endi endi
elif $data[3][8] == LEADER then elif $data[3][8] == leader then
if $data[3][4] == FOLLOWER then if $data[3][4] == follower then
if $data[3][6] == FOLLOWER then if $data[3][6] == follower then
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7] print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
endi endi
endi endi
...@@ -406,21 +406,21 @@ else ...@@ -406,21 +406,21 @@ else
goto check_vg_ready1 goto check_vg_ready1
endi endi
if $data[4][4] == LEADER then if $data[4][4] == leader then
if $data[4][6] == FOLLOWER then if $data[4][6] == follower then
if $data[4][8] == FOLLOWER then if $data[4][8] == follower then
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3] print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
endi endi
endi endi
elif $data[4][6] == LEADER then elif $data[4][6] == leader then
if $data[4][4] == FOLLOWER then if $data[4][4] == follower then
if $data[4][8] == FOLLOWER then if $data[4][8] == follower then
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5] print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
endi endi
endi endi
elif $data[4][8] == LEADER then elif $data[4][8] == leader then
if $data[4][4] == FOLLOWER then if $data[4][4] == follower then
if $data[4][6] == FOLLOWER then if $data[4][6] == follower then
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7] print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
endi endi
endi endi
...@@ -539,27 +539,27 @@ if $data[0][0] != 1 then ...@@ -539,27 +539,27 @@ if $data[0][0] != 1 then
return -1 return -1
endi endi
if $data[0][2] == LEADER then if $data[0][2] == leader then
if $data[1][2] != FOLLOWER then if $data[1][2] != follower then
goto check_mnode_ready_3 goto check_mnode_ready_3
endi endi
if $data[2][2] != FOLLOWER then if $data[2][2] != follower then
goto check_mnode_ready_3 goto check_mnode_ready_3
endi endi
endi endi
if $data[1][2] == LEADER then if $data[1][2] == leader then
if $data[0][2] != FOLLOWER then if $data[0][2] != follower then
goto check_mnode_ready_3 goto check_mnode_ready_3
endi endi
if $data[2][2] != FOLLOWER then if $data[2][2] != follower then
goto check_mnode_ready_3 goto check_mnode_ready_3
endi endi
endi endi
if $data[2][2] == LEADER then if $data[2][2] == leader then
if $data[1][2] != FOLLOWER then if $data[1][2] != follower then
goto check_mnode_ready_3 goto check_mnode_ready_3
endi endi
if $data[0][2] != FOLLOWER then if $data[0][2] != follower then
goto check_mnode_ready_3 goto check_mnode_ready_3
endi endi
endi endi
......
...@@ -392,6 +392,31 @@ class TDTestCase: ...@@ -392,6 +392,31 @@ class TDTestCase:
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;") tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;")
assert unionallQnode==tdSql.queryResult assert unionallQnode==tdSql.queryResult
queryPolicy=1
tdSql.execute('alter local "queryPolicy" "%d"'%queryPolicy)
tdSql.query("show local variables;")
for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "queryPolicy" :
if int(tdSql.queryResult[i][1]) == int(queryPolicy):
tdLog.success('alter queryPolicy to %d successfully'%queryPolicy)
else :
tdLog.debug(tdSql.queryResult)
tdLog.exit("alter queryPolicy to %d failed"%queryPolicy)
tdSql.execute("reset query cache")
tdSql.execute("use db1;")
tdSql.query("show dnodes;")
dnodeId=tdSql.getData(0,0)
tdSql.query("select max(c1) from stb10;")
assert maxQnode==tdSql.getData(0,0)
tdSql.query("select min(c1) from stb11;")
assert minQnode==tdSql.getData(0,0)
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union select c0,c1 from stb11_1 where c0>2000;")
assert unionQnode==tdSql.queryResult
tdSql.query("select c0,c1 from stb11_1 where (c0>1000) union all select c0,c1 from stb11_1 where c0>2000;")
assert unionallQnode==tdSql.queryResult
# test case : queryPolicy = 2 # test case : queryPolicy = 2
def test_case2(self): def test_case2(self):
self.taosBenchCreate("127.0.0.1","no","db1", "stb1", 10, 2, 1*10) self.taosBenchCreate("127.0.0.1","no","db1", "stb1", 10, 2, 1*10)
......
...@@ -40,9 +40,9 @@ class TDTestCase: ...@@ -40,9 +40,9 @@ class TDTestCase:
f"insert into rct{j} values ( {ts+i*10000}, {80+i}, {90+i}, {85+i}, {30+i*10}, {1.2*i}, {221+i*2}, {20+i*0.2}, {1500+i*20}, {150+i*2},{5+i} )" f"insert into rct{j} values ( {ts+i*10000}, {80+i}, {90+i}, {85+i}, {30+i*10}, {1.2*i}, {221+i*2}, {20+i*0.2}, {1500+i*20}, {150+i*2},{5+i} )"
) )
tdSql.execute( tdSql.execute(
f"insert into dct{j} values ( {ts+i*10000}, {1+i*0.1},{1400+i*15}, {1+i},{1500+i*20}, {150+i*2},{5+i} )" f"insert into dct{j} values ( {ts+i*10000}, {1+i*0.1},{1400+i*15}, {i},{1500+i*20}, {150+i*2},{5+i} )"
) )
tdSql.execute("insert into dct9 (ts,fuel_state) values('2021-07-13 14:06:33.123Z',1.2) ;")
# def check_avg(self ,origin_query , check_query): # def check_avg(self ,origin_query , check_query):
# avg_result = tdSql.getResult(origin_query) # avg_result = tdSql.getResult(origin_query)
# origin_result = tdSql.getResult(check_query) # origin_result = tdSql.getResult(check_query)
...@@ -60,13 +60,15 @@ class TDTestCase: ...@@ -60,13 +60,15 @@ class TDTestCase:
def tsbsIotQuery(self): def tsbsIotQuery(self):
tdSql.execute("use db_tsbs") tdSql.execute("use db_tsbs")
# test interval and partition # test interval and partition
tdSql.query(" SELECT avg(velocity) as mean_velocity ,name,driver,fleet FROM readings WHERE ts > 1451606400000 AND ts <= 1451606460000 partition BY name,driver,fleet; ") tdSql.query(" SELECT avg(velocity) as mean_velocity ,name,driver,fleet FROM readings WHERE ts > 1451606400000 AND ts <= 1451606460000 partition BY name,driver,fleet; ")
print(tdSql.queryResult)
parRows=tdSql.queryRows parRows=tdSql.queryRows
tdSql.query(" SELECT avg(velocity) as mean_velocity ,name,driver,fleet FROM readings WHERE ts > 1451606400000 AND ts <= 1451606460000 partition BY name,driver,fleet interval(10m); ") tdSql.query(" SELECT avg(velocity) as mean_velocity ,name,driver,fleet FROM readings WHERE ts > 1451606400000 AND ts <= 1451606460000 partition BY name,driver,fleet interval(10m); ")
# tdSql.checkRows(parRows) tdSql.checkRows(parRows)
# test insert into # test insert into
...@@ -77,18 +79,53 @@ class TDTestCase: ...@@ -77,18 +79,53 @@ class TDTestCase:
# test paitition interval fill # test paitition interval fill
# tdSql.query("SELECT name,floor(avg(velocity)/10)/floor(avg(velocity)/10) AS mv FROM readings WHERE name!='' AND ts > '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by name interval(10m) fill(value,0) ;") tdSql.query("SELECT name,floor(avg(velocity)/10)/floor(avg(velocity)/10) AS mv FROM readings WHERE name!='' AND ts > '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by name interval(10m) fill(value,0) ;")
# # test partition interval limit # test partition interval limit (PRcore-TD-17410)
# tdSql.query("SELECT ts,model,floor(2*(sum(nzs)/count(nzs)))/floor(2*(sum(nzs)/count(nzs))) AS broken_down FROM (SELECT ts,model, status/status AS nzs FROM diagnostics WHERE ts >= '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' ) WHERE ts >= '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition BY model,ts interval(10m) limit 10;") # tdSql.query("select name,driver from (SELECT name,driver,fleet ,avg(velocity) as mean_velocity FROM readings partition BY name,driver,fleet interval (10m) limit 1);")
# tdSql.checkRows(10) # tdSql.checkRows(10)
# test partition interval Pseudo time-column # test partition interval Pseudo time-column
tdSql.query("SELECT count(ms1)/144 FROM (SELECT _wstart as ts1,model, fleet,avg(status) AS ms1 FROM diagnostics WHERE ts >= '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by model, fleet interval(10m)) WHERE ts1 >= '2016-01-01T00:00:00Z' AND ts1 < '2016-01-05T00:00:01Z' AND ms1<1;") tdSql.query("SELECT count(ms1)/144 FROM (SELECT _wstart as ts1,model, fleet,avg(status) AS ms1 FROM diagnostics WHERE ts >= '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by model, fleet interval(10m)) WHERE ts1 >= '2016-01-01T00:00:00Z' AND ts1 < '2016-01-05T00:00:01Z' AND ms1<1;")
# 1 high-load:
# tdSql.query("SELECT ts,name,driver,current_load,load_capacity FROM (SELECT last(ts) as ts,name,driver, current_load,load_capacity FROM diagnostics WHERE fleet = 'South' partition by name,driver) WHERE current_load>= (0.9 * load_capacity) partition by name ORDER BY name desc, ts DESC;")
# tdSql.query("SELECT ts,name,driver,current_load,load_capacity FROM (SELECT last(ts) as ts,name,driver, current_load,load_capacity FROM diagnostics WHERE fleet = 'South' partition by name,driver) WHERE current_load>= (0.9 * load_capacity) partition by name ORDER BY name ;")
# 2 stationary-trucks
tdSql.query("select name,driver from (SELECT name,driver,fleet ,avg(velocity) as mean_velocity FROM readings WHERE ts > '2016-01-01T15:07:21Z' AND ts <= '2016-01-01T16:17:21Z' partition BY name,driver,fleet interval(10m) LIMIT 1)")
tdSql.query("select name,driver from (SELECT name,driver,fleet ,avg(velocity) as mean_velocity FROM readings WHERE ts > '2016-01-01T15:07:21Z' AND ts <= '2016-01-01T16:17:21Z' partition BY name,driver,fleet interval(10m) LIMIT 1) WHERE fleet = 'West' AND mean_velocity < 1000 partition BY name")
# 3 long-driving-sessions
# tdSql.query("SELECT name,driver FROM(SELECT name,driver,count(*) AS ten_min FROM(SELECT _wstart as ts,name,driver,avg(velocity) as mean_velocity FROM readings where ts > '2016-01-01T00:00:34Z' AND ts <= '2016-01-01T04:00:34Z' partition BY name,driver interval(10m)) WHERE mean_velocity > 1 GROUP BY name,driver) WHERE ten_min > 22 ;")
#4 long-daily-sessions
tdSql.query("SELECT name,driver FROM(SELECT name,driver,count(*) AS ten_min FROM(SELECT name,driver,avg(velocity) as mean_velocity FROM readings WHERE fleet ='West' AND ts > '2016-01-01T12:31:37Z' AND ts <= '2016-01-05T12:31:37Z' partition BY name,driver interval(10m) ) WHERE mean_velocity > 1 GROUP BY name,driver) WHERE ten_min > 60")
# 5. avg-daily-driving-duration
tdSql.query("select _wstart as ts,fleet,name,driver,count(mv)/6 as hours_driven from ( select _wstart as ts,fleet,name,driver,avg(velocity) as mv from readings where ts > '2016-01-01T00:00:00Z' and ts < '2016-01-05T00:00:01Z' partition by fleet,name,driver interval(10m)) where ts > '2016-01-01T00:00:00Z' and ts < '2016-01-05T00:00:01Z' partition by fleet,name,driver interval(1d) ;")
# 6. avg-daily-driving-session
#taosc core dumped
tdSql.execute("create table random_measure2_1 (ts timestamp,ela float, name binary(40))")
tdSql.query("SELECT ts,diff(mv) AS difka FROM (SELECT ts,name,floor(avg(velocity)/10)/floor(avg(velocity)/10) AS mv FROM readings WHERE name!='' AND ts > '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by name,ts interval(10m) fill(value,0)) GROUP BY name,ts;")
tdSql.query("SELECT _wstart,name,floor(avg(velocity)/10)/floor(avg(velocity)/10) AS mv FROM readings WHERE name!='' AND ts > '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by name interval(10m) fill(value,0)")
# 7. avg-load
tdSql.query("SELECT fleet, model,avg(ml) AS mean_load_percentage FROM (SELECT fleet, model,current_load/load_capacity AS ml FROM diagnostics partition BY name, fleet, model) partition BY fleet, model order by fleet ;")
# 8. daily-activity
tdSql.query(" SELECT model,ms1 FROM (SELECT _wstart as ts1,model, fleet,avg(status) AS ms1 FROM diagnostics WHERE ts >= '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by model, fleet interval(10m) fill(value,0)) WHERE ts1 >= '2016-01-01T00:00:00Z' AND ts1 < '2016-01-05T00:00:01Z' AND ms1<1;")
tdSql.query("SELECT _wstart,model,fleet,count(ms1)/144 FROM (SELECT _wstart as ts1,model, fleet,avg(status) AS ms1 FROM diagnostics WHERE ts >= '2016-01-01T00:00:00Z' AND ts < '2016-01-05T00:00:01Z' partition by model, fleet interval(10m) fill(value,0)) WHERE ts1 >= '2016-01-01T00:00:00Z' AND ts1 < '2016-01-05T00:00:01Z' AND ms1<1 partition by model, fleet interval(1d) ;")
#it's already supported:
# last-loc
tdSql.query("")
# test
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
tdLog.printNoPrefix("==========step1:create database and table,insert data ==============") tdLog.printNoPrefix("==========step1:create database and table,insert data ==============")
self.prepareData() self.prepareData()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册