143 lines
4.2 KiB
Python
143 lines
4.2 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 os
|
|
import random
|
|
import argparse
|
|
|
|
class taosdemoWrapper:
|
|
|
|
def __init__(self, host, metadata, database, tables, threads, configDir, replica,
|
|
columnType, columnsPerTable, rowsPerTable, disorderRatio, disorderRange, charTypeLen):
|
|
self.host = host
|
|
self.metadata = metadata
|
|
self.database = database
|
|
self.tables = tables
|
|
self.threads = threads
|
|
self.configDir = configDir
|
|
self.replica = replica
|
|
self.columnType = columnType
|
|
self.columnsPerTable = columnsPerTable
|
|
self.rowsPerTable = rowsPerTable
|
|
self.disorderRatio = disorderRatio
|
|
self.disorderRange = disorderRange
|
|
self.charTypeLen = charTypeLen
|
|
|
|
def run(self):
|
|
if self.metadata is None:
|
|
os.system("taosdemo -h %s -d %s -t %d -T %d -c %s -a %d -b %s -n %d -t %d -O %d -R %d -w %d -x -y"
|
|
% (self.host, self.database, self.tables, self.threads, self.configDir, self.replica, self.columnType,
|
|
self.rowsPerTable, self.disorderRatio, self.disorderRange, self.charTypeLen))
|
|
else:
|
|
os.system("taosdemo -f %s" % self.metadata)
|
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
'-H',
|
|
'--host-name',
|
|
action='store',
|
|
default='tdnode1',
|
|
type=str,
|
|
help='host name to be connected (default: tdnode1)')
|
|
parser.add_argument(
|
|
'-f',
|
|
'--metadata',
|
|
action='store',
|
|
default=None,
|
|
type=str,
|
|
help='The meta data to execution procedure, if use -f, all other options invalid, Default is NULL')
|
|
parser.add_argument(
|
|
'-d',
|
|
'--db-name',
|
|
action='store',
|
|
default='test',
|
|
type=str,
|
|
help='Database name to be created (default: test)')
|
|
parser.add_argument(
|
|
'-t',
|
|
'--num-of-tables',
|
|
action='store',
|
|
default=10,
|
|
type=int,
|
|
help='Number of tables (default: 10000)')
|
|
parser.add_argument(
|
|
'-T',
|
|
'--num-of-threads',
|
|
action='store',
|
|
default=10,
|
|
type=int,
|
|
help='Number of rest threads (default: 10)')
|
|
parser.add_argument(
|
|
'-c',
|
|
'--config-dir',
|
|
action='store',
|
|
default='/etc/taos/',
|
|
type=str,
|
|
help='Configuration directory. (Default is /etc/taos/)')
|
|
parser.add_argument(
|
|
'-a',
|
|
'--replica',
|
|
action='store',
|
|
default=100,
|
|
type=int,
|
|
help='Set the replica parameters of the database (default: 1, min: 1, max: 3)')
|
|
parser.add_argument(
|
|
'-b',
|
|
'--column-type',
|
|
action='store',
|
|
default='int',
|
|
type=str,
|
|
help='the data_type of columns (default: TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE,BINARY,NCHAR,BOOL,TIMESTAMP)')
|
|
parser.add_argument(
|
|
'-l',
|
|
'--num-of-cols',
|
|
action='store',
|
|
default=10,
|
|
type=int,
|
|
help='The number of columns per record (default: 10)')
|
|
parser.add_argument(
|
|
'-n',
|
|
'--num-of-rows',
|
|
action='store',
|
|
default=1000,
|
|
type=int,
|
|
help='Number of subtales per stable (default: 1000)')
|
|
parser.add_argument(
|
|
'-O',
|
|
'--disorder-ratio',
|
|
action='store',
|
|
default=0,
|
|
type=int,
|
|
help=' (0: in order, > 0: disorder ratio, default: 0)')
|
|
parser.add_argument(
|
|
'-R',
|
|
'--disorder-range',
|
|
action='store',
|
|
default=0,
|
|
type=int,
|
|
help='Out of order datas range, ms (default: 1000)')
|
|
parser.add_argument(
|
|
'-w',
|
|
'--char-type-length',
|
|
action='store',
|
|
default=16,
|
|
type=int,
|
|
help='Out of order datas range, ms (default: 16)')
|
|
|
|
args = parser.parse_args()
|
|
taosdemo = taosdemoWrapper(args.host_name, args.metadata, args.db_name, args.num_of_tables,
|
|
args.num_of_threads, args.config_dir, args.replica, args.column_type, args.num_of_cols,
|
|
args.num_of_rows, args.disorder_ratio, args.disorder_range, args.char_type_length)
|
|
taosdemo.run()
|