[TD-2598] feature: C# taosdemo, cleanup and minor fix.
This commit is contained in:
parent
7f5216b317
commit
2f027acdd5
|
@ -19,13 +19,8 @@ Usage: mono taosdemo.exe [OPTION...]
|
||||||
-d database, Destination database. Default is 'test'.
|
-d database, Destination database. Default is 'test'.
|
||||||
-a replica, Set the replica parameters of the database, Default 1, min: 1, max: 5.
|
-a replica, Set the replica parameters of the database, Default 1, min: 1, max: 5.
|
||||||
-m table_prefix, Table prefix name. Default is 't'.
|
-m table_prefix, Table prefix name. Default is 't'.
|
||||||
-s sql file, The select sql file.
|
|
||||||
-M stable, Use super table.
|
-M stable, Use super table.
|
||||||
-o outputfile, Direct output to the named file. Default is './output.txt'.
|
-s stable_prefix, STable prefix name. Default is 'st'
|
||||||
-q query_mode, Query mode--0: SYNC, 1: ASYNC. Default is SYNC.
|
|
||||||
-b type_of_cols, data_type of columns: 'INT', 'TINYINT', 'SMALLINT', 'BIGINT', 'FLOAT', 'DOUBLE', 'BINARY'. Default is 'INT'.
|
|
||||||
-w length_of_binary, The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8
|
|
||||||
-l num_of_cols_per_record, The number of columns per record. Default is 3.
|
|
||||||
-T num_of_threads, The number of threads. Default is 10.
|
-T num_of_threads, The number of threads. Default is 10.
|
||||||
-r num_of_records_per_req, The number of records per request. Default is 1000.
|
-r num_of_records_per_req, The number of records per request. Default is 1000.
|
||||||
-t num_of_tables, The number of tables. Default is 1.
|
-t num_of_tables, The number of tables. Default is 1.
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace TDengineDriver
|
||||||
|
|
||||||
//sql parameters
|
//sql parameters
|
||||||
private string dbName = "db";
|
private string dbName = "db";
|
||||||
private string stableName = "st";
|
private string stablePrefix = "st";
|
||||||
private string tablePrefix = "t";
|
private string tablePrefix = "t";
|
||||||
|
|
||||||
private bool isInsertOnly = false;
|
private bool isInsertOnly = false;
|
||||||
|
@ -52,7 +52,7 @@ namespace TDengineDriver
|
||||||
private bool useStable = false;
|
private bool useStable = false;
|
||||||
private short methodOfDelete = 0;
|
private short methodOfDelete = 0;
|
||||||
private long numOfThreads = 1;
|
private long numOfThreads = 1;
|
||||||
private long rateOfOutorder = 0;
|
private short rateOfOutorder = 10;
|
||||||
private bool order = true;
|
private bool order = true;
|
||||||
private bool skipReadKey = false;
|
private bool skipReadKey = false;
|
||||||
private bool verbose = false;
|
private bool verbose = false;
|
||||||
|
@ -83,10 +83,11 @@ namespace TDengineDriver
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "replica, Set the replica parameters of the database, Default 1, min: 1, max: 5.");
|
Console.Write("{0}{1}{2}\n", indent, indent, "replica, Set the replica parameters of the database, Default 1, min: 1, max: 5.");
|
||||||
Console.Write("{0}{1}", indent, "-m");
|
Console.Write("{0}{1}", indent, "-m");
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "table_prefix, Table prefix name. Default is 't'.");
|
Console.Write("{0}{1}{2}\n", indent, indent, "table_prefix, Table prefix name. Default is 't'.");
|
||||||
Console.Write("{0}{1}", indent, "-s");
|
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "sql file, The select sql file.");
|
|
||||||
Console.Write("{0}{1}", indent, "-M");
|
Console.Write("{0}{1}", indent, "-M");
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "stable, Use super table.");
|
Console.Write("{0}{1}{2}\n", indent, indent, "stable, Use super table.");
|
||||||
|
Console.Write("{0}{1}", indent, "-s");
|
||||||
|
Console.Write("{0}{1}{2}\n", indent, indent, "stable_prefix, STable prefix name. Default is 'st'");
|
||||||
|
/* NOT SUPPORT
|
||||||
Console.Write("{0}{1}", indent, "-o");
|
Console.Write("{0}{1}", indent, "-o");
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "outputfile, Direct output to the named file. Default is './output.txt'.");
|
Console.Write("{0}{1}{2}\n", indent, indent, "outputfile, Direct output to the named file. Default is './output.txt'.");
|
||||||
Console.Write("{0}{1}", indent, "-q");
|
Console.Write("{0}{1}", indent, "-q");
|
||||||
|
@ -97,6 +98,7 @@ namespace TDengineDriver
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "length_of_binary, The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8");
|
Console.Write("{0}{1}{2}\n", indent, indent, "length_of_binary, The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8");
|
||||||
Console.Write("{0}{1}", indent, "-l");
|
Console.Write("{0}{1}", indent, "-l");
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "num_of_cols_per_record, The number of columns per record. Default is 3.");
|
Console.Write("{0}{1}{2}\n", indent, indent, "num_of_cols_per_record, The number of columns per record. Default is 3.");
|
||||||
|
*/
|
||||||
Console.Write("{0}{1}", indent, "-T");
|
Console.Write("{0}{1}", indent, "-T");
|
||||||
Console.Write("{0}{1}{2}\n", indent, indent, "num_of_threads, The number of threads. Default is 10.");
|
Console.Write("{0}{1}{2}\n", indent, indent, "num_of_threads, The number of threads. Default is 10.");
|
||||||
Console.Write("{0}{1}", indent, "-r");
|
Console.Write("{0}{1}", indent, "-r");
|
||||||
|
@ -132,7 +134,7 @@ namespace TDengineDriver
|
||||||
user = this.GetArgumentAsString(argv, "-u", "root");
|
user = this.GetArgumentAsString(argv, "-u", "root");
|
||||||
password = this.GetArgumentAsString(argv, "-P", "taosdata");
|
password = this.GetArgumentAsString(argv, "-P", "taosdata");
|
||||||
dbName = this.GetArgumentAsString(argv, "-d", "db");
|
dbName = this.GetArgumentAsString(argv, "-d", "db");
|
||||||
stableName = this.GetArgumentAsString(argv, "-s", "st");
|
stablePrefix = this.GetArgumentAsString(argv, "-s", "st");
|
||||||
tablePrefix = this.GetArgumentAsString(argv, "-m", "t");
|
tablePrefix = this.GetArgumentAsString(argv, "-m", "t");
|
||||||
isInsertOnly = this.GetArgumentAsFlag(argv, "-x");
|
isInsertOnly = this.GetArgumentAsFlag(argv, "-x");
|
||||||
queryMode = (int)this.GetArgumentAsLong(argv, "-q", 0, 1, 0);
|
queryMode = (int)this.GetArgumentAsLong(argv, "-q", 0, 1, 0);
|
||||||
|
@ -148,7 +150,7 @@ namespace TDengineDriver
|
||||||
methodOfDelete = (short)this.GetArgumentAsLong(argv, "-D", 0, 3, 0);
|
methodOfDelete = (short)this.GetArgumentAsLong(argv, "-D", 0, 3, 0);
|
||||||
numOfThreads = (short)this.GetArgumentAsLong(argv, "-T", 1, 10000, 1);
|
numOfThreads = (short)this.GetArgumentAsLong(argv, "-T", 1, 10000, 1);
|
||||||
order = this.GetArgumentAsFlag(argv, "-O");
|
order = this.GetArgumentAsFlag(argv, "-O");
|
||||||
rateOfOutorder = this.GetArgumentAsLong(argv, "-R", 0, 100, 0);
|
rateOfOutorder = (short)this.GetArgumentAsLong(argv, "-R", 0, 50, 10);
|
||||||
|
|
||||||
skipReadKey = this.GetArgumentAsFlag(argv, "-y");
|
skipReadKey = this.GetArgumentAsFlag(argv, "-y");
|
||||||
verbose = this.GetArgumentAsFlag(argv, "-v");
|
verbose = this.GetArgumentAsFlag(argv, "-v");
|
||||||
|
@ -166,6 +168,10 @@ namespace TDengineDriver
|
||||||
Console.Write("# Replica: {0}\n", replica);
|
Console.Write("# Replica: {0}\n", replica);
|
||||||
Console.Write("# Use STable: {0}\n", useStable);
|
Console.Write("# Use STable: {0}\n", useStable);
|
||||||
Console.Write("# Table prefix: {0}\n", tablePrefix);
|
Console.Write("# Table prefix: {0}\n", tablePrefix);
|
||||||
|
if (useStable == true)
|
||||||
|
{
|
||||||
|
Console.Write("# STable prefix: {0}\n", stablePrefix);
|
||||||
|
}
|
||||||
Console.Write("# Data order: {0}\n", order);
|
Console.Write("# Data order: {0}\n", order);
|
||||||
Console.Write("# Data out of order rate: {0}\n", rateOfOutorder);
|
Console.Write("# Data out of order rate: {0}\n", rateOfOutorder);
|
||||||
Console.Write("# Delete method: {0}\n", methodOfDelete);
|
Console.Write("# Delete method: {0}\n", methodOfDelete);
|
||||||
|
@ -217,7 +223,7 @@ namespace TDengineDriver
|
||||||
long tmpVal = Convert.ToInt64(tmp);
|
long tmpVal = Convert.ToInt64(tmp);
|
||||||
if (tmpVal < minVal || tmpVal > maxVal)
|
if (tmpVal < minVal || tmpVal > maxVal)
|
||||||
{
|
{
|
||||||
Console.WriteLine("option {0:G} should in range [{1:G}, {2:G}]", argName, minVal, maxVal);
|
Console.WriteLine("option {0:G} value should in range [{1:G}, {2:G}]", argName, minVal, maxVal);
|
||||||
ExitProgram();
|
ExitProgram();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,12 +258,17 @@ namespace TDengineDriver
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ExitProgram()
|
static void CleanAndExitProgram()
|
||||||
{
|
{
|
||||||
TDengine.Cleanup();
|
TDengine.Cleanup();
|
||||||
System.Environment.Exit(0);
|
System.Environment.Exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ExitProgram()
|
||||||
|
{
|
||||||
|
System.Environment.Exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
private void DebugPrintFormat(string format, params object[] parameters)
|
private void DebugPrintFormat(string format, params object[] parameters)
|
||||||
{
|
{
|
||||||
if (verbose == true)
|
if (verbose == true)
|
||||||
|
@ -291,7 +302,7 @@ namespace TDengineDriver
|
||||||
if (this.conn == IntPtr.Zero)
|
if (this.conn == IntPtr.Zero)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Connect to TDengine failed");
|
Console.WriteLine("Connect to TDengine failed");
|
||||||
ExitProgram();
|
CleanAndExitProgram();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -328,7 +339,7 @@ namespace TDengineDriver
|
||||||
createTableThread.useStable = useStable;
|
createTableThread.useStable = useStable;
|
||||||
if (useStable)
|
if (useStable)
|
||||||
{
|
{
|
||||||
createTableThread.stableName = stableName;
|
createTableThread.stablePrefix = stablePrefix;
|
||||||
}
|
}
|
||||||
createTableThread.conn = conn;
|
createTableThread.conn = conn;
|
||||||
|
|
||||||
|
@ -361,7 +372,7 @@ namespace TDengineDriver
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine(sql.ToString() + " failure, reason: " + TDengine.Error(res));
|
Console.WriteLine(sql.ToString() + " failure, reason: " + TDengine.Error(res));
|
||||||
ExitProgram();
|
CleanAndExitProgram();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -378,7 +389,7 @@ namespace TDengineDriver
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine(sql.ToString() + " failure, reason: " + TDengine.Error(res));
|
Console.WriteLine(sql.ToString() + " failure, reason: " + TDengine.Error(res));
|
||||||
ExitProgram();
|
CleanAndExitProgram();
|
||||||
}
|
}
|
||||||
TDengine.FreeResult(res);
|
TDengine.FreeResult(res);
|
||||||
}
|
}
|
||||||
|
@ -389,7 +400,7 @@ namespace TDengineDriver
|
||||||
|
|
||||||
sql.Clear();
|
sql.Clear();
|
||||||
sql.Append("CREATE TABLE IF NOT EXISTS ").
|
sql.Append("CREATE TABLE IF NOT EXISTS ").
|
||||||
Append(this.dbName).Append(".").Append(this.stableName).
|
Append(this.dbName).Append(".").Append(this.stablePrefix).
|
||||||
Append("(ts timestamp, v1 bool, v2 tinyint, v3 smallint, v4 int, v5 bigint, v6 float, v7 double, v8 binary(10), v9 nchar(10)) tags(t1 int)");
|
Append("(ts timestamp, v1 bool, v2 tinyint, v3 smallint, v4 int, v5 bigint, v6 float, v7 double, v8 binary(10), v9 nchar(10)) tags(t1 int)");
|
||||||
IntPtr res = TDengine.Query(this.conn, sql.ToString());
|
IntPtr res = TDengine.Query(this.conn, sql.ToString());
|
||||||
if (res != IntPtr.Zero)
|
if (res != IntPtr.Zero)
|
||||||
|
@ -399,7 +410,7 @@ namespace TDengineDriver
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine(sql.ToString() + " failure, reason: " + TDengine.Error(res));
|
Console.WriteLine(sql.ToString() + " failure, reason: " + TDengine.Error(res));
|
||||||
ExitProgram();
|
CleanAndExitProgram();
|
||||||
}
|
}
|
||||||
TDengine.FreeResult(res);
|
TDengine.FreeResult(res);
|
||||||
}
|
}
|
||||||
|
@ -433,9 +444,11 @@ namespace TDengineDriver
|
||||||
insertThread.verbose = verbose;
|
insertThread.verbose = verbose;
|
||||||
insertThread.dbName = this.dbName;
|
insertThread.dbName = this.dbName;
|
||||||
insertThread.tablePrefix = this.tablePrefix;
|
insertThread.tablePrefix = this.tablePrefix;
|
||||||
|
insertThread.order = this.order;
|
||||||
|
insertThread.rateOfOutorder = this.rateOfOutorder;
|
||||||
if (useStable)
|
if (useStable)
|
||||||
{
|
{
|
||||||
// insertThread.stableName = stableName;
|
insertThread.stablePrefix = stablePrefix;
|
||||||
}
|
}
|
||||||
insertThread.conn = conn;
|
insertThread.conn = conn;
|
||||||
|
|
||||||
|
@ -470,7 +483,7 @@ namespace TDengineDriver
|
||||||
if (res == IntPtr.Zero)
|
if (res == IntPtr.Zero)
|
||||||
{
|
{
|
||||||
Console.WriteLine(sql + " failure, reason: " + TDengine.Error(res));
|
Console.WriteLine(sql + " failure, reason: " + TDengine.Error(res));
|
||||||
ExitProgram();
|
CleanAndExitProgram();
|
||||||
}
|
}
|
||||||
|
|
||||||
int fieldCount = TDengine.FieldCount(res);
|
int fieldCount = TDengine.FieldCount(res);
|
||||||
|
@ -630,11 +643,13 @@ namespace TDengineDriver
|
||||||
public string dbName { set; get; }
|
public string dbName { set; get; }
|
||||||
public IntPtr conn { set; get; }
|
public IntPtr conn { set; get; }
|
||||||
public string tablePrefix { set; get; }
|
public string tablePrefix { set; get; }
|
||||||
// public string stableName { set; get; }
|
public string stablePrefix { set; get; }
|
||||||
public long recordsPerTable { set; get; }
|
public long recordsPerTable { set; get; }
|
||||||
public long batchRows { set; get; }
|
public long batchRows { set; get; }
|
||||||
public long numOfTables { set; get; }
|
public long numOfTables { set; get; }
|
||||||
public bool verbose { set; get; }
|
public bool verbose { set; get; }
|
||||||
|
public bool order { set; get; }
|
||||||
|
public short rateOfOutorder { set; get; }
|
||||||
|
|
||||||
private void DebugPrintFormat(string format, params object[] parameters)
|
private void DebugPrintFormat(string format, params object[] parameters)
|
||||||
{
|
{
|
||||||
|
@ -723,7 +738,7 @@ namespace TDengineDriver
|
||||||
public string dbName { set; get; }
|
public string dbName { set; get; }
|
||||||
public IntPtr conn { set; get; }
|
public IntPtr conn { set; get; }
|
||||||
public string tablePrefix { set; get; }
|
public string tablePrefix { set; get; }
|
||||||
public string stableName { set; get; }
|
public string stablePrefix { set; get; }
|
||||||
public bool verbose { set; get; }
|
public bool verbose { set; get; }
|
||||||
public bool useStable { set; get; }
|
public bool useStable { set; get; }
|
||||||
|
|
||||||
|
@ -756,7 +771,7 @@ namespace TDengineDriver
|
||||||
Append(this.dbName).Append(".").Append(this.tablePrefix).Append(tableId);
|
Append(this.dbName).Append(".").Append(this.tablePrefix).Append(tableId);
|
||||||
if (useStable == true)
|
if (useStable == true)
|
||||||
{
|
{
|
||||||
sql = sql.Append(" USING ").Append(this.dbName).Append(".").Append(this.stableName).
|
sql = sql.Append(" USING ").Append(this.dbName).Append(".").Append(this.stablePrefix).
|
||||||
Append(" TAGS(").Append(tableId).Append(")");
|
Append(" TAGS(").Append(tableId).Append(")");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -771,7 +786,7 @@ namespace TDengineDriver
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DebugPrint(sql.ToString() + " failure, reason: " + TDengine.Error(res) + "\n");
|
DebugPrint(sql.ToString() + " failure, reason: " + TDengine.Error(res) + "\n");
|
||||||
ExitProgram();
|
CleanAndExitProgram();
|
||||||
}
|
}
|
||||||
TDengine.FreeResult(res);
|
TDengine.FreeResult(res);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue