转载请注明出处:

接入示例

  使用 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. [Java/Arthas]Arthas The telnet port 3658 is used by process 13988 instead of target process 11208, y[转载]

    1 问题描述 Arthas 跟踪 一个已经在tomcat部署的工程quality,第一次使用过的是135091号进程,后来出现问题,换进程连接,报错如上图所示,提示端口占用.原因是上次连接了一个进程, ...

  2. 【杂绪】#4 & 【Diary】CSP-S1 2021 游记(慎) & CSP-S 备赛发狂日记

    减少..减少掉 我没法同时做那么多事情了........ -------------------------------------------- 但是我\(\color{#EEEEEE}{真真切切地 ...

  3. $.set() 处理非响应式案例

    <template> <div id="app"> <ul> <li v-for="item in list" :ke ...

  4. 任务拆解,悠然自得,自动版本的ChatGPT,AutoGPT自动人工智能AI任务实践(Python3.10)

    当我们使用ChatGPT完成某些工作的时候,往往需要多轮对话,比如让ChatGPT分析.翻译.总结一篇网上的文章或者文档,再将总结的结果以文本的形式存储在本地.过程中免不了要和ChatGPT" ...

  5. Elasticsearch搜索功能的实现(五)-- 实战

    实战环境 elastic search 8.5.0 + kibna 8.5.0 + springboot 3.0.2 + spring data elasticsearch 5.0.2 + jdk 1 ...

  6. [人脸活体检测] 论文:Face Anti-Spoofing Using Patch and Depth-based CNNs

    Face Anti-Spoofing Using Patch and Depth-based CNNs 这篇文章是人脸防伪领域比较容易理解,适合入手的一篇,主要运用到了两个CNN网络,根据输入图像的细 ...

  7. [Pytorch框架] 5.1 kaggle介绍

    文章目录 5.1 kaggle介绍 5.1.1 Kaggle 平台简介 比赛介绍 5.1.2 Kaggle板块介绍 Data Rules Team Kernels Discussion Leaderb ...

  8. ArcGIS Desktop发布地形高程服务(DEM/DSM)

    在做ArcGIS三维时,地形服务的发布与普通地图服务的发布不一样,需要发布成ImageServer,切片格式选择LERC. 本文示例使用软件: ArcGIS Desktop10.3.1 注:ArcGI ...

  9. Linux 升级sudo到 1.9.12p1,解决漏洞CVE-2022-43995

    一.查看sudo版本 sudo -V 二.下载最新版本到服务器并解压 wget https://www.sudo.ws/dist/sudo-1.9.12p1.tar.gz && tar ...

  10. 2020-12-03:mysql中,Heap 表是什么?

    福哥答案2020-12-04:[答案来自此链接:](http://bbs.xiangxueketang.cn/question/605) Heap表,即使用MEMORY存储引擎的表,这种表的数据存储在 ...