转载请注明出处:

接入示例

  使用 github.com/influxdata/influxdb/client/v2 依赖包向 InfluxDB 写入数据的示例代码:

package main

import (
"fmt"
"log"
"time" "github.com/influxdata/influxdb/client/v2"
) const (
MyDB = "mydb"
username = ""
password = ""
) func main() {
c, err := client.NewHTTPClient(client.HTTPConfig{
Addr: "http://localhost:8086",
Username: username,
Password: password,
})
if err != nil {
log.Fatal(err)
}
defer c.Close() bp, err := client.NewBatchPoints(client.BatchPointsConfig{
Database: MyDB,
Precision: "s", // 时间戳精度,例如:"s"表示秒,"ms"表示毫秒
})
if err != nil {
log.Fatal(err)
} tags := map[string]string{"tag1": "value1", "tag2": "value2"}
fields := map[string]interface{}{
"value": 10.4,
} pt, err := client.NewPoint(
"measurement_name",
tags,
fields,
time.Now(),
)
if err != nil {
log.Fatal(err)
} bp.AddPoint(pt) err = c.Write(bp)
if err != nil {
log.Fatal(err)
} fmt.Println("Data written to InfluxDB successfully!")
}

  

注意事项:

  1.为了提高写入性能,建议使用 client.NewBatchPoints 创建一个批量写入对象(BatchPoints)。将各个数据点添加到 BatchPoints 对象中,并使用 c.Write 方法一次性将整个批量写入发送给 InfluxDB。

  2.时间戳和精度:在创建数据点时,可以指定时间戳。确保时间戳是有效的,并且按照正确的时间戳格式提供。还要注意选择合适的时间戳精度,例如秒("s")或毫秒("ms"),以便与 InfluxDB 中定义的时间戳精度匹配。

  3.字段类型:根据你在 InfluxDB 数据库中定义的字段类型,确保传递给数据点的字段值类型是正确的。如果字段类型不匹配,可能会导致解析错误。

  4.标签和字段:在创建数据点时,可以指定标签(tags)和字段(fields)。标签用于标识和过滤数据,而字段包含真实的数据值。确保传递给数据点的标签和字段的名称和值是正确的。

  5.错误处理:在代码中进行适当的错误处理,例如检查函数返回的错误并采取相应的措施,比如日志记录或错误处理。

错误总结:

  在 开发过程中遇到 写数据到influxdb 报错:unable to parse points ,总结下自己的踩坑原因: 由于我在 封装 fields 时,使用的数据类型是 int 与 *big.Int,在写数据库时解析不了,抛出异常 unable to parse points。

  相关类型的保存与转换总结:

  1. 整数类型:InfluxDB 支持的整数类型是 int64。如果你的 Go 变量是 int 类型或其他整数类型(如 int8int16int32),则需要将其转换为 int64 类型。

  2. 浮点数类型:InfluxDB 支持的浮点数类型是 float64。如果你的 Go 变量是 float32 或其他浮点数类型,则需要将其转换为 float64 类型。

  3. 布尔类型:InfluxDB 支持布尔类型。如果你的 Go 变量是 bool 类型,则不需要进行任何转换。

  4. 字符串类型:InfluxDB 支持字符串类型。如果你的 Go 变量是 string 类型,则不需要进行任何转换。

  5. 大整数类型:如果你在处理大整数时使用了 big.Int 类型,你可能需要将其转换为适当的类型,以便与 InfluxDB 的字段类型匹配。例如,可以使用 int64 或字符串来表示大整数。

  确保根据 InfluxDB 数据库中定义的字段类型和数据模型来选择正确的类型,并根据需要进行必要的类型转换。这样可以避免在写入数据时出现类型不匹配的错误。

  同时,还应注意使用正确的时间戳精度(例如秒、毫秒等)和正确的时间格式,以便在写入数据时与 InfluxDB 数据库进行正确的交互。

    

go使用 github.com/influxdata/influxdb/client/v2 写数据到 influxdb的更多相关文章

  1. nagios+influxdb+grafana的监控数据可视化流程

    nagios介绍 nagios是一款开源监控的应用,可用于监控本地和远程主机的日志.资源.死活等等诸多功能.通过snmp协议和nrpe协议. nagios的配置文件是由nconf上进行配置,然后点击生 ...

  2. 【helm & Tiller】报错Error: incompatible versions client[v2.14.1] server[v2.13.0] │

    helm是helm的客户端部分 tiller是helm的服务器端部分 报错 报错Error: incompatible versions client[v2.14.1] server[v2.13.0] ...

  3. 【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例

    前言:如题.直接上手撸,附带各种截图,就不做介绍了. 1.influxDB的官网下载地址  https://portal.influxdata.com/downloads/ 打开以后,如下图所示,可以 ...

  4. SpringBoot 2.0 + InfluxDB+ Sentinel 实时监控数据存储

    前言 阿里巴巴提供的控制台只是用于演示 Sentinel 的基本能力和工作流程,并没有依赖生产环境中所必需的组件,比如持久化的后端数据库.可靠的配置中心等.目前 Sentinel 采用内存态的方式存储 ...

  5. 通过Python将监控数据由influxdb写入到MySQL

    一.项目背景 我们知道InfluxDB是最受欢迎的时序数据库(TSDB).InfluxDB具有 持续高并发写入.无更新:数据压缩存储:低查询延时 的特点.从下面这个权威的统计图中,就可以看出Influ ...

  6. 配置 influxDB 鉴权及 HTTP API 写数据的方法

    本文简要描述如何为 InfluxDB 开启鉴权和配置用户管理权限(安装后默认不需要登录),以及开启鉴权后如何使用 HTTP API 写数据. 创建 InfluxDB 管理员账号创建 admin 帐号密 ...

  7. Java使用UDP发送数据到InfluxDB

    最近在做压测引擎相关的开发,需要将聚合数据发送到InfluxDB保存以便实时分析和控制QPS. 下面介绍对InfluxDB的使用. 什么是InfluxDB InfluxDB是一款用Go语言编写的开源分 ...

  8. influxdb 端口、数据结构、写数据

    InfluxDB 是一个开源,分布式,时间序列,事件,可度量和无外部依赖的数据库. InfluxDB有三大特性: Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求 ...

  9. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  10. 利用InfluxDB和Grafana搭建数据监测的仪表盘

    InfluxDB的介绍及安装 InfluxDB是支持持续写入的时序数据库,常用于监测系统所需要的数据的存储. 官网的详细安装步骤 https://docs.influxdata.com/influxd ...

随机推荐

  1. 验证ADG的坏块检测和自动修复

    环境: Oracle 19c ADG(主库:单实例:备库:RAC) 1.主库新建测试文件 2.主库创建测试表 3.查询表对应数据文件信息 4.模拟数据文件物理坏块 5.查询对应测试表 6.进一步查询日 ...

  2. 多台服务器之间配置ssh免密登录

    需求:假设有N台服务器,N台服务器之间都需要配置相互间免密登录 步骤1:在一台服务器上安装ansible yum -y install epel-release &&  yum -y ...

  3. day02-搭建微服务基础环境01

    搭建微服务基础环境01 1.创建父工程,用于聚合其他微服务模块 1.1创建父项目 说明:我们先创建一个父项目,该父项目会去管理多个微服务模块(module),如下: (1)File-New-Proje ...

  4. Distinctive Image Features from Scale-Invariant Keypoints 论文解读

    Distinctive Image Features from Scale-Invariant Keypoints 论文解读 著名的SIFT local feature提取方法 Scale-space ...

  5. 华为 A800-9000 服务器 离线安装MindX DL

    MindX DL(昇腾深度学习组件)是支持 Atlas 800 训练服务器.Atlas 800 推理服务器的深度学习组件参考设计,提供昇腾 AI 处理器资源管理和监控.昇腾 AI 处理器优化调度.分布 ...

  6. list列表和tuple、条件判断、循环、dict和set、调用函数、定义函数

    1.list列表是有序的可变的列表,可以进通过append()方法末尾添加,通过pop删除末尾以及根据索引pop(i)来删除指定索引对应的元素 通过给指定的列表元素赋值更改元素值,通过列表的索引查看元 ...

  7. nginx 极简教程

    什么是 Nginx? Nginx (engine x) 是一款轻量级的 Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse Pro ...

  8. 重复delete 对象指针后的 异常调用栈怪异 解析

    Release版VC6 MFC程序 程序正常退出时得到一个如下异常调用栈: 0:000> kb # ChildEBP RetAddr Args to Child WARNING: Frame I ...

  9. EasyExcel配置步骤

    1.介绍 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目 参考 https://blog.csdn.net/u013044713/article/details/1202 ...

  10. 从零开始基于Archlinux 安装 containerd + k8s

    下载ISO文件:https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/ 目录 1. 准备工作 2. 磁盘管理 2.1 磁盘分区 2.2 磁 ...