基础架构部文档
基础架构部文件格式标准参考
技术文档
mr_doc 接入ucenter 认证登录
loki日志收集
https证书与ssl/tls 加密
FTP 主动模式和被动模式的区别
Hadoop-windows10安装部署Hadoop2.7.3
JKS和PFX证书文件格式相互转换方法
KVM 基础操作
k8s nginx ingress日志收集到ELK并分析
Django基础
clash http代理 socks代理服务器搭建 配置
Ubuntu 22.04 安装 FFmpeg v7.0
Office正版化项目的个人体验和心得
重置jenkins构建历史
K8S实施方案
k8s的yaml文件语法
Docker的优势与虚拟机的区别
问题处理文档
HR推送数据问题处理报
Nginx从入门到放弃01-nginx基础安装
Nginx从入门到放弃02-Nginx基本命令和新建WEB站点
Nginx从入门到放弃03-Nginx调优
Nginx从入门到放弃04-Nginx的N种特别实用示例
JMeter教程
01-mariadb编译安装
02-mariadb二进制安装
Docker修改默认的存储路径
01-influxdb2时序数据库简介及安装
02-influxdb2时序数据库核心概念
03-influxdb2时序数据库flux查询语言
04-influxdb2--Python客户端influxdb-client
05-Spring boot 集成influxdb2
06-influxdb2其他知识
OA添加waf后相关问题的解决过程
排除java应用cpu使用率过高
exsi迁移文档
视频测试
阿里云产品试题
超融合服务器和传统服务器的区别
Serv-U问题集锦
文件夹共享操作手册
磁盘脱机处理方案
Office内存或磁盘空间不足处理方法
Cmd中ping不是内部或外部命令的解决方法
ELK 搭建文档
限制用户的远程桌面会话数量
Docker快速安装rocketmq、redis、zookeeper
超融合建设方案
git 入门
HR系统写入ES数据报错403
ELK搭建文档
KVM 安装和基础使用文档
helm 安装 rancher
访问共享提示禁用当前用户解决方法
K8S StorageClass搭建
KVM 扩展磁盘
借助sasl构建基于AD用户验证的SVN服务器
fastdfs编译安装并迁移数据
关闭系统保护的必要性
SCF 前置机部署
阿里云OSS学习文档
阿里云学习文档-VPC
(k8s踩坑)namespace无法删除
rancher-helm安装
zookeeper集群安装
批量替换K8s secrets 中某个特定域名的tls证书
kibana 批量创建索引模式
centos7 恢复Yum使用
ACP云计算部分知识点总结
Loki 日志系统搭建文档
自动更新k8s集群中所有名称空间中特定证书
AI分享
(AI)函数调用与MCP调用的区别
安装戴尔DELL Optilex 7040 USB驱动时提示无法定位程序输入点 kernel32\.dll
新华三服务器EXSI 显卡直通
本文档使用「觅思文档专业版」发布
-
+
首页
02-influxdb2时序数据库核心概念
# 一、influxDB2核心概念 ### 示例数据(解释某些概念用) | _time | _measurement | location | scientist | _field | _value | | -------------------- | ------------ | -------- | --------- | ------ | ------ | | 2019-08-18T00:00:00Z | census | klamath | anderson | bees | 23 | | 2019-08-18T00:00:00Z | census | portland | mullen | ants | 30 | | 2019-08-18T00:06:00Z | census | klamath | anderson | bees | 28 | | 2019-08-18T00:06:00Z | census | portland | mullen | ants | 32 | ### Organization `organization` 是一组用户的工作空间,一个组下用户可以创建多个bucket ### bucket 所有的 influxdb数据都存储在bucket中,`bucket`结合了数据库和保存期限(每条数据会被保留的时间)的概念,**类似于RDMS的database的概念**。`bucket`属于一个`organization` ### Measurement `measurement`是所有 tags fields 和时间的容器和**RDMS的table的概念类似**,是一个数据集的容器 ### Fields 数据属性包括field key 和 field value 分别存储在 `_field`和 `_value`当中, 并且一个measurement中必须包含至少一个filed ### Field key field key 是一个代表属性名称的字段,在示例数据中`bees`和`ants`就是field key ### Field value field value 是对应 field key 的值,在示例数据中在`2019-08-18T00:00:00Z`该时间点 `bees`的值为23,而`ants`的值为30 ### Field set field set 表示在同一时间内 所有fields的集合 ### Tags 和Fields类似,Tags也有 key value。但与Fields不同的是,field key存储在`_field`列中 而tag key则是本省就是列 ### tag key 和 tag value 即tag 的 key 和 value 在Line Protocl中有更为直观的体现 ### timestamp 所有存储在influxdb中的数据都有一个`_time`列用来记录时间,在磁盘中以纳秒时间戳存储,但客户端查询时返回的是格式化的更易读的 [RFC3339](https://links.jianshu.com/go?to=https%3A%2F%2Fdocs.influxdata.com%2Finfluxdb%2Fv2.1%2Freference%2Fglossary%2F%23rfc3339-timestamp) UTC时间格式 RFC3339时间格式 ```shell RFC 3339格式:“{年}-{月}-{日}T{时}:{分}:{秒}.{毫秒}{时区}”; 其中的年要用零补齐为4位,月日时分秒则补齐为2位。毫秒部分是可选的。 最后一部分是时区,前面例子中的 Z 其实是零时区 Zulu 的缩写,它也可能是 +08:00 或 -08:00 等; 2017-12-08T00:00:00.00Z 2017-12-08T08:00:00.00+08:00 都代表所在时区的本地时间。 ISO8610与RFC3339有各自独特的表示法,也有重合部分。 在RFC 3339中,我们还可以从格式中了解时区。 它以“ Z”语法显示。 “ Z”表示UTC + 0。 “ Z”代表祖鲁时区,与GMT或UTC相同。 因此,如果将Z放在DateTime上,则表示其时区为UTC + 0。 2019-10-12T07:20:50.52Z (UTC+0) #UTC时间(零时区的时间,协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC) 2019-10-12T07:20:50.52+00:00 (UTC+0) 2019-10-12T14:20:50.52+07:00 (UTC+7) 2019-10-12T03:20:50.52-04:00 (UTC-4) #标准时间 本地时间只包括当前的时间,不包含任何时区信息。同一时刻,东八区的本地时间比零时区的本地时间快了8个小时。在不同时区之间交换时间数据,除了用纯数字的时间戳,还有一种更方便人类阅读的表示方式:标准时间的偏移量表示方法。 RFC3339详细定义了互联网上日期/时间的偏移量表示: 2017-12-08T00:00:00.00Z 这个代表了UTC时间的2017年12月08日零时 2017-12-08T08:00:00.00+08:00 这个代表了同一时刻的,东八区北京时间(CST)表示的方法 上面两个时间的时间戳是等价的。两个的区别,就是在本地时间后面增加了时区信息。Z表示零时区。+08:00表示UTC时间增加8小时。 这种表示方式容易让人疑惑的点是从标准时间换算UTC时间。以CST转换UTC为例,没有看文档的情况下,根据 +08:00 的结尾,很容易根据直觉在本地时间再加上8小时。正确的计算方法是本地时间减去多增加的8小时。+08:00减去8小时才是UTC时间,-08:00加上8小时才是UTC时间。 ``` 对于Fields 和 Tags 简单来说他们都是一组键值对的集合。在存储形式上,field 的key 被存储在一个名为`_field`的列中,而tag 的key则是以列头的形式存在的,该列的内容即为tag value。可以从示例数据中直观的看出其区别。 另外值得注意的是,field 和 tag 都可以用来存储数据,但tag只能存储字符串类型数据,而filed既可以存储字符串类型又可以存储数值类型数据。 那么我是否可以在tag中存储字符串形式的数据呢? 当然可以但其不可以参与flux查询中的`mean()` `max()` 等聚合函数的计算。所以field 和 tag 还是有着本质上的区别的。 ## 二、influx CLI 为了避免不必要的错误以下influx命令均手动传递token,也可以使用`influx config`命令将一些常用选项配置在配置文件中,则每次执行命令会默认带上`influx config` 指定的flag,例如 ```shell influx config create --active -t <your-token> # 执行过后,所有需要该token的指令就不需要指定token了 ``` ### 用户管理 #### 创建用户 ```shell influx user create -n <username> -p <password> -o <org-name> -t <your-token> ``` #### 查看用户 ```shell influx user list -t <your-token> ``` #### 删除用户 ```shell influx user delete -t <user-id> -t <your-token> ``` #### 更新用户 ```shell influx user update -i <user-id> -n <new-username> -t <your-token> ``` #### 修改密码 ```shell influx user password -n <username> -t <your-token> # 指令执行后,CLI会引导密码修改 ``` ### oganization管理 官方建议一个influxdb实例中建组不超过20个,因为influxdb支持大约20个bucket的写入或查询,超过这个值将会对influxdb性能造成影响 #### 创建oganization 创建组有两种方式一种是使用UI管理界面创建,一种是使用influx命令。UI界面根据引导点击就行了 > influx命令 ```shell influx org create <org-name> -t <your-token> ``` #### 查看oganization ```shell influx org list -t <your-token> ``` #### 更新oganization ```shell influx org update -i <org-id> -n <new-org-name> ``` #### 删除oganization ```shell influx org delete -i <org-id> ``` ### bucket管理 bucket内的数据是有保存期限的influxdb称之为`retention-period-duration`,bucket在创建之初就会指定 #### bucket创建 ```shell influx bucket create -n <bucket-name> -o <org-name> -r <retention-period-duration> -t <your-token> # -o 指定organization名称,-r指定数据保留时间 # 数据保留时间单位在以下单位中取值: #纳秒 (ns) #微秒 (us or µs) #毫秒 (ms) #秒 (s) #分 (m) #时 (h) #日 (d) #周 (w) #示例 influx bucket create -n test-bucket -o wxm -r 72h5m -t 58s6gl9hD8lk-AS_i6mUaYMMCGe6N1vIfVpJUo2xJ2HkWMlWx2yp7r7IKZsyF6h8vQdTPfIpGyHtbALayLgUQw== ``` #### bucket更新 **更新bucket名称** ```shell influx bucket update -i <bucket-id> -n <new-bucket-name> ``` **更新数据保存时间** ```shell influx bucket update -i <bucket-id> -r <retention period with units> ``` #### bucket查看 ```shell influx bucket list -o <org-name or org-id> -t <your-token> ``` #### bucket删除 **通过名称删除** ```shell influx bucket delete -n <bucket-name> -o <org-name> ``` **通过id删除** ```cpp influx bucket delete -i <bucket-id> ``` ## 三、Line Protocol(数据写入协议) 通过Post请求方式向influxdb中写入数据进行测试,可使用Postman 详细见 Postman Influx http api 调用 章节。 ### Line Protocol 语法 ```shell # 以下取自官方文档 # 语法 <measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>] # 示例 myMeasurement,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000 ``` 一个`\n`代表一条数据协议的结束,所以数据内容不支持`\n` Line Protocol 支持部分特殊字符但需要进行转义
张文
2022年8月25日 10:45
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期