无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

TDengine taosdemo工具使用指南

浩然 陳

2020-12-29 / ,

TDengine產品提供一個數據庫數據的測試工具,支持數據的插入、查詢、訂閱等功能和性能的驗證。

(工具的參數內容有可能因版本更新而改變,請以 help 實際輸出的聯機幫助信息為準。)

TAOSDEMO命令幫助

root@taos-ec1:/dump# ./taosdemo --help
Usage: taosdemo [OPTION...]
?
      -f       The meta file to the execution procedure. Default is './meta.json'.
      -u       The TDengine user name to use when connecting to the server. Default is 'root'.
      -P       The password to use when connecting to the server. Default is 'taosdata'.
      -c       Configuration directory. Default is '/etc/taos/'.
      -h       The host to connect to TDengine. Default is localhost.
      -p       The TCP/IP port number to use for the connection. Default is 0.
      -d       Destination database. Default is 'test'.
      -a       Set the replica parameters of the database, Default 1, min: 1, max: 3.
      -m       Table prefix name. Default is 't'.
      -s       The select sql file.
      -N       Use normal table flag.
      -o       Direct output to the named file. Default is './output.txt'.
      -q       Query mode--0: SYNC, 1: ASYNC. Default is SYNC.
      -b       The data_type of columns, default: INT,INT,INT,INT.
      -w       The length of data_type 'BINARY' or 'NCHAR'. Default is 16
      -l       The number of columns per record. Default is 4.
      -T       The number of threads. Default is 10.
      -i       The sleep time (ms) between insertion. Default is 0.
      -r       The number of records per request. Default is 100.
      -t       The number of tables. Default is 10000.
      -n       The number of records per table. Default is 10000.
      -x       Not insert only flag.
      -y       Default input yes for prompt.
      -O       Insert mode--0: In order, 1 ~ 50: disorder ratio. Default is in order.
      -R       Out of order data's range, ms, default is 1000.
      -g       Print debug info.
      -V, --version       Print version info.
       

taosdemo支持兩種配置參數的模式,一種是命令行參數,一種是使用json格式的配置文件。

一、命令行參數

-f:指定taosdemo所需參數的meta文件。當使用該參數時,其他所有命令行參數都失效。可選項,缺省是NULL。

-u: 用戶名。可選項,缺省是“root“。

-P: 密碼。可選項,缺省是“taosdata”。

-c: 配置文件taos.cfg所在的路徑。因為taosdemo通過包含taos的動態庫,去鏈接taosd服務,所以需要做好配置文件。可選項,缺省是 “/etc/taos”路徑。

-h:taosd服務的FQDN。可選項,缺省是“localhost“。

-p: taosd服務的端口號。可選項,缺省是6030。

-d:數據庫名稱。可選項,缺省是“test”。

-a:副本個數,可選項。1 – 3,缺省是1。

-m:表名的前綴。可選項,缺省是“t”。

-s::執行該文件包含的多條 SQL 查詢命令。

-N:使用普通建表模式。有該選項時,全部創建普通表,否則缺省創建超級表,再根據超級表創建子表;

-o:指定執行結果輸出文件的路徑。可選項,缺省是./output.txt。

-q:查詢模式,0:同步模式;1:異步模式。可選項,缺省是0。

-b:列的類型。可選項,缺省是:INT,INT,INT,INT。

-w:BINARY或NCHAR數據類型的長度。可選項,缺省是16。

-l:列的個數。可選項,缺省是4。

-T:并發線程數。可選項,缺省是10。

-i:兩次sql插入的時間間隔,缺省是0。

-r:每條插入請求包含的記錄數,缺省是30000

-t:表的個數。可選項,缺省是10000。

-n:每個表插入的記錄數。可選項,缺省是10000。

-x:不僅僅插入數據。有該選項時,taosdemo還會進行查詢操作。

-y:提示詢問輸入時缺省輸入yes。

-O:插入亂序數據的比例,0:順序插入;> 0:亂序數據的百分比。可選項,缺省是0。

-R:亂序百分比不為0時,亂序時間戳范圍,單位:毫秒。可選項,缺省是1000。

-g:打印debug信息

-V: 打印taosdemo的debug信息。

–help: 打印命令參數列表。

二、json格式的配置文件中所有參數說明

 taosdemo支持3種功能的測試,包括插入、查詢、訂閱。但一個taosdemo實例不能同時支持3中功能,一個taosdemo實例只能支持其中的一種功能,通過配置文件來指定進行哪種功能的測試。

1、插入功能測試的json配置文件

{
  "filetype": "insert",
  "cfgdir": "/etc/taos",
  "host": "127.0.0.1",
  "port": 6030,
  "user": "root",
  "password": "taosdata",
  "thread_count": 4,                  
  "thread_count_create_tbl": 4,        
  "result_file": "./insert_res.txt",  
  "confirm_parameter_prompt": "no",    
  "insert_interval": 0,        
  "interlace_rows": 100,        
  "num_of_records_per_req": 100,
  "databases": [{
      "dbinfo": {
          "name": "db",
          "drop": "yes",                
          "replica": 1,
          "days": 10,
          "cache": 16,
          "blocks": 8,
          "precision": "ms",
          "keep": 3650,
          "minRows": 100,
          "maxRows": 4096,
          "comp":2,
          "walLevel":1,
          "cachelast":0,
          "quorum":1,
          "fsync":3000,
          "update": 0
      },
      "super_tables": [{
          "name": "stb",
          "child_table_exists":"no",  
          "childtable_count": 100,  
          "childtable_prefix": "stb_",
          "auto_create_table": "no",  
          "batch_create_tbl_num": 5,  
          "data_source": "rand",      
          "insert_mode": "taosc",      
          "insert_rows": 100000,      
          "childtable_limit": 10,      
          "childtable_offset":100,    
          "interlace_rows": 0,        
          "insert_interval":0,        
          "max_sql_len": 1024000,      
          "disorder_ratio": 0,        
          "disorder_range": 1000,      
          "timestamp_step": 10,        
          "start_timestamp": "2020-10-01 00:00:00.000",  
          "sample_format": "csv",      
          "sample_file": "./sample.csv",  
          "tags_file": "",              
          "columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
          "tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
      }]
  }]
}

“filetype”: 本taosdemo實例進行哪種功能測試。”insert”表示數據插入功能。必選項

“cfgdir”: 配置文件taos.cfg所在的路徑。因為taosdemo通過包含taos的動態庫,去鏈接taosd服務,所以需要做好配置文件。可選項,缺省是 “/etc/taos”路徑。

“host”: taosd服務的FQDN。可選項,缺省是“localhost“。

“port”: taosd服務的端口號。可選項,缺省是6030。

“user”: 用戶名。可選項,缺省是“root“。

“password”: 密碼。可選項,缺省是“taosdata”。

“thread_count”: 插入數據時的并發線程數。可選項,缺省是1。

“thread_count_create_tbl”: 建子表時的并發線程數。可選項,缺省是1。

“result_file”: 測試完成后結果保存文件。可選項,缺省是本實例啟動目錄下的”./insert_res.txt”。

“confirm_parameter_prompt”: 執行過程中提示是否確認,為no時,執行過程無需手工輸入enter。可選項,缺省是no。

“insert_interval”: 兩次發送請求的間隔時間。可選項,缺省是0,代表無人工設置的時間間隔,單位為ms。。

“interlace_rows”: 設置輪詢插入每個單表數據的條目數,如果interlace_rows*childtable_count*supertable_num小于num_of_records_per_req時,則請求插入的數目以interlace_rows*childtable_count*supertable_num為準。可選項,缺省是0。

“num_of_records_per_req”: 每條請求數據內容包含的插入數據記錄數目,該數據組成的sql不能大于maxslqlen,如果過大,則取taood限制的1M長度(1048576)。可選項,缺省是INT64_MAX。0代表不插入數據,建議配置大于0。

“databases”: [{

“dbinfo”: { ?

“name”: 數據庫名稱。必選項。

“drop”: 如果數據庫已經存在,”yes“:刪除后重建;”no“:不刪除,直接使用。可選項,缺省是”no“。

“replica”: 副本個數,可選項。1 – 3,缺省是1。

“days”: 數據文件存儲數據的時間跨度,可選項。缺省是10天。

“cache”: 內存塊的大小,單位是MB,可選項。缺省是16MB。

“blocks”: 每個VNODE(TSDB)中有多少cache大小的內存塊,可選項。缺省是6塊。

“precision”: 數據庫時間精度,可選項。”ms”:毫秒, “us”:微秒。缺省是“ms”。

“keep”: 數據保留的天數,可選項。缺省是3650天。

“minRows”: 文件塊中記錄的最小條數,可選項。缺省是100。

“maxRows”: 文件塊中記錄的最大條數,可選項。缺省是4096.

“comp”:文件壓縮標志位,可選項。0:關閉,1:一階段壓縮,2:兩階段壓縮。缺省是2。

“walLevel”:WAL級別,可選項。1:寫wal, 但不執行fsync; 2:寫wal, 而且執行fsync。缺省是1。

“cachelast”:允許在內存中保留每張表的最后一條記錄。1表示允許。

“quorum”:異步寫入成功所需應答之法定數,1-3,可選項。缺省是1。

“fsync”:當wal設置為2時,執行fsync的周期,單位是毫秒,最小為0,表示每次寫入,立即執行fsync. 最大為180000,可選項。缺省是3000。

“update”: 支持數據更新,0:否;1:是。可選項。缺省是0。 ? },

“super_tables”: [{ ?

“name”: 超級表名稱,必選項。

“child_table_exists”: 子表是否已經存在,“yes”:是;”no”:否。指定“是”后,不再建子表,后面相關子表的參數就無效了。可選項,缺省是“no”。

“childtable_count”: 建立子表個數 。該值需要大于0。當child_table_exists為“no”時,必選項,否則就是無效項。

“childtable_prefix”: 子表名稱前綴。當child_table_exists為“no”時,必選項,否則就是無效項。確保數據庫中表名沒有重復。

“auto_create_table”: 子表的創建方式,“yes”:自動建表;”no”:提前建表。當child_table_exists為“yes”時無效。可選項,缺省是“no”。

“batch_create_tbl_num”: 一個sql批量創建子表的數目。

“data_source”: 插入數據來源,”rand”:實例隨機生成;“sample”:從樣例文件中讀取。可選項。缺省是“rand”。

“insert_mode”: 插入數據接口,”taosc”:調用TDengine的c接口;“resetful”:使用restfule接口。可選項。缺省是“taosc”。

“insert_rows”: 插入記錄數,0:一直插入,永不退出;>0:每個子表插入記錄數,完成后實例退出。可選項,缺省是0。

“childtable_offset”: 插入數據時,子表起始值。只在drop=no && child_table_exists= yes,該字段生效。

“childtable_limit”: 插入數據時,子表從offset開始,偏移的表數目。使用者可以運行多個 taosdemo 實例(甚至可以在不同的機器上)通過使用不同的 childtable_offset 和 childtable_limit 配置值來實現同時寫入相同數據庫相同超級表下多個子表。

“interlace_rows”: 跟上面的配置一致,不過該處的配置優先,每個stable可以有自己單獨的配置。

“insert_interval”: 同上。

“max_sql_len”: 同上

“disorder_ratio”: 插入數據時的亂序百分比,可選項,缺省是0。

“disorder_range”: 亂序百分比不為0時,亂序時間戳范圍,單位:ms。可選項,缺省是1000,即1秒或1000毫秒。

“timestamp_step”: 每個子表中記錄時間戳的步長,單位:ms。可選項,缺省是1,即1毫秒。

“start_timestamp”: 子表中記錄時間戳的起始值,支持”2020-10-01 00:00:00.000″和“now”兩種格式,可選項,缺省是“now”。

“sample_format”: 當插入數據源選擇“sample”時,sample文件的格式,”csv”:csv格式,每列的值與子表的columns保持一致,但不包含第1列的時間戳。可選項,缺省是”csv”。目前僅僅支持csv格式的sample文件。

“sample_file”:sample文件,包含路徑和文件名。當插入數據源選擇“sample”時,該項為必選項。

“tags_file”: 子表tags值文件,只能是csv文件格式,且必須與超級表的tags保持一致。當該項為非空時,表示子表的tags值從文件中獲取;為空時,實例隨機生成。可選項,缺省是空。

“columns”: [{ 超級表的column列表,最大支持1024列(指所有普通列+超級列總和)。默認的第一列為時間類型,程序自動添加,不需要手工添加。

“type”: 該列的數據類型 ,必選項。

“len”: 該列的長度,只有type是BINARY或NCHAR時有效,可選項,缺省值是8。

“count”:該類型的連續列個數,可選項,缺省是1。

}],

“tags”: [{ 超級表的tags列表,type不能是timestamp類型, 最大支持128個。

“type”: 該列的數據類型 ,必選項。

“len”: 該列的長度,只有type是BINARY或NCHAR時有效,可選項,缺省值是8。

“count”:該類型的連續列個數,可選項,缺省是1。

}]

2、查詢功能測試的json配置文件

{
"filetype": "query",
"cfgdir": "/etc/taos",
"host": "127.0.0.1",
"port": 6030,
"user": "root",
"password": "taosdata",
"confirm_parameter_prompt": "no",
"databases": "db",
"query_times": 2,
"query_mode": "taosc",
"specified_table_query": {
  "query_interval": 1,
  "concurrent": 3,
  "sqls": [
    {
      "sql": "select last_row(*) from stb0 ",
      "result": "./query_res0.txt"
    },
    {
      "sql": "select count(*) from stb00_1",
      "result": "./query_res1.txt"
    }
  ]
},
"super_table_query": {
  "stblname": "stb1",
  "query_interval": 1,
  "threads": 3,
  "sqls": [
    {
      "sql": "select last_row(ts) from xxxx",
      "result": "./query_res2.txt"
    }
  ]
}
}
?

“filetype”: 本taosdemo實例進行哪種功能測試。”query”表示數據查詢功能。必選項

“cfgdir”: 配置文件taos.cfg所在的路徑。因為taosdemo通過包含taos的動態庫,去鏈接taosd服務,所以需要做好配置文件。可選項,缺省是 “/etc/taos”路徑。

“host”: taosd服務的FQDN。可選項,缺省是“localhost“。

“port”: taosd服務的端口號。可選項,缺省是6030。

“user”: 用戶名。可選項,缺省是“root“。

“password”: 密碼。可選項,缺省是“taosdata”。

“confirm_parameter_prompt”: 執行過程中提示是否確認,為no時,執行過程無需手工輸入enter。可選項,缺省是no。

“databases”: 數據庫名稱。必選項。

“query_times”: 每種查詢類型的查詢次數

“query_mode”: 查詢數據接口,”taosc”:調用TDengine的c接口;“resetful”:使用restfule接口。可選項。缺省是“taosc”。

“specified_table_query”: { 指定表的查詢

“query_interval”: 執行sqls的間隔,單位是毫秒。可選項,缺省是0。

“concurrent”: 并發執行sqls的線程數,可選項,缺省是1。每個線程都執行所有的sqls。

“sqls”: [{ 可以添加多個sql語句,最多支持100條。

“sql”: 查詢語句。必選項。

“result”: 查詢結果寫入的文件名。可選項,缺省是空,表示查詢結果不寫入文件。

}] ? },

“super_table_query”: { 對超級表中所有子表的查詢

“stblname”: 超級表名稱。必選項。

“query_interval”: 執行sqls的間隔,單位是毫秒。可選項,缺省是0。

“threads”: 并發執行sqls的線程數,可選項,缺省是1。每個線程負責一部分子表,執行所有的sqls。

“sqls”: [{ 可以添加多個sql語句,最多支持100條。

“sql”: “select count(*) from xxxx”。查詢語句,其中表名必須寫成 “xxxx”,實例會自動替換成子表名。restful使用db.xxxx。

“result”: 查詢結果寫入的文件名。可選項,缺省是空,表示查詢結果不寫入文件。

}] ? }

注意:

1、每條sql語句后的保存結果的文件不能重名,且生成結果文件時,文件名會附加線程號。

 2、 查詢結果顯示:如果查詢線程結束一次查詢距開始執行時間超過30秒打印一次查詢次數、用時和QPS。所有查詢結束時,匯總打印總的查詢次數和QPS。

3、使用restful的接口時,需要使用dbname.tablename的形式做查詢操作,eg:select last_row(*) from db.stb0。

3、訂閱功能測試的json配置文件

{
  "filetype":"subscribe",
  "cfgdir": "/etc/taos",
  "host": "127.0.0.1",
  "port": 6030,
  "user": "root",
  "password": "taosdata",
  "databases": "db",
  "confirm_parameter_prompt": "no",
  "specified_table_query":
    {
      "concurrent":1,
      "mode":"sync",
      "interval":0,
      "restart":"yes",
      "keepProgress":"yes",
      "sqls": [
      {
        "sql": "select * from stb00_0 ;",
        "result": "./subscribe_res0.txt"
      }]
    },
  "super_table_query":
    {
      "stblname": "stb0",
      "threads":1,
      "mode":"sync",
      "interval":10000,
      "restart":"yes",
      "keepProgress":"yes",
      "sqls": [
      {
        "sql": "select * from xxxx where ts > '2021-02-25 11:35:00.000' ;",
        "result": "./subscribe_res1.txt"
      }]
    }
}

“filetype”: 本taosdemo實例進行哪種功能測試。”subscribe”表示數據查詢功能。必選項

“cfgdir”: 配置文件taos.cfg所在的路徑。因為taosdemo通過包含taos的動態庫,去鏈接taosd服務,所以需要做好配置文件。可選項,缺省是 “/etc/taos”路徑。

“host”: taosd服務的FQDN。可選項,缺省是“localhost“。

“port”: taosd服務的端口號。可選項,缺省是6030。

“user”: 用戶名。可選項,缺省是“root“。

“password”: 密碼。可選項,缺省是“taosdata”。

“databases”: 數據庫名稱。必選項

“confirm_parameter_prompt”: 執行過程中提示是否確認,為no時,執行過程無需手工輸入enter。可選項,缺省是no。

注意:這里的訂閱查詢sql目前只支持select * ,其余不支持。

“specified_table_query”: { 指定表的查詢

“concurrent”: 并發執行sqls的線程數,可選項,缺省是1。每個線程都執行所有的sqls。

“mode”: 訂閱模式。目前支持同步訂閱,缺省是sync。

“interval”: 執行訂閱的間隔,單位是毫秒。可選項,缺省是0。

“restart”: 訂閱重啟。”yes”:如果訂閱已經存在,重新開始,”no”: 繼續之前的訂閱。

“keepProgress”: 保留訂閱信息進度。yes表示保留訂閱信息,no表示不保留。該值為yes,restart為no時,才能繼續之前的訂閱。

“sqls”: [{

“sql”: 查詢語句。必選項。

“result”: 查詢結果寫入的文件名。可選項,缺省是空,表示查詢結果不寫入文件。

}] ? },

“super_table_query”: { 對超級表中所有子表的查詢

“stblname”: 超級表名稱。必選項。

“threads”: 并發執行sqls的線程數,可選項,缺省是1。每個線程都執行所有的sqls。

“mode”: 訂閱模式。

“interval”: 執行sqls的間隔,單位是毫秒。可選項,缺省是0。

“restart”: 訂閱重啟。”yes”:如果訂閱已經存在,重新開始,”no”: 繼續之前的訂閱。

“keepProgress”: 保留訂閱信息進度。yes表示保留訂閱信息,no表示不保留。該值為yes,restart為no時,才能繼續之前的訂閱。

“sqls”: [{

“sql”: ” select count(*) from xxxx “。查詢語句,其中表名必須寫成 “xxxx”,實例會自動替換成子表名。 ?

“result”: 查詢結果寫入的文件名。可選項,缺省是空,表示查詢結果不寫入文件。 ?

}] ? } ?

注意:每條sql語句后的保存結果的文件不能重名,且生成結果文件時,文件名會附加線程號。


文檔依據版本更新。