concurrent_inquiry.py 7.3 KB
Newer Older
L
liuyq-617 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14
###################################################################
#           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
L
liuyq-617 已提交
15
import sys
L
liuyq-617 已提交
16 17 18 19 20 21
import json
import time
import random
# query sql
query_sql = [
# first supertable
L
liuyq-617 已提交
22
"select count(*) from test.meters ;",
L
liuyq-617 已提交
23 24
"select count(*) from test.meters where t3 > 2;",
"select count(*) from test.meters where ts <> '2020-05-13 10:00:00.002';",
L
liuyq-617 已提交
25 26 27
"select count(*) from test.meters where t7 like 'taos_1%';",
"select count(*) from test.meters where t7 like '_____2';",
"select count(*) from test.meters where t8 like '%思%';",
L
liuyq-617 已提交
28
"select count(*) from test.meters interval(1n) order by ts desc;",
L
liuyq-617 已提交
29 30 31
#"select max(c0) from test.meters group by tbname",
"select first(ts)  from test.meters where t5 >5000 and t5<5100;",
"select last(ts)  from test.meters where t5 >5000 and t5<5100;",
L
liuyq-617 已提交
32 33
"select last_row(*)  from test.meters;",
"select twa(c1) from test.t1 where ts > 1500000001000  and ts < 1500000101000" ,
L
liuyq-617 已提交
34
"select avg(c1) from test.meters where t5 >5000 and t5<5100;",
L
liuyq-617 已提交
35 36 37
"select bottom(c1, 2) from test.t1;",
"select diff(c1) from test.t1;",
"select leastsquares(c1, 1, 1) from test.t1  ;",
L
liuyq-617 已提交
38 39 40
"select max(c1) from test.meters where t5 >5000 and t5<5100;",
"select min(c1) from test.meters where t5 >5000 and t5<5100;",
"select c1 + c2 + c1 / c5 + c4 + c2 from test.t1;",
L
liuyq-617 已提交
41 42 43
"select percentile(c1, 50) from test.t1;",
"select spread(c1) from test.t1  ;",
"select stddev(c1) from test.t1;",
L
liuyq-617 已提交
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
"select sum(c1) from test.meters where t5 >5000 and t5<5100;",
"select top(c1, 2) from test.meters where t5 >5000 and t5<5100;"
"select twa(c4) from test.t1 where ts > 1500000001000  and ts < 1500000101000" ,
"select avg(c4) from test.meters where t5 >5000 and t5<5100;",
"select bottom(c4, 2) from test.t1 where t5 >5000 and t5<5100;",
"select diff(c4) from test.t1 where t5 >5000 and t5<5100;",
"select leastsquares(c4, 1, 1) from test.t1  ;",
"select max(c4) from test.meters where t5 >5000 and t5<5100;",
"select min(c4) from test.meters where t5 >5000 and t5<5100;",
"select c5 + c2  + c4 / c5 + c4 + c2 from test.t1 ;",
"select percentile(c5, 50) from test.t1;",
"select spread(c5) from test.t1  ;",
"select stddev(c5) from test.t1 where t5 >5000 and t5<5100;",
"select sum(c5) from test.meters where t5 >5000 and t5<5100;",
"select top(c5, 2) from test.meters where t5 >5000 and t5<5100;",
L
liuyq-617 已提交
59
#all vnode
L
liuyq-617 已提交
60 61 62 63 64
"select count(*) from test.meters where t5 >5000 and t5<5100",       
"select max(c0),avg(c1) from test.meters where t5 >5000 and t5<5100",
"select sum(c5),avg(c1) from test.meters where t5 >5000 and t5<5100",
"select max(c0),min(c5) from test.meters where t5 >5000 and t5<5100",
"select min(c0),avg(c5) from test.meters where t5 >5000 and t5<5100",
L
liuyq-617 已提交
65 66 67
# second supertable
"select count(*) from test.meters1 where t3 > 2;",
"select count(*) from test.meters1 where ts <> '2020-05-13 10:00:00.002';",
L
liuyq-617 已提交
68 69 70
"select count(*) from test.meters where t7 like 'taos_1%';",
"select count(*) from test.meters where t7 like '_____2';",
"select count(*) from test.meters where t8 like '%思%';",
L
liuyq-617 已提交
71
"select count(*) from test.meters1 interval(1n) order by ts desc;",
L
liuyq-617 已提交
72 73 74 75
#"select max(c0) from test.meters1 group by tbname",
"select first(ts)  from test.meters1 where t5 >5000 and t5<5100;",
"select last(ts)  from test.meters1 where t5 >5000 and t5<5100;",
"select last_row(*)  from test.meters1 ;",
L
liuyq-617 已提交
76
"select twa(c1) from test.m1 where ts > 1500000001000  and ts < 1500000101000" ,
L
liuyq-617 已提交
77 78 79
"select avg(c1) from test.meters1 where t5 >5000 and t5<5100;",
"select bottom(c1, 2) from test.m1 where t5 >5000 and t5<5100;",
"select diff(c1) from test.m1 ;",
L
liuyq-617 已提交
80
"select leastsquares(c1, 1, 1) from test.m1  ;",
L
liuyq-617 已提交
81 82 83
"select max(c1) from test.meters1 where t5 >5000 and t5<5100;",
"select min(c1) from test.meters1 where t5 >5000 and t5<5100;",
"select c1 + c2 + c1 / c0 + c2 from test.m1 ;",
L
liuyq-617 已提交
84 85 86
"select percentile(c1, 50) from test.m1;",
"select spread(c1) from test.m1  ;",
"select stddev(c1) from test.m1;",
L
liuyq-617 已提交
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
"select sum(c1) from test.meters1 where t5 >5000 and t5<5100;",
"select top(c1, 2) from test.meters1 where t5 >5000 and t5<5100;",
"select twa(c5) from test.m1 where ts > 1500000001000  and ts < 1500000101000" ,
"select avg(c5) from test.meters1 where t5 >5000 and t5<5100;",
"select bottom(c5, 2) from test.m1;",
"select diff(c5) from test.m1;",
"select leastsquares(c5, 1, 1) from test.m1  ;",
"select max(c5) from test.meters1 where t5 >5000 and t5<5100;",
"select min(c5) from test.meters1 where t5 >5000 and t5<5100;",
"select c5 + c2  + c4 / c5  + c0 from test.m1;",
"select percentile(c4, 50) from test.m1;",
"select spread(c4) from test.m1  ;",
"select stddev(c4) from test.m1;",
"select sum(c4) from test.meters1 where t5 >5100 and t5<5300;",
"select top(c4, 2) from test.meters1 where t5 >5100 and t5<5300;",
"select count(*) from test.meters1 where t5 >5100 and t5<5300",
L
liuyq-617 已提交
103
#all vnode
L
liuyq-617 已提交
104 105 106 107 108
"select count(*) from test.meters1 where t5 >5100 and t5<5300",       
"select max(c0),avg(c1) from test.meters1 where t5 >5000 and t5<5100",
"select sum(c5),avg(c1) from test.meters1 where t5 >5000 and t5<5100",
"select max(c0),min(c5) from test.meters1 where t5 >5000 and t5<5100",
"select min(c0),avg(c5) from test.meters1 where t5 >5000 and t5<5100",
L
liuyq-617 已提交
109
#join 
L
liuyq-617 已提交
110 111 112 113
# "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"
L
liuyq-617 已提交
114 115 116 117 118 119 120
]

class ConcurrentInquiry:
    def initConnection(self):  
        self.numOfTherads = 50
        self.ts=1500000001000
        
L
liuyq-617 已提交
121 122
    def SetThreadsNum(self,num):
        self.numOfTherads=num
L
liuyq-617 已提交
123 124 125 126 127 128 129 130 131 132
    def query_thread(self,threadID):
        host = "10.211.55.14"
        user = "root"
        password = "taosdata"
        conn = taos.connect(
            host,
            user,
            password,
            )
        cl = conn.cursor()
L
liuyq-617 已提交
133
        cl.execute("use test;")
L
liuyq-617 已提交
134 135 136 137 138 139 140 141 142
        
        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:
L
liuyq-617 已提交
143
                    start = time.time()
L
liuyq-617 已提交
144 145
                    cl.execute(i)
                    cl.fetchall
L
liuyq-617 已提交
146 147
                    end = time.time()
                    print("time cost :",end-start)
L
liuyq-617 已提交
148 149 150 151
                except Exception as e:
                    print(
                "Failure thread%d, sql: %s,exception: %s" %
                (threadID, str(i),str(e)))
L
liuyq-617 已提交
152
                    exit(-1)
L
liuyq-617 已提交
153 154 155 156 157 158 159
                    
                
            print("Thread %d: finishing" % threadID)
          
        

    def run(self):
L
liuyq-617 已提交
160
            
L
liuyq-617 已提交
161
        threads = []
L
liuyq-617 已提交
162
        for i in range(self.numOfTherads):
L
liuyq-617 已提交
163 164 165 166 167 168 169
            thread = threading.Thread(target=self.query_thread, args=(i,))
            threads.append(thread)
            thread.start()  
        
q = ConcurrentInquiry()
q.initConnection()
q.run()