去掉多余的括号和分号 (#5656)
* Update taosdemo.go 去掉多用的括号和分号 格式化代码 * Update taosdemo.go 地址改回127.0.0.1
This commit is contained in:
parent
1e85026615
commit
0bc3fddad0
|
@ -16,45 +16,47 @@ package main
|
|||
|
||||
import (
|
||||
"database/sql"
|
||||
"flag"
|
||||
"fmt"
|
||||
_ "github.com/taosdata/driver-go/taosSql"
|
||||
"math/rand"
|
||||
"os"
|
||||
"sync"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
"flag"
|
||||
"math/rand"
|
||||
|
||||
_ "github.com/taosdata/driver-go/taosSql"
|
||||
|
||||
//"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
const (
|
||||
maxLocationSize = 32
|
||||
maxSqlBufSize = 65480
|
||||
maxLocationSize = 32
|
||||
//maxSqlBufSize = 65480
|
||||
)
|
||||
|
||||
var locations = [maxLocationSize]string {
|
||||
"Beijing", "Shanghai", "Guangzhou", "Shenzhen",
|
||||
"HangZhou", "Tianjin", "Wuhan", "Changsha",
|
||||
"Nanjing", "Xian"}
|
||||
var locations = [maxLocationSize]string{
|
||||
"Beijing", "Shanghai", "Guangzhou", "Shenzhen",
|
||||
"HangZhou", "Tianjin", "Wuhan", "Changsha",
|
||||
"Nanjing", "Xian"}
|
||||
|
||||
type config struct {
|
||||
hostName string
|
||||
serverPort int
|
||||
user string
|
||||
password string
|
||||
dbName string
|
||||
supTblName string
|
||||
tablePrefix string
|
||||
numOftables int
|
||||
numOfRecordsPerTable int
|
||||
numOfRecordsPerReq int
|
||||
numOfThreads int
|
||||
startTimestamp string
|
||||
startTs int64
|
||||
hostName string
|
||||
serverPort int
|
||||
user string
|
||||
password string
|
||||
dbName string
|
||||
supTblName string
|
||||
tablePrefix string
|
||||
numOftables int
|
||||
numOfRecordsPerTable int
|
||||
numOfRecordsPerReq int
|
||||
numOfThreads int
|
||||
startTimestamp string
|
||||
startTs int64
|
||||
|
||||
keep int
|
||||
days int
|
||||
keep int
|
||||
days int
|
||||
}
|
||||
|
||||
var configPara config
|
||||
|
@ -62,7 +64,7 @@ var taosDriverName = "taosSql"
|
|||
var url string
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&configPara.hostName, "h", "127.0.0.1","The host to connect to TDengine server.")
|
||||
flag.StringVar(&configPara.hostName, "h", "127.0.0.1", "The host to connect to TDengine server.")
|
||||
flag.IntVar(&configPara.serverPort, "p", 6030, "The TCP/IP port number to use for the connection to TDengine server.")
|
||||
flag.StringVar(&configPara.user, "u", "root", "The TDengine user name to use when connecting to the server.")
|
||||
flag.StringVar(&configPara.password, "P", "taosdata", "The password to use when connecting to the server.")
|
||||
|
@ -80,14 +82,14 @@ func init() {
|
|||
configPara.supTblName = "meters"
|
||||
|
||||
startTs, err := time.ParseInLocation("2006-01-02 15:04:05", configPara.startTimestamp, time.Local)
|
||||
if err==nil {
|
||||
configPara.startTs = startTs.UnixNano() / 1e6
|
||||
if err == nil {
|
||||
configPara.startTs = startTs.UnixNano() / 1e6
|
||||
}
|
||||
}
|
||||
|
||||
func printAllArgs() {
|
||||
fmt.Printf("\n============= args parse result: =============\n")
|
||||
fmt.Printf("hostName: %v\n", configPara.hostName)
|
||||
fmt.Printf("hostName: %v\n", configPara.hostName)
|
||||
fmt.Printf("serverPort: %v\n", configPara.serverPort)
|
||||
fmt.Printf("usr: %v\n", configPara.user)
|
||||
fmt.Printf("password: %v\n", configPara.password)
|
||||
|
@ -104,10 +106,10 @@ func printAllArgs() {
|
|||
func main() {
|
||||
printAllArgs()
|
||||
fmt.Printf("Please press enter key to continue....\n")
|
||||
fmt.Scanln()
|
||||
_, _ = fmt.Scanln()
|
||||
|
||||
url = "root:taosdata@/tcp(" + configPara.hostName + ":" + strconv.Itoa(configPara.serverPort) + ")/"
|
||||
//url = fmt.Sprintf("%s:%s@/tcp(%s:%d)/%s?interpolateParams=true", configPara.user, configPara.password, configPara.hostName, configPara.serverPort, configPara.dbName)
|
||||
//url = fmt.Sprintf("%s:%s@/tcp(%s:%d)/%s?interpolateParams=true", configPara.user, configPara.password, configPara.hostName, configPara.serverPort, configPara.dbName)
|
||||
// open connect to taos server
|
||||
//db, err := sql.Open(taosDriverName, url)
|
||||
//if err != nil {
|
||||
|
@ -115,7 +117,7 @@ func main() {
|
|||
// os.Exit(1)
|
||||
//}
|
||||
//defer db.Close()
|
||||
rand.Seed(time.Now().Unix())
|
||||
rand.Seed(time.Now().Unix())
|
||||
|
||||
createDatabase(configPara.dbName, configPara.supTblName)
|
||||
fmt.Printf("======== create database success! ========\n\n")
|
||||
|
@ -138,7 +140,7 @@ func main() {
|
|||
func createDatabase(dbName string, supTblName string) {
|
||||
db, err := sql.Open(taosDriverName, url)
|
||||
if err != nil {
|
||||
fmt.Println("Open database error: %s\n", err)
|
||||
fmt.Printf("Open database error: %s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer db.Close()
|
||||
|
@ -165,27 +167,27 @@ func createDatabase(dbName string, supTblName string) {
|
|||
checkErr(err, sqlStr)
|
||||
}
|
||||
|
||||
func multiThreadCreateTable(threads int, ntables int, dbName string, tablePrefix string) {
|
||||
func multiThreadCreateTable(threads int, nTables int, dbName string, tablePrefix string) {
|
||||
st := time.Now().UnixNano()
|
||||
|
||||
if (threads < 1) {
|
||||
threads = 1;
|
||||
if threads < 1 {
|
||||
threads = 1
|
||||
}
|
||||
|
||||
a := ntables / threads;
|
||||
if (a < 1) {
|
||||
threads = ntables;
|
||||
a = 1;
|
||||
a := nTables / threads
|
||||
if a < 1 {
|
||||
threads = nTables
|
||||
a = 1
|
||||
}
|
||||
|
||||
b := ntables % threads;
|
||||
b := nTables % threads
|
||||
|
||||
last := 0;
|
||||
last := 0
|
||||
endTblId := 0
|
||||
wg := sync.WaitGroup{}
|
||||
for i := 0; i < threads; i++ {
|
||||
startTblId := last
|
||||
if (i < b ) {
|
||||
if i < b {
|
||||
endTblId = last + a
|
||||
} else {
|
||||
endTblId = last + a - 1
|
||||
|
@ -206,42 +208,43 @@ func createTable(dbName string, childTblPrefix string, startTblId int, endTblId
|
|||
|
||||
db, err := sql.Open(taosDriverName, url)
|
||||
if err != nil {
|
||||
fmt.Println("Open database error: %s\n", err)
|
||||
fmt.Printf("Open database error: %s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
for i := startTblId; i <= endTblId; i++ {
|
||||
sqlStr := "create table if not exists " + dbName + "." + childTblPrefix + strconv.Itoa(i) + " using " + dbName + ".meters tags('" + locations[i%maxLocationSize] + "', " + strconv.Itoa(i) + ");"
|
||||
//fmt.Printf("sqlStr: %v\n", sqlStr)
|
||||
_, err = db.Exec(sqlStr)
|
||||
checkErr(err, sqlStr)
|
||||
}
|
||||
wg.Done()
|
||||
runtime.Goexit()
|
||||
for i := startTblId; i <= endTblId; i++ {
|
||||
sqlStr := "create table if not exists " + dbName + "." + childTblPrefix + strconv.Itoa(i) + " using " + dbName + ".meters tags('" + locations[i%maxLocationSize] + "', " + strconv.Itoa(i) + ");"
|
||||
//fmt.Printf("sqlStr: %v\n", sqlStr)
|
||||
_, err = db.Exec(sqlStr)
|
||||
checkErr(err, sqlStr)
|
||||
}
|
||||
wg.Done()
|
||||
runtime.Goexit()
|
||||
}
|
||||
|
||||
func generateRowData(ts int64) string {
|
||||
voltage := rand.Int() % 1000
|
||||
current := 200 + rand.Float32()
|
||||
phase := rand.Float32()
|
||||
values := "( " + strconv.FormatInt(ts, 10) + ", " + strconv.FormatFloat(float64(current), 'f', 6, 64) + ", " + strconv.Itoa(voltage) + ", " + strconv.FormatFloat(float64(phase), 'f', 6, 64) + " ) "
|
||||
return values
|
||||
voltage := rand.Int() % 1000
|
||||
current := 200 + rand.Float32()
|
||||
phase := rand.Float32()
|
||||
values := "( " + strconv.FormatInt(ts, 10) + ", " + strconv.FormatFloat(float64(current), 'f', 6, 64) + ", " + strconv.Itoa(voltage) + ", " + strconv.FormatFloat(float64(phase), 'f', 6, 64) + " ) "
|
||||
return values
|
||||
}
|
||||
|
||||
func insertData(dbName string, childTblPrefix string, startTblId int, endTblId int, wg *sync.WaitGroup) {
|
||||
//fmt.Printf("subThread[%d]: insert data to table from %d to %d \n", unix.Gettid(), startTblId, endTblId)
|
||||
// windows.GetCurrentThreadId()
|
||||
|
||||
db, err := sql.Open(taosDriverName, url)
|
||||
if err != nil {
|
||||
fmt.Println("Open database error: %s\n", err)
|
||||
fmt.Printf("Open database error: %s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
tmpTs := configPara.startTs;
|
||||
tmpTs := configPara.startTs
|
||||
//rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
for tID := startTblId; tID <= endTblId; tID++{
|
||||
for tID := startTblId; tID <= endTblId; tID++ {
|
||||
totalNum := 0
|
||||
for {
|
||||
sqlStr := "insert into " + dbName + "." + childTblPrefix + strconv.Itoa(tID) + " values "
|
||||
|
@ -249,13 +252,13 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i
|
|||
for {
|
||||
tmpTs += 1000
|
||||
valuesOfRow := generateRowData(tmpTs)
|
||||
currRowNum += 1
|
||||
totalNum += 1
|
||||
currRowNum += 1
|
||||
totalNum += 1
|
||||
|
||||
sqlStr = fmt.Sprintf("%s %s", sqlStr, valuesOfRow)
|
||||
|
||||
if (currRowNum >= configPara.numOfRecordsPerReq || totalNum >= configPara.numOfRecordsPerTable) {
|
||||
break
|
||||
if currRowNum >= configPara.numOfRecordsPerReq || totalNum >= configPara.numOfRecordsPerTable {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -265,12 +268,12 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i
|
|||
count, err := res.RowsAffected()
|
||||
checkErr(err, "rows affected")
|
||||
|
||||
if (count != int64(currRowNum)) {
|
||||
fmt.Printf("insert data, expect affected:%d, actual:%d\n", currRowNum, count)
|
||||
if count != int64(currRowNum) {
|
||||
fmt.Printf("insert data, expect affected:%d, actual:%d\n", currRowNum, count)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if (totalNum >= configPara.numOfRecordsPerTable) {
|
||||
if totalNum >= configPara.numOfRecordsPerTable {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -279,44 +282,46 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i
|
|||
wg.Done()
|
||||
runtime.Goexit()
|
||||
}
|
||||
func multiThreadInsertData(threads int, ntables int, dbName string, tablePrefix string) {
|
||||
|
||||
func multiThreadInsertData(threads int, nTables int, dbName string, tablePrefix string) {
|
||||
st := time.Now().UnixNano()
|
||||
|
||||
if (threads < 1) {
|
||||
threads = 1;
|
||||
if threads < 1 {
|
||||
threads = 1
|
||||
}
|
||||
|
||||
a := ntables / threads;
|
||||
if (a < 1) {
|
||||
threads = ntables;
|
||||
a = 1;
|
||||
a := nTables / threads
|
||||
if a < 1 {
|
||||
threads = nTables
|
||||
a = 1
|
||||
}
|
||||
|
||||
b := ntables % threads;
|
||||
b := nTables % threads
|
||||
|
||||
last := 0;
|
||||
last := 0
|
||||
endTblId := 0
|
||||
wg := sync.WaitGroup{}
|
||||
for i := 0; i < threads; i++ {
|
||||
startTblId := last
|
||||
if (i < b ) {
|
||||
if i < b {
|
||||
endTblId = last + a
|
||||
} else {
|
||||
endTblId = last + a - 1
|
||||
}
|
||||
last = endTblId + 1
|
||||
wg.Add(1)
|
||||
go insertData(dbName, tablePrefix, startTblId , endTblId, &wg)
|
||||
go insertData(dbName, tablePrefix, startTblId, endTblId, &wg)
|
||||
}
|
||||
wg.Wait()
|
||||
|
||||
et := time.Now().UnixNano()
|
||||
fmt.Printf("insert data spent duration: %6.6fs\n", (float32(et-st))/1e9)
|
||||
}
|
||||
func selectTest(dbName string, tbPrefix string, supTblName string){
|
||||
|
||||
func selectTest(dbName string, tbPrefix string, supTblName string) {
|
||||
db, err := sql.Open(taosDriverName, url)
|
||||
if err != nil {
|
||||
fmt.Println("Open database error: %s\n", err)
|
||||
fmt.Printf("Open database error: %s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer db.Close()
|
||||
|
@ -332,12 +337,12 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
|
|||
fmt.Printf("query sql: %s\n", sqlStr)
|
||||
for rows.Next() {
|
||||
var (
|
||||
ts string
|
||||
current float32
|
||||
voltage int
|
||||
phase float32
|
||||
location string
|
||||
groupid int
|
||||
ts string
|
||||
current float32
|
||||
voltage int
|
||||
phase float32
|
||||
location string
|
||||
groupid int
|
||||
)
|
||||
err := rows.Scan(&ts, ¤t, &voltage, &phase, &location, &groupid)
|
||||
if err != nil {
|
||||
|
@ -352,7 +357,7 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
|
|||
}
|
||||
|
||||
// select sql 2
|
||||
sqlStr = "select avg(voltage), min(voltage), max(voltage) from " + dbName + "." + tbPrefix + strconv.Itoa( rand.Int() % configPara.numOftables)
|
||||
sqlStr = "select avg(voltage), min(voltage), max(voltage) from " + dbName + "." + tbPrefix + strconv.Itoa(rand.Int()%configPara.numOftables)
|
||||
rows, err = db.Query(sqlStr)
|
||||
checkErr(err, sqlStr)
|
||||
|
||||
|
@ -360,9 +365,9 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
|
|||
fmt.Printf("\nquery sql: %s\n", sqlStr)
|
||||
for rows.Next() {
|
||||
var (
|
||||
voltageAvg float32
|
||||
voltageMin int
|
||||
voltageMax int
|
||||
voltageAvg float32
|
||||
voltageMin int
|
||||
voltageMax int
|
||||
)
|
||||
err := rows.Scan(&voltageAvg, &voltageMin, &voltageMax)
|
||||
if err != nil {
|
||||
|
@ -385,10 +390,10 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
|
|||
fmt.Printf("\nquery sql: %s\n", sqlStr)
|
||||
for rows.Next() {
|
||||
var (
|
||||
lastTs string
|
||||
lastCurrent float32
|
||||
lastVoltage int
|
||||
lastPhase float32
|
||||
lastTs string
|
||||
lastCurrent float32
|
||||
lastVoltage int
|
||||
lastPhase float32
|
||||
)
|
||||
err := rows.Scan(&lastTs, &lastCurrent, &lastVoltage, &lastPhase)
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue