84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.6 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 sys
 | 
						|
import taos
 | 
						|
import time
 | 
						|
from datetime import datetime
 | 
						|
import csv
 | 
						|
 | 
						|
 | 
						|
class DBWriteNonStop:
 | 
						|
    def __init__(self):
 | 
						|
        self.host = "127.0.0.1"
 | 
						|
        self.user = "root"
 | 
						|
        self.password = "taosdata"
 | 
						|
        self.config = "/etc/taos"
 | 
						|
 | 
						|
    def connectDB(self):
 | 
						|
        self.conn = taos.connect(
 | 
						|
            self.host,
 | 
						|
            self.user,
 | 
						|
            self.password,
 | 
						|
            self.config)
 | 
						|
        self.cursor = self.conn.cursor()
 | 
						|
 | 
						|
    def createTable(self):
 | 
						|
        self.cursor.execute("drop database if exists dbwrite")
 | 
						|
        self.cursor.execute("create database dbwrite")
 | 
						|
        self.cursor.execute("use dbwrite")
 | 
						|
        self.cursor.execute(
 | 
						|
            "create table if not exists st (ts timestamp, value nchar(50), speed int) tags(dev nchar(50))")
 | 
						|
 | 
						|
    def writeDataToCSVFile(self, data, duration):
 | 
						|
        csvFile = open('/root/csvFile.csv', 'a', newline='')
 | 
						|
        writer = csv.writer(csvFile)
 | 
						|
        writer.writerow([data[0][0], data[0][1], data[0][2],
 | 
						|
                         data[0][3], data[0][4], data[0][5], duration])
 | 
						|
        csvFile.close()
 | 
						|
 | 
						|
    def insertData(self):
 | 
						|
        print("===============inserting data===============")
 | 
						|
        i = 1
 | 
						|
        startTime = datetime.now()
 | 
						|
        while True:
 | 
						|
            self.cursor.execute(
 | 
						|
                "insert into st1 using st tags('dev_001') values(now, 'taosdata%d', %d)" %
 | 
						|
                (i %
 | 
						|
                 10000,
 | 
						|
                 i %
 | 
						|
                 100000))
 | 
						|
            i += 1
 | 
						|
            i = i % 32000000
 | 
						|
            endTime = datetime.now()
 | 
						|
            if (endTime - startTime).seconds >= 3600 * 1:
 | 
						|
                startTime = endTime
 | 
						|
                start = datetime.now()
 | 
						|
                self.cursor.execute(
 | 
						|
                    "select first(ts), last(ts), min(speed), max(speed), avg(speed), count(*) from st")
 | 
						|
                data = self.cursor.fetchall()
 | 
						|
                end = datetime.now()
 | 
						|
                self.writeDataToCSVFile(data, (end - start).seconds)
 | 
						|
            time.sleep(.001)
 | 
						|
 | 
						|
    def closeConn(self):
 | 
						|
        self.cursor.close()
 | 
						|
        self.conn.close()
 | 
						|
 | 
						|
 | 
						|
test = DBWriteNonStop()
 | 
						|
test.connectDB()
 | 
						|
test.createTable()
 | 
						|
test.insertData()
 | 
						|
test.closeConn()
 |