influxdb学习记录

简介

influxdb是一款流行的时序数据库应用,与prometheus最大的不同在于,influxdb采用推模型,即记录方通过调用influxdb接口,将数据保存到influxdb数据库中。prometheus则是由自身不断抓取记录方的导出数据。influxdb的查询语句与sql类似,简单易上手,prometheus的查询语法promQL学习曲线较为陡峭。这次主要学习了influxdb,记录一下相关的知识点。

基本概念

以一条数据插入语句为例:

insert 10d api,host=10.0.10.182,url=/user/get duration=20 

insert后面依次接retention policy(可选),measurement、tag和field,measurement和tag用逗号隔开,tag之间也用逗号相隔,tag和field用空格相隔。如果插入语句没有指定时间戳,influxdb将自动补充一个时间戳字段。

measurement就是数据表,对应MySQL中的table。tag是索引列,tag值都为string,field为没有加索引的列,field的值类型可为int、float、string、boolean。当插入的field值为string时,需要加引号。

配置文件

当采用apt方式安装influxdb时,influxdb的配置文件保存在/etc/influxdb/influxdb.conf。
需要使自定义配置文件生效时,可以指定对应配置文件的路径以启动influxdb:

influxd -config /etc/influxdb/influxdb.conf

HTTP API

除了cli command外,influxdb也提供了查询、编辑、写入等操作的http api(官方文档:https://docs.influxdata.com/influxdb/v1.6/tools/api/)。基本格式如下:

curl -XPOST http://localhost:8086/query?db=api_sum --data-urlencode "q=select * from api where time >= '2020-09-06T00:00:00Z' tz(Asia/Shanghai)"

查询参数

参数名 必选 描述
chunked=[true|number_of_ponits] 返回的数据是否分块,如果设置为true,influxdb将默认10000个数据点作为一个分块返回
db=<database_name> 依赖于数据库的查询语句必选,如SELECT和SHOW 指定influxdb数据库
epoch=[ns,u,µ,ms,s,m,h] 指定返回时间戳的精度,默认返回纳秒精度的RFC3339时间,注意u,µ都是微秒
p=<password> 开启认证的情况下必传 指定用户密码
u=<username> 开启认证的情况下必传 指定用户名
pretty=true 返回结果以易于打印的json格式返回,该选项会产生额外的网络带宽开销,不推荐在生产环境使用
q=<query> influxdb执行语句
posted @   g2012  阅读(219)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示