Go操作influxDB
influxDB
安装
下载
https://portal.influxdata.com/downloads/
这里需要注意因为这个网站引用了google的api所以国内点页面的按钮是没反应的,怎么办呢?
按照下图所示,按F12打开浏览器的控制台,然后点击Elements,按下Ctrl/Command+F搜索releases/influxdb,按回车查找自己所需版本的下载地址。

Mac和Linux用户可以点击https://v2.docs.influxdata.com/v2.0/get-started/下载。
安装
将上一步的压缩包,解压到本地。
influxDB介绍
名词介绍
| influxDB名词 | 传统数据库概念 |
|---|---|
| database | 数据库 |
| measurement | 数据表 |
| point | 数据行 |
point
influxDB中的point相当于传统数据库里的一行数据,由时间戳(time)、数据(field)、标签(tag)组成。
| Point属性 | 传统数据库概念 |
|---|---|
| time | 每个数据记录时间,是数据库中的主索引 |
| field | 各种记录值(没有索引的属性),例如温度、湿度 |
| tags | 各种有索引的属性,例如地区、海拔 |
Series
Series相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。
Go操作influxDB
安装
influxDB 1.x版本
go get github.com/influxdata/influxdb1-client/v2
influxDB 2.x版本
go get github.com/influxdata/influxdb-client-go
基本使用
package main import (
"fmt"
"log"
"time" client "github.com/influxdata/influxdb1-client/v2"
) // influxdb demo func connInflux() client.Client {
cli, err := client.NewHTTPClient(client.HTTPConfig{
Addr: "http://127.0.0.1:8086",
Username: "admin",
Password: "",
})
if err != nil {
log.Fatal(err)
}
return cli
} // query
func queryDB(cli client.Client, cmd string) (res []client.Result, err error) {
q := client.Query{
Command: cmd,
Database: "test",
}
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
} // insert
func writesPoints(cli client.Client) {
bp, err := client.NewBatchPoints(client.BatchPointsConfig{
Database: "test",
Precision: "s", //精度,默认ns
})
if err != nil {
log.Fatal(err)
}
tags := map[string]string{"cpu": "ih-cpu"}
fields := map[string]interface{}{
"idle": 201.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)
err = cli.Write(bp)
if err != nil {
log.Fatal(err)
}
log.Println("insert success")
} func main() {
conn := connInflux()
fmt.Println(conn) // insert
writesPoints(conn) // 获取10条数据并展示
qs := fmt.Sprintf("SELECT * FROM %s LIMIT %d", "cpu_usage", 10)
res, err := queryDB(conn, qs)
if err != nil {
log.Fatal(err)
} for _, row := range res[0].Series[0].Values {
for j, value := range row {
log.Printf("j:%d value:%v\n", j, value)
}
}
}
Go操作influxDB的更多相关文章
- 使用curl操作InfluxDB
这里列举几个简单的示例代码,更多信息请参考InfluxDB官方文档: https://docs.influxdata.com/influxdb/v1.1/ 环境: CentOS6.5_x64Influ ...
- 使用python操作InfluxDB
环境: CentOS6.5_x64InfluxDB版本:1.1.0Python版本 : 2.6 准备工作 启动服务器 执行如下命令: service influxdb start 示例如下: [roo ...
- Python 使用Python远程连接并操作InfluxDB数据库
使用Python远程连接并操作InfluxDB数据库 by:授客 QQ:1033553122 实践环境 Python 3.4.0 CentOS 6 64位(内核版本2.6.32-642.el6.x86 ...
- 使用C语言操作InfluxDB
环境: CentOS6.5_x64 InfluxDB版本:1.1.0 InfluxDB官网暂未提供C语言开发库,但github提供的有: https://github.com/influxdata/i ...
- 使用influx控制台工具操作InfluxDB
这里记录下influx控制台的简单使用,如需更多功能请参考InfluxDB官方文档: https://docs.influxdata.com/influxdb/v1.1/ 环境: CentOS6.5_ ...
- GO学习-(28) Go语言操作influxDB
Go语言操作influxDB 本文介绍了influxDB时序数据库及Go语言操作influxDB. InfluxDB是一个开源分布式时序.事件和指标数据库.使用Go语言编写,无需外部依赖.其设计目标是 ...
- 使用Python操作InfluxDB时序数据库
使用Python操作InfluxDB时序数据库 安装python包 influxdb,这里我安装的是5.3.0版本 pip install influxdb==5.3.0 使用 from infl ...
- python连接,操作 InfluxDB
准备工作 启动服务器 执行如下命令: service influxdb start 示例如下: [root@localhost ~]# service influxdb start Starting ...
- Python操作Influxdb数据库
1.influxdb基本操作[root@test ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.4.x86_64. ...
随机推荐
- js 数据类型的转换
1. 字符串转化为数字 Number(1) parseInt(1) parseFloat(1) 区别: number 参数只要含有非数字,结果就是NaN,
- 多线程模式下高并发的环境中唯一确保单例模式---DLC双端锁
DLC双端锁,CAS,ABA问题 一.什么是DLC双端锁?有什么用处? 为了解决在多线程模式下,高并发的环境中,唯一确保单例模式只能生成一个实例 多线程环境中,单例模式会因为指令重排和线程竞争的原因会 ...
- id、css命名规范
main热点:hot新闻:news下载:download子导航:subnav菜单:menu子菜单:submenu搜索:search友情链接:friendlink页脚:footer版权:copyrigh ...
- 在Scala中免费验证
优锐课带你详细了解如何在Scala中实施免费的monad验证.抽丝剥茧,细说架构那些事! 由于业务数据的复杂性,已经在数据验证上花费了很多精力.在Scala中,提出了使用应用程序进行验证的方法,并被广 ...
- python3相关
with用法 with A as B: 语句 调用( A返回的类) 的__enter__方法 将该方法返回值赋予B, 执行完with语句块后, 调用类的__exit__方法
- 仿ios按钮切换
<div> <label><input class="btn-switch" type="checkbox"> 默认未选中& ...
- 小sun的假期【牛客】
链接:https://ac.nowcoder.com/acm/contest/1085/A来源:牛客网 应肖老师要求前来更新水一水 题目描述 小 sun 非常喜欢放假,尤其是那种连在一起的长假,在放假 ...
- 《深入理解java虚拟机》读书笔记八——第九章
第九章 类加载及执行子系统的案例与实战 Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享. ...
- AtCoder Beginner Contest 068 ABCD题
A - ABCxxx Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement This contes ...
- 【你不知道的javaScript 上卷 笔记6】javaScript中的对象相关内容
一.创建一个对象的语法 var myObj = { key: value // ... };//字面量 var myObj = new Object(); //new myObj.key = valu ...