(一)认识InfluxDB

以下内容来自 尚硅谷,写这一系列的文章,主要是为了方便后续自己的查看,不用带着个PDF找来找去的,太麻烦!

第 1 章 认识InfluxDB

1.1 InfluxDB的使用场景

  • InfluxDB是一种时序数据库,时序数据库通常被用在监控场景,比如运维和 IOT(物联网)领域。这类数据库旨在存储时序数据并实时处理它们。

  • 比如,我们可以写一个程序将服务器上CPU的使用情况每隔 10 秒钟向InfluxDB中写入一条数据。接着,我们写一个查询语句,查询过去 30 秒CPU的平均使用情况,然后让这个查询语句也每隔 10 秒钟执行一次。最终,我们配置一条报警规则,如果查询语句的执行结果>xxx,就立刻触发报警。

  • 上述就是一个指标监控的场景,在IOT领域中,也有大量的指标需要我们监控。比如,机械设备的轴承震动频率,农田的湿度温度等等。

1.2 为什么不用关系型数据库

1.2.1 写入性能

  • 关系型数据库也是支持时间戳的,也能够基于时间戳进行查询。但是,从我们的使用场景出发,需要注意数据库的写入性能。通常,关系型数据库会采用B+树数据结构,在数据写入时,有可能会触发叶裂变,从而产生了对磁盘的随机读写,降低写入速度。

  • 当前市面上的时序数据库通常都是采用LSM Tree的变种,顺序写磁盘来增强数据的写入能力。网上有不少关于性能测试的文章,大家可以自己去参考学习,通常时序数据库都会保证在单点每秒数十万的写入能力

1.2.2 数据价值

  • 我们之前说,时序数据库一般用于指标监控场景。这个场景的数据有一个非常明显的特点就是冷热差别明显。通常,指标监控只会使用近期一段时间的数据,比如我只查询某个设备最近 10 分钟的记录, 10 分钟前的数据我就不再用了。那么这 10 分钟前的数据,对 我们来说就是冷数据,应该被压缩放到磁盘里去来节省空间。而热数据因为经常要用,数据库就应该让它留在内存里,等待查询。而市面上的时序数据库大都有类似的设计。

1.2.3 时间不可倒流,数据只写不改

  • 时序数据是描述一个实体在不同时间所处的不同状态。
    在这里插入图片描述

  • 就像是我们打开任务管理器,查看CPU的使用情况。我发现CPU占用率太高了,于是杀死了一个进程,但 10 秒前的数据不会因为我关闭进程再发生改变了。

  • 这是时序数据的一大特点。与之相应,时序数据库基本上是插入操作较多,而且还没有什么更新需求。

1.3 1.X版本的TICK技术栈与 2 .X版本的进一步融合

  • 根据上文的介绍,我们首先可以知道时序数据一般用在监控场景。大体上,数据的应用可以分为 4 步走。

    • ( 1 )数据采集
    • ( 2 )存储
    • ( 3 )查询(包括聚合操作)
    • ( 4 )报警
  • 这样一看,只给一个数据库其实只能完成数据的存储和查询功能,上游的采集和下游的报警都需要自己来实现。因此InfluxData在InfluxDB1.X的时候推出了TICK生态来推出start全套的解决方案。

  • TICK 4 个字母分别对应 4 个组件。
    ⚫ T : Telegraf - 数据采集组件,收集&发送数据到InfluxDB。
    ⚫ I : InfluxDB - 存储数据&发送数据到Chronograf。
    ⚫ C : Chronograf - 总的用户界面,起到总的管理功能。
    ⚫ K : Kapacitor - 后台处理报警信息。

  • 到了 2 .x,TICK进一步融合,ICK的功能全部融入了InfluxDB,仅需安装InfluxDB就能得到一个管理页面,而且附带了定时任务和报警功能。

1.4 influxDB版本比较与选型

1.4.1 版本特性比较

  • 2020 年InfluxDB推出了 2 .0的正式版。 2 .x同 1 .x相比,底层引擎原理相差不大,但会涉及一些概念的转变(例如db/rp换成了org/bucket)。另外,对于TICK生态来说, 1 .x需要自己配置各个组件。2.x则是更加方便集成,有很棒的管理页面。

  • 另外,在查询语言方面,1.x是使用InfluxQL进行查询,它的风格近似SQL。2.x推出了FLUX查询语言,可以使用函数与管道符,是一种更符合时序数据特性的更具表现力的查询语言。

1.4.2 选型(本文档使用InfluxDB 2. 4)

  • 市场现状:目前企业里面用 InfluxDB 1.X 和 InfluxDB 2.X 都有人在用,数量上InfluxDB1.X 占多一些。

  • 易用性:在开发中,InfluxDB 1.X集成生态会比较麻烦,InfluxDB 2.X相对来说更加便利。

  • 性能:InfluxDB 1.X和 2 .X的内核原理基本一致,性能上差距不大。

  • 集群:InfluxDB从 0 .11版本开始,就闭源了集群功能的代码。也就是说,你只能免费试用InfluxDB的单节点版(开源),想要集群等功能就需要购买企业版。不过就InfluxDB 1.8来说,有开源项目根据 0. 11 的代码思路提供了InfluxDB开源的集群方案。也
    有开源项目给InfluxDB 2. 3 增加了反向代理功能,让我们可以横向拓展InfluxDB的服务能
    力。项目参考地址:

项目地址
InfluxDB Cluster对应 1.8.10:https://github.com/chengshiwen/influxdb-cluster
InfluxDB Proxy对应 1.2 - 1.8:https://github.com/chengshiwen/influx-proxy
InfluxDB Proxy对应 2.3:https://github.com/chengshiwen/influx-proxy/tree/influxdb-v
  • FLUX语言支持:自InfluxDB 1.7 和 InfluxDB 2.0以来,InfluxDB推出了一门独立的新的查询语言FLUX,而且作为一个独立的项目来运作。InfluxData公司希望FLUX语言能够成为一个像SQL一样的通用标准,而不仅仅是查询InfluxDB的特定语言。而且不管是你是选择InfluxDB 1.X 还是 2.X 最终都会接触到FLUX。不过2.X 对FLUX的支持性要更好一些。

  • InfluxDB产品概况:

    • InfluxDB 1.8 在小版本上还在更新,主要是修复一些BUG,不再添加新特性
    • InfluxDB 2. 4 这是InfluxDB较新的版本,仍然在增加新的特性。
    • InfluxDB 企业版 1.9 需要购买,相比开源版,它有集群功能。
    • InfluxDB Cloud,免部署,跑在InfluxData公司的云服务器上,你可以使用客户端来操作。功能上对应开源版的 2. 4
  • 2 .x 与 1.x的主要区别:两个版本的内核原理基本一致,性能上的差别不大。差别主要是在,权限管理方式不同, 2 .x TICK的集成性比 1 .x好, 1 .x中的database到了 2 .x中变成了bucket等。

  • 最终,本文选择 Influx 2. 4 来进行写作,学会使用 InfluxDB 2. 4 后应当也能知道 InfluxDB 1.7及以上版本的开发。写作过程遇到与InfluxDB1.8不同的地方,会做一些提醒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/45722.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

day31贪心算法 用最少数量的箭引爆气球 和无重叠区间

题目描述 题目分析: x轴向上射箭,12一支,重叠的需要一支,3-8一支,7-16一支 返回2; 就是让重叠的气球尽量在一起,局部最优;用一支弓箭,全局最优就是最少弓箭&#xff1b…

猿人学第二题—混淆 动态cookie检测

猿人学第二题—混淆 动态cookie检测 1、代码格式化检测2、检测global和navigator.vendorSub3、检测setInterval思考 4、console.log输出检测补环境 简单的document.cookie,location.reload等就不写了 1、代码格式化检测 这里应该是利用了字符串正则匹配性能低的特点…

软考高项(五)信息系统工程 ★重点集萃★

👑 个人主页 👑 :😜😜😜Fish_Vast😜😜😜 🐝 个人格言 🐝 :🧐🧐🧐说到做到,言出必行&am…

如何解决创建vue项目后没有webpack.config.js(vue.config.js)文件

◼️ webpack.config.js文件没有的原因 Vue 项目中 vue.config.js 文件就等同于 webpack 的 webpack.config.js。 vue-cli3 之后创建的时候并不会自动创建 vue.config.js,因为这个是个可选项,所以一般都是需要修改 webpack 的时候才会自己创建一个 vue…

什么是PostgreSQL?简要介绍其主要特点和用途

PostgreSQL是一种开源的关系型数据库管理系统(DBMS),它是最强大和广泛使用的开源数据库之一。PostgreSQL的名称起源于其前身,称为"Ingres"项目,后来被命名为Postgres,而PostgreSQL则是它的进一步…

目录操作在C语言中:一个全面的指南

(꒪ꇴ꒪ ),hello我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误&#x…

指针进阶(三)

指针进阶(三) 指针习题组: 01: int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }运行结果: 原因:这里a是数组名&a…

Linux:centos7:zabbix4.0(安装,监控》Linux》Windows》网络设备)

环境 centos7(zabbix服务器)内网ip:192.168.254.11 外网ip:192.168.0.188(去网络yum源下载) centos7(被监控端)内网ip:192.168.254.33win10(被监控端&…

【后端面经】微服务构架 (1-3) | 熔断:抖抖抖不停?微服务熔断策略让你的系统稳如泰山!

文章目录 一、前置知识1、什么是熔断?2、什么是限流?3、什么是降级?4、怎么判断微服务出现了问题?A、指标有哪些?B、阈值如何选择?C、超过阈值之后,要不要持续一段时间才触发熔断?5、服务恢复正常二、面试环节1、面试准备2、面试基本思路三、总结 在微服务构架中…

Java版本工程项目管理系统源码-全面的工程项目管理

​ ​工程项目管理系统是指从事工程项目管理的企业(以下简称工程项目管理企业)受业主委托,按照合同约定,代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 如今建筑行业竞争激烈,内卷严重,…

ADCS知识点全收录! 如何利用证书服务器对域控进行多角度攻击(上)

在2021年的BlackHat大会上,由Will Schroeder和Lee Christensen发布了关于Active Directory Certificate Services 利用白皮书《Certified Pre-Owned - Abusing Active Directory Certificate Services》,其中包含了大量的针对ADCS的攻击手法,…

JavaFx实现自定义窗口

效果 代码 package cn.juhe.zjsb.task;import javafx.application.Application; import javafx.geometry.Insets; import javafx.geometry.Rectangle2D; import javafx.scene.Cursor; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image…

【Nodejs】文件上传

1.初始化准备 1.1 安装依赖 首先创建一个express-multer-upload工程项目,然后在项目中下好各种依赖包。 multer中间件 Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。 注意: Multer 不会…

【Ajax】笔记-JQuery发送请求与通用方法

Get请求 语法格式: $.get(url, [data], [callback], [type]) url:请求的 URL 地址。data:请求携带的参数。callback:载入成功时回调函数。type:设置返回内容格式,xml, html, script, json, text, _default。 准备三个按钮分别测试Get 、Post、通用型方…

概率论的学习和整理21:用EXCEL来做假设检验(未完成草稿)

目录 1 EXCEL可以用来做假设检验 1.1 如何打开 数据分析 和 规划求解 1.2 EXCEL里关于正态分布的准备知识 2 基本的假设检验 2.1 最基本的假设检验,单边的Z检验 2.1 双样本F检验 2.1.1 例题 2.1.2 进行F检验之前需要满足一些假设条件 2.1.3 计算步骤 2.1…

Langchain 新手完全指南

原文:Langchain 新手完全指南 Langchain 可能是目前在 AI 领域中最热门的事物之一,仅次于向量数据库。 它是一个框架,用于在大型语言模型上开发应用程序,例如 GPT、LLama、Hugging Face 模型等。 它最初是一个 Python 包&#x…

实战攻防Demo|如何轻松形成自动响应的安全闭环?

从威胁阻断角度来说,拦住黑客的第一步攻击尤为重要。同样,对于攻击者来说,第一步攻击的成本也往往是最高的。日常工作中人们会遇到很多类型的攻击,但暴力破解或者撞库攻击往往被作为黑客的第一步攻击。这主要源于其技术含量低&…

【网络教程】如何快速的解决WordPress“另一更新正在进行”的问题

文章目录 WordPress提示“另一更新正在进行”解决方案手动删除数据库记录使用插件WordPress提示“另一更新正在进行” 当我们在更新WordPress的插件或者升级WordPress时会出现后台提示“另一更新正在进行”,如下图 当我们点击更新后,出现下图提示 出现上述问题是由于在升级Wo…

平板用的触控笔什么牌子好?ipad第三方电容笔推荐

随着技术的发展,出现了各种各样的平板电容笔。一支好的电容笔,不但可以极大地提升我们的工作效率,还可以极大地提升我们的学习效果。平替的电容笔,无论是在技术方面,还是在质量方面,都还有很大的提升空间&a…

在家下载论文使用哪些论文下载工具比较好

在家下载论文如果不借助论文下载工具是非常艰难的事情,因为很多查找下载论文的数据库都是需要账号权限才可使用的。 例如,我们查找中文论文常用的知网、万方等数据库以及众多国外论文数据库。 在家下载知网、万方数据库论文可用下面的方法:…