未验证 提交 0bc3fdda 编写于 作者: 张金富 提交者: GitHub

去掉多余的括号和分号 (#5656)

* Update taosdemo.go

去掉多用的括号和分号
格式化代码

* Update taosdemo.go

地址改回127.0.0.1
上级 1e850266
...@@ -16,45 +16,47 @@ package main ...@@ -16,45 +16,47 @@ package main
import ( import (
"database/sql" "database/sql"
"flag"
"fmt" "fmt"
_ "github.com/taosdata/driver-go/taosSql" "math/rand"
"os" "os"
"sync"
"runtime" "runtime"
"strconv" "strconv"
"sync"
"time" "time"
"flag"
"math/rand" _ "github.com/taosdata/driver-go/taosSql"
//"golang.org/x/sys/unix" //"golang.org/x/sys/unix"
) )
const ( const (
maxLocationSize = 32 maxLocationSize = 32
maxSqlBufSize = 65480 //maxSqlBufSize = 65480
) )
var locations = [maxLocationSize]string { var locations = [maxLocationSize]string{
"Beijing", "Shanghai", "Guangzhou", "Shenzhen", "Beijing", "Shanghai", "Guangzhou", "Shenzhen",
"HangZhou", "Tianjin", "Wuhan", "Changsha", "HangZhou", "Tianjin", "Wuhan", "Changsha",
"Nanjing", "Xian"} "Nanjing", "Xian"}
type config struct { type config struct {
hostName string hostName string
serverPort int serverPort int
user string user string
password string password string
dbName string dbName string
supTblName string supTblName string
tablePrefix string tablePrefix string
numOftables int numOftables int
numOfRecordsPerTable int numOfRecordsPerTable int
numOfRecordsPerReq int numOfRecordsPerReq int
numOfThreads int numOfThreads int
startTimestamp string startTimestamp string
startTs int64 startTs int64
keep int keep int
days int days int
} }
var configPara config var configPara config
...@@ -62,7 +64,7 @@ var taosDriverName = "taosSql" ...@@ -62,7 +64,7 @@ var taosDriverName = "taosSql"
var url string var url string
func init() { 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.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.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.") flag.StringVar(&configPara.password, "P", "taosdata", "The password to use when connecting to the server.")
...@@ -80,14 +82,14 @@ func init() { ...@@ -80,14 +82,14 @@ func init() {
configPara.supTblName = "meters" configPara.supTblName = "meters"
startTs, err := time.ParseInLocation("2006-01-02 15:04:05", configPara.startTimestamp, time.Local) startTs, err := time.ParseInLocation("2006-01-02 15:04:05", configPara.startTimestamp, time.Local)
if err==nil { if err == nil {
configPara.startTs = startTs.UnixNano() / 1e6 configPara.startTs = startTs.UnixNano() / 1e6
} }
} }
func printAllArgs() { func printAllArgs() {
fmt.Printf("\n============= args parse result: =============\n") 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("serverPort: %v\n", configPara.serverPort)
fmt.Printf("usr: %v\n", configPara.user) fmt.Printf("usr: %v\n", configPara.user)
fmt.Printf("password: %v\n", configPara.password) fmt.Printf("password: %v\n", configPara.password)
...@@ -104,10 +106,10 @@ func printAllArgs() { ...@@ -104,10 +106,10 @@ func printAllArgs() {
func main() { func main() {
printAllArgs() printAllArgs()
fmt.Printf("Please press enter key to continue....\n") fmt.Printf("Please press enter key to continue....\n")
fmt.Scanln() _, _ = fmt.Scanln()
url = "root:taosdata@/tcp(" + configPara.hostName + ":" + strconv.Itoa(configPara.serverPort) + ")/" 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 // open connect to taos server
//db, err := sql.Open(taosDriverName, url) //db, err := sql.Open(taosDriverName, url)
//if err != nil { //if err != nil {
...@@ -115,7 +117,7 @@ func main() { ...@@ -115,7 +117,7 @@ func main() {
// os.Exit(1) // os.Exit(1)
//} //}
//defer db.Close() //defer db.Close()
rand.Seed(time.Now().Unix()) rand.Seed(time.Now().Unix())
createDatabase(configPara.dbName, configPara.supTblName) createDatabase(configPara.dbName, configPara.supTblName)
fmt.Printf("======== create database success! ========\n\n") fmt.Printf("======== create database success! ========\n\n")
...@@ -138,7 +140,7 @@ func main() { ...@@ -138,7 +140,7 @@ func main() {
func createDatabase(dbName string, supTblName string) { func createDatabase(dbName string, supTblName string) {
db, err := sql.Open(taosDriverName, url) db, err := sql.Open(taosDriverName, url)
if err != nil { if err != nil {
fmt.Println("Open database error: %s\n", err) fmt.Printf("Open database error: %s\n", err)
os.Exit(1) os.Exit(1)
} }
defer db.Close() defer db.Close()
...@@ -165,27 +167,27 @@ func createDatabase(dbName string, supTblName string) { ...@@ -165,27 +167,27 @@ func createDatabase(dbName string, supTblName string) {
checkErr(err, sqlStr) 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() st := time.Now().UnixNano()
if (threads < 1) { if threads < 1 {
threads = 1; threads = 1
} }
a := ntables / threads; a := nTables / threads
if (a < 1) { if a < 1 {
threads = ntables; threads = nTables
a = 1; a = 1
} }
b := ntables % threads; b := nTables % threads
last := 0; last := 0
endTblId := 0 endTblId := 0
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
for i := 0; i < threads; i++ { for i := 0; i < threads; i++ {
startTblId := last startTblId := last
if (i < b ) { if i < b {
endTblId = last + a endTblId = last + a
} else { } else {
endTblId = last + a - 1 endTblId = last + a - 1
...@@ -206,42 +208,43 @@ func createTable(dbName string, childTblPrefix string, startTblId int, endTblId ...@@ -206,42 +208,43 @@ func createTable(dbName string, childTblPrefix string, startTblId int, endTblId
db, err := sql.Open(taosDriverName, url) db, err := sql.Open(taosDriverName, url)
if err != nil { if err != nil {
fmt.Println("Open database error: %s\n", err) fmt.Printf("Open database error: %s\n", err)
os.Exit(1) os.Exit(1)
} }
defer db.Close() defer db.Close()
for i := startTblId; i <= endTblId; i++ { 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) + ");" 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) //fmt.Printf("sqlStr: %v\n", sqlStr)
_, err = db.Exec(sqlStr) _, err = db.Exec(sqlStr)
checkErr(err, sqlStr) checkErr(err, sqlStr)
} }
wg.Done() wg.Done()
runtime.Goexit() runtime.Goexit()
} }
func generateRowData(ts int64) string { func generateRowData(ts int64) string {
voltage := rand.Int() % 1000 voltage := rand.Int() % 1000
current := 200 + rand.Float32() current := 200 + rand.Float32()
phase := 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) + " ) " values := "( " + strconv.FormatInt(ts, 10) + ", " + strconv.FormatFloat(float64(current), 'f', 6, 64) + ", " + strconv.Itoa(voltage) + ", " + strconv.FormatFloat(float64(phase), 'f', 6, 64) + " ) "
return values return values
} }
func insertData(dbName string, childTblPrefix string, startTblId int, endTblId int, wg *sync.WaitGroup) { 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) //fmt.Printf("subThread[%d]: insert data to table from %d to %d \n", unix.Gettid(), startTblId, endTblId)
// windows.GetCurrentThreadId() // windows.GetCurrentThreadId()
db, err := sql.Open(taosDriverName, url) db, err := sql.Open(taosDriverName, url)
if err != nil { if err != nil {
fmt.Println("Open database error: %s\n", err) fmt.Printf("Open database error: %s\n", err)
os.Exit(1) os.Exit(1)
} }
defer db.Close() defer db.Close()
tmpTs := configPara.startTs; tmpTs := configPara.startTs
//rand.New(rand.NewSource(time.Now().UnixNano())) //rand.New(rand.NewSource(time.Now().UnixNano()))
for tID := startTblId; tID <= endTblId; tID++{ for tID := startTblId; tID <= endTblId; tID++ {
totalNum := 0 totalNum := 0
for { for {
sqlStr := "insert into " + dbName + "." + childTblPrefix + strconv.Itoa(tID) + " values " sqlStr := "insert into " + dbName + "." + childTblPrefix + strconv.Itoa(tID) + " values "
...@@ -249,13 +252,13 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i ...@@ -249,13 +252,13 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i
for { for {
tmpTs += 1000 tmpTs += 1000
valuesOfRow := generateRowData(tmpTs) valuesOfRow := generateRowData(tmpTs)
currRowNum += 1 currRowNum += 1
totalNum += 1 totalNum += 1
sqlStr = fmt.Sprintf("%s %s", sqlStr, valuesOfRow) sqlStr = fmt.Sprintf("%s %s", sqlStr, valuesOfRow)
if (currRowNum >= configPara.numOfRecordsPerReq || totalNum >= configPara.numOfRecordsPerTable) { if currRowNum >= configPara.numOfRecordsPerReq || totalNum >= configPara.numOfRecordsPerTable {
break break
} }
} }
...@@ -265,12 +268,12 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i ...@@ -265,12 +268,12 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i
count, err := res.RowsAffected() count, err := res.RowsAffected()
checkErr(err, "rows affected") checkErr(err, "rows affected")
if (count != int64(currRowNum)) { if count != int64(currRowNum) {
fmt.Printf("insert data, expect affected:%d, actual:%d\n", currRowNum, count) fmt.Printf("insert data, expect affected:%d, actual:%d\n", currRowNum, count)
os.Exit(1) os.Exit(1)
} }
if (totalNum >= configPara.numOfRecordsPerTable) { if totalNum >= configPara.numOfRecordsPerTable {
break break
} }
} }
...@@ -279,44 +282,46 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i ...@@ -279,44 +282,46 @@ func insertData(dbName string, childTblPrefix string, startTblId int, endTblId i
wg.Done() wg.Done()
runtime.Goexit() 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() st := time.Now().UnixNano()
if (threads < 1) { if threads < 1 {
threads = 1; threads = 1
} }
a := ntables / threads; a := nTables / threads
if (a < 1) { if a < 1 {
threads = ntables; threads = nTables
a = 1; a = 1
} }
b := ntables % threads; b := nTables % threads
last := 0; last := 0
endTblId := 0 endTblId := 0
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
for i := 0; i < threads; i++ { for i := 0; i < threads; i++ {
startTblId := last startTblId := last
if (i < b ) { if i < b {
endTblId = last + a endTblId = last + a
} else { } else {
endTblId = last + a - 1 endTblId = last + a - 1
} }
last = endTblId + 1 last = endTblId + 1
wg.Add(1) wg.Add(1)
go insertData(dbName, tablePrefix, startTblId , endTblId, &wg) go insertData(dbName, tablePrefix, startTblId, endTblId, &wg)
} }
wg.Wait() wg.Wait()
et := time.Now().UnixNano() et := time.Now().UnixNano()
fmt.Printf("insert data spent duration: %6.6fs\n", (float32(et-st))/1e9) 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) db, err := sql.Open(taosDriverName, url)
if err != nil { if err != nil {
fmt.Println("Open database error: %s\n", err) fmt.Printf("Open database error: %s\n", err)
os.Exit(1) os.Exit(1)
} }
defer db.Close() defer db.Close()
...@@ -332,12 +337,12 @@ func selectTest(dbName string, tbPrefix string, supTblName string){ ...@@ -332,12 +337,12 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
fmt.Printf("query sql: %s\n", sqlStr) fmt.Printf("query sql: %s\n", sqlStr)
for rows.Next() { for rows.Next() {
var ( var (
ts string ts string
current float32 current float32
voltage int voltage int
phase float32 phase float32
location string location string
groupid int groupid int
) )
err := rows.Scan(&ts, &current, &voltage, &phase, &location, &groupid) err := rows.Scan(&ts, &current, &voltage, &phase, &location, &groupid)
if err != nil { if err != nil {
...@@ -352,7 +357,7 @@ func selectTest(dbName string, tbPrefix string, supTblName string){ ...@@ -352,7 +357,7 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
} }
// select sql 2 // 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) rows, err = db.Query(sqlStr)
checkErr(err, sqlStr) checkErr(err, sqlStr)
...@@ -360,9 +365,9 @@ func selectTest(dbName string, tbPrefix string, supTblName string){ ...@@ -360,9 +365,9 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
fmt.Printf("\nquery sql: %s\n", sqlStr) fmt.Printf("\nquery sql: %s\n", sqlStr)
for rows.Next() { for rows.Next() {
var ( var (
voltageAvg float32 voltageAvg float32
voltageMin int voltageMin int
voltageMax int voltageMax int
) )
err := rows.Scan(&voltageAvg, &voltageMin, &voltageMax) err := rows.Scan(&voltageAvg, &voltageMin, &voltageMax)
if err != nil { if err != nil {
...@@ -385,10 +390,10 @@ func selectTest(dbName string, tbPrefix string, supTblName string){ ...@@ -385,10 +390,10 @@ func selectTest(dbName string, tbPrefix string, supTblName string){
fmt.Printf("\nquery sql: %s\n", sqlStr) fmt.Printf("\nquery sql: %s\n", sqlStr)
for rows.Next() { for rows.Next() {
var ( var (
lastTs string lastTs string
lastCurrent float32 lastCurrent float32
lastVoltage int lastVoltage int
lastPhase float32 lastPhase float32
) )
err := rows.Scan(&lastTs, &lastCurrent, &lastVoltage, &lastPhase) err := rows.Scan(&lastTs, &lastCurrent, &lastVoltage, &lastPhase)
if err != nil { if err != nil {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册