168 lines
6.5 KiB
Python
168 lines
6.5 KiB
Python
###################################################################
|
|
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
|
# All rights reserved.
|
|
#
|
|
# This file is proprietary and confidential to TAOS Technologies.
|
|
# No part of this file may be reproduced, stored, transmitted,
|
|
# disclosed or used in any form or by any means other than as
|
|
# expressly provided by the written permission from Jianhui Tao
|
|
#
|
|
###################################################################
|
|
|
|
# -*- coding: utf-8 -*-
|
|
import threading
|
|
import taos
|
|
|
|
import json
|
|
import time
|
|
import random
|
|
# query sql
|
|
query_sql = [
|
|
# first supertable
|
|
"select count(*) from test.meters where c1 > 50;",
|
|
"select count(*) from test.meters where c2 >= 50 and c2 < 100;",
|
|
"select count(*) from test.meters where c3 != 5;",
|
|
"select count(*) from test.meters where t3 > 2;",
|
|
"select count(*) from test.meters where ts <> '2020-05-13 10:00:00.002';",
|
|
"select count(*) from test.meters where t7 like 'fi%';",
|
|
"select count(*) from test.meters where t7 like '_econd';",
|
|
"select count(*) from test.meters interval(1n) order by ts desc;",
|
|
"select max(c0) from test.meters group by tbname",
|
|
"select first(*) from test.meters;",
|
|
"select last(*) from test.meters;",
|
|
"select last_row(*) from test.meters;",
|
|
"select twa(c1) from test.t1 where ts > 1500000001000 and ts < 1500000101000" ,
|
|
"select avg(c1) from test.meters;",
|
|
"select bottom(c1, 2) from test.t1;",
|
|
"select diff(c1) from test.t1;",
|
|
"select leastsquares(c1, 1, 1) from test.t1 ;",
|
|
"select max(c1) from test.meters;",
|
|
"select min(c1) from test.meters;",
|
|
"select c1 + c2 * c3 + c1 / c5 + c4 + c2 from test.t1;",
|
|
"select percentile(c1, 50) from test.t1;",
|
|
"select spread(c1) from test.t1 ;",
|
|
"select stddev(c1) from test.t1;",
|
|
"select sum(c1) from test.meters;",
|
|
"select top(c1, 2) from test.meters;"
|
|
"select twa(c6) from test.t1 where ts > 1500000001000 and ts < 1500000101000" ,
|
|
"select avg(c6) from test.meters;",
|
|
"select bottom(c6, 2) from test.t1;",
|
|
"select diff(c6) from test.t1;",
|
|
"select leastsquares(c6, 1, 1) from test.t1 ;",
|
|
"select max(c6) from test.meters;",
|
|
"select min(c6) from test.meters;",
|
|
"select c6 + c2 * c3 + c6 / c5 + c4 + c2 from test.t1;",
|
|
"select percentile(c6, 50) from test.t1;",
|
|
"select spread(c6) from test.t1 ;",
|
|
"select stddev(c6) from test.t1;",
|
|
"select sum(c6) from test.meters;",
|
|
"select top(c6, 2) from test.meters;",
|
|
#all vnode
|
|
"select count(*) from test.meters where t5 >2500 and t5<7500",
|
|
"select max(c0),avg(c1) from test.meters where t5 >2500 and t5<7500",
|
|
"select sum(c5),avg(c1) from test.meters where t5 >2500 and t5<7500",
|
|
"select max(c0),min(c6) from test.meters where t5 >2500 and t5<7500",
|
|
"select min(c0),avg(c6) from test.meters where t5 >2500 and t5<7500",
|
|
# second supertable
|
|
"select count(*) from test.meters1 where c1 > 50;",
|
|
"select count(*) from test.meters1 where c2 >= 50 and c2 < 100;",
|
|
"select count(*) from test.meters1 where c3 != 5;",
|
|
"select count(*) from test.meters1 where t3 > 2;",
|
|
"select count(*) from test.meters1 where ts <> '2020-05-13 10:00:00.002';",
|
|
"select count(*) from test.meters1 where t7 like 'fi%';",
|
|
"select count(*) from test.meters1 where t7 like '_econd';",
|
|
"select count(*) from test.meters1 interval(1n) order by ts desc;",
|
|
"select max(c0) from test.meters1 group by tbname",
|
|
"select first(*) from test.meters1;",
|
|
"select last(*) from test.meters1;",
|
|
"select last_row(*) from test.meters1;",
|
|
"select twa(c1) from test.m1 where ts > 1500000001000 and ts < 1500000101000" ,
|
|
"select avg(c1) from test.meters1;",
|
|
"select bottom(c1, 2) from test.m1;",
|
|
"select diff(c1) from test.m1;",
|
|
"select leastsquares(c1, 1, 1) from test.m1 ;",
|
|
"select max(c1) from test.meters1;",
|
|
"select min(c1) from test.meters1;",
|
|
"select c1 + c2 * c3 + c1 / c5 + c3 + c2 from test.m1;",
|
|
"select percentile(c1, 50) from test.m1;",
|
|
"select spread(c1) from test.m1 ;",
|
|
"select stddev(c1) from test.m1;",
|
|
"select sum(c1) from test.meters1;",
|
|
"select top(c1, 2) from test.meters1;",
|
|
"select twa(c6) from test.m1 where ts > 1500000001000 and ts < 1500000101000" ,
|
|
"select avg(c6) from test.meters1;",
|
|
"select bottom(c6, 2) from test.m1;",
|
|
"select diff(c6) from test.m1;",
|
|
"select leastsquares(c6, 1, 1) from test.m1 ;",
|
|
"select max(c6) from test.meters1;",
|
|
"select min(c6) from test.meters1;",
|
|
"select c6 + c2 * c3 + c6 / c5 + c3 + c2 from test.m1;",
|
|
"select percentile(c6, 50) from test.m1;",
|
|
"select spread(c6) from test.m1 ;",
|
|
"select stddev(c6) from test.m1;",
|
|
"select sum(c6) from test.meters1;",
|
|
"select top(c6, 2) from test.meters1;",
|
|
"select count(*) from test.meters1 where t5 >2500 and t5<7500",
|
|
#all vnode
|
|
"select count(*) from test.meters1 where t5 >2500 and t5<7500",
|
|
"select max(c0),avg(c1) from test.meters1 where t5 >2500 and t5<7500",
|
|
"select sum(c5),avg(c1) from test.meters1 where t5 >2500 and t5<7500",
|
|
"select max(c0),min(c6) from test.meters1 where t5 >2500 and t5<7500",
|
|
"select min(c0),avg(c6) from test.meters1 where t5 >2500 and t5<7500",
|
|
#join
|
|
"select * from meters,meters1 where meters.ts = meters1.ts and meters.t5 = meters1.t5",
|
|
"select * from meters,meters1 where meters.ts = meters1.ts and meters.t7 = meters1.t7",
|
|
"select * from meters,meters1 where meters.ts = meters1.ts and meters.t8 = meters1.t8",
|
|
"select meters.ts,meters1.c2 from meters,meters1 where meters.ts = meters1.ts and meters.t8 = meters1.t8"
|
|
]
|
|
|
|
class ConcurrentInquiry:
|
|
def initConnection(self):
|
|
self.numOfTherads = 50
|
|
self.ts=1500000001000
|
|
|
|
|
|
def query_thread(self,threadID):
|
|
host = "10.211.55.14"
|
|
user = "root"
|
|
password = "taosdata"
|
|
conn = taos.connect(
|
|
host,
|
|
user,
|
|
password,
|
|
)
|
|
cl = conn.cursor()
|
|
cl.execute("use test;")
|
|
|
|
print("Thread %d: starting" % threadID)
|
|
|
|
while True:
|
|
ran_query_sql=query_sql
|
|
random.shuffle(ran_query_sql)
|
|
for i in ran_query_sql:
|
|
print("Thread %d : %s"% (threadID,i))
|
|
try:
|
|
cl.execute(i)
|
|
cl.fetchall
|
|
except Exception as e:
|
|
print(
|
|
"Failure thread%d, sql: %s,exception: %s" %
|
|
(threadID, str(i),str(e)))
|
|
|
|
|
|
print("Thread %d: finishing" % threadID)
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
threads = []
|
|
for i in range(50):
|
|
thread = threading.Thread(target=self.query_thread, args=(i,))
|
|
threads.append(thread)
|
|
thread.start()
|
|
|
|
q = ConcurrentInquiry()
|
|
q.initConnection()
|
|
q.run()
|