Go-influxdb基本操作
来源:互联网 发布:java shiro 权限控制 编辑:程序博客网 时间:2024/06/11 18:40
本文主要通过go语言对influxdb做一个简单的创建表以及插入一条数据的操作,代码如下所示(使用到了一个插件,可通过go get进行安装):
package mainimport ("fmt""github.com/influxdata/influxdb/client/v2""log""time")const (MyDB = "test"username = "admin"password = "")func main() {conn, err := client.NewHTTPClient(client.HTTPConfig{Addr: "http://127.0.0.1:8086",Username: username,Password: password,})if err != nil {log.Fatal(err)}fmt.Println(conn)bp, err := client.NewBatchPoints(client.BatchPointsConfig{Database: MyDB,Precision: "s",})if err != nil {log.Fatal(err)}tags := map[string]string{"name": "xc"}fields := map[string]interface{}{"id": 1,"sex": 1,"pass": 0707,}pt, err := client.NewPoint("myuser", tags, fields, time.Now())if err != nil {log.Fatal(err)}bp.AddPoint(pt)if err := conn.Write(bp); err != nil {log.Fatal(err)}}
补充:
经过查看官方文档以及实际操作,代码总结如下,其实对于influxdb也只是涉及到insert与query,代码如下,完成插入与查询两个函数。可参考官方文档:点击打开链接
package mainimport ("encoding/json""fmt""log""time""github.com/influxdata/influxdb/client/v2")const (MyDB = "test"username = "admin"password = ""MyMeasurement = "cpu_usage")func main() {conn := connInflux()fmt.Println(conn)//insertWritesPoints(conn)//获取10条数据并展示qs := fmt.Sprintf("SELECT * FROM %s LIMIT %d", MyMeasurement, 10)res, err := QueryDB(conn, qs)if err != nil {log.Fatal(err)}for i, row := range res[0].Series[0].Values {t, err := time.Parse(time.RFC3339, row[0].(string))if err != nil {log.Fatal(err)}//fmt.Println(reflect.TypeOf(row[1]))valu := row[2].(json.Number)log.Printf("[%2d] %s: %s\n", i, t.Format(time.Stamp), valu)}}func connInflux() client.Client {cli, err := client.NewHTTPClient(client.HTTPConfig{Addr: "http://127.0.0.1:8086",Username: username,Password: password,})if err != nil {log.Fatal(err)}return cli}//queryfunc QueryDB(cli client.Client, cmd string) (res []client.Result, err error) {q := client.Query{Command: cmd,Database: MyDB,}if response, err := cli.Query(q); err == nil {if response.Error() != nil {return res, response.Error()}res = response.Results} else {return res, err}return res, nil}//Insertfunc WritesPoints(cli client.Client) {bp, err := client.NewBatchPoints(client.BatchPointsConfig{Database: MyDB,Precision: "s",})if err != nil {log.Fatal(err)}tags := map[string]string{"cpu": "ih-cpu"}fields := map[string]interface{}{"idle": 20.1,"system": 43.3,"user": 86.6,}pt, err := client.NewPoint("cpu_usage",tags,fields,time.Now(),)if err != nil {log.Fatal(err)}bp.AddPoint(pt)if err := cli.Write(bp); err != nil {log.Fatal(err)}}
阅读全文
0 0
- Go-influxdb基本操作
- influxdb基本操作
- influxdb基本操作
- influxdb基本操作
- InfluxDB学习之InfluxDB的基本操作
- influxDB基本名词
- Influxdb常用操作
- Influxdb简单实用操作
- InfluxDB
- InfluxDB
- 使用influx控制台工具操作InfluxDB
- 使用influx控制台工具操作InfluxDB
- 使用influx控制台工具操作InfluxDB
- go语言中对文件和文件夹的基本操作
- [go语言]基本数据类型
- Go基本配置(2)
- Go 基本命令
- go语言基本类型
- UVA --839 Not so Mobile
- MYSQL练习
- vue学习笔记--各种指令的语法
- hdu6081并查集+坑
- 培训第一周的练习题目
- Go-influxdb基本操作
- A
- SpringMVC学习系列(9) 之 实现注解式权限验证
- SQL JOIN
- cocos2dx 中使用 opencv
- HDU 6078 Wavel Sequence (dp)
- P2614 计算机弹琴
- Windows下Linux模拟环境Cygwin的安装及apt-cyg安装问题
- 获取进程ID