數據中心-時序數據庫InfluxDB

目錄

一、InfluxDB介紹

1.1 什么是InfluxDB?

1.2 應用場景

1.3 特點

1.4 版本差異

二、數據模型和存儲架構

2.1 相關概念

2.2 存儲架構

三、InfluxDB基礎操作

3.1 數據庫操作

3.2 數據表操作

顯示所有表

新建表

刪除表

3.3 數據保存策略

查看保存策略

創建保存策略

修改保存策略

?刪除保存策略

3.4 數據查詢

查詢全部

條件查詢

or查詢

模糊查詢

排序查詢?

去重

分組

聚合函數

分頁


一、InfluxDB介紹

1.1 什么是InfluxDB?

InfluxDB是一個開源的時間序列數據庫,特別為處理和分析帶有時間戳的數據而設計。

它由InfluxData公司開發,并使用Go語言編寫,目標在提供高性能的數據寫入與查詢能力。

1.2 應用場景

? ???物聯網(IoT):處理來自傳感器的大量實時數據,用于環境監測、智能城市、工業自動化等領域.

? ???系統監控:收集和分析服務器、應用程序的性能指標,如CPU使用率、內存占用、網絡流量.

? ???實時分析:在金融、電商等行業中,用于實時交易分析、市場趨勢預測等.

1.3 特點

? ???高寫入性能

????????專為時序數據的 “寫多讀少” 場景優化,支持每秒數十萬條數據寫入(取決于硬件),寫入時跳過復雜索引和事務檢查,優先保證吞吐量

? ???時間優化的存儲

????????采用 TSM(Time-Structured Merge Tree)存儲引擎,數據按時間分段存儲,查詢時可快速定位時間范圍,避免全表掃描。

? ???靈活的數據模型

????????不依賴固定表結構,支持動態字段擴展,適合數據格式多變的場景(如不同傳感器的指標差異)。

? ???內置數據生命周期管理

????????通過數據保留策略(Retention Policy, RP)?自動刪除過期數據,減少存儲成本(如只保留最近 30 天的監控數據)。

? ???專用查詢語言

????????支持 InfluxQL(類 SQL,易上手)和 Flux(函數式語言,支持復雜數據處理,如跨時間范圍聚合、數據轉換)。

總的來說;非常適合對實時大量數據進行存儲與計算

1.4 版本差異

InfluxDB 有兩個主要版本,架構和功能差異較大:

二、數據模型和存儲架構

2.1 相關概念

  • Measurement: 主要用來存儲具有相似特征或屬于同一類別的數據點集合,類似于關系型數據庫中的表(table);包含了列Timestamp時間戳,field字段和tag標簽

  • Field set: 每組field key和field value的集合,即我們需要的字段,如internale[key] = 76[value], external[key]= 18[value]。不可索引

  • Tag set: 不同的每組tag key和tag value的集合,如device[key]= dev1[value], buiding[key]= b1[value]。可索引

  • Point:表里面的一行數據,由時間戳(timestamp)、標簽(tag)、字段(field)和組成:

    • 時間戳time:每條數據記錄的時間,也是數據庫自動生成的主索引,如果時間戳沒有指定。那么InfluxDB就使用當前系統的時間戳(納秒)

    • 字段field:字段包含數據的實際值,可以是各種數據類型(整數、浮點數、字符串、布爾值等);與標簽不同,字段在查詢時可以進行數學運算。

    • 標簽tag:用于索引和過濾數據;通常是字符串類型。

2.2 存儲架構

三、InfluxDB基礎操作

這里我已經進行安裝

# 進入InfluxDB的命令行終端
docker exec -it influxdb /bin/bash# 連接InfluxDB
influx

3.1 數據庫操作

連接InfluxDB:

進入InfluxDB的命令行終端,再連接InfluxDB

# 進入InfluxDB的命令行終端
docker exec -it influxdb /bin/bash# 連接InfluxDB
influx

數據庫操作:

# 顯示數據庫
show databases# 創建數據庫
create database itheima# 刪除數據庫
drop database itheima# 使用數據庫
use itheima

3.2 數據表操作

顯示所有表
# 顯示所有的 measurement
show measurements

?

新建表
insert measurement+","+tag1=value1,tag2=value2 + 空格 + field1=value1,field2=values2-- 例如:對measurement為tb_user的插入數據;有一個tag索引名為region,值為廣東;有三個field分別是age,high,weight 對應的值分別為25、175、130
insert tb_user,region=廣東 name="張三",age=25,high=175,weight=130

刪除表
-- 刪除語法
drop measurement 表名-- 例如:刪除名為 tb_user 的measurement
drop measurement tb_user

3.3 數據保存策略

查看保存策略
show retention policies on 數據庫名稱-- 例如:查看 point_data 數據庫的保存策略
show retention policies on point_data

創建保存策略
-- 語法
create retention policy 策略名 on 數據庫名 duration 保留時長 replication 副本個數 [default]-- 示例:創建point_data數據庫的默認保存策略名字為 my_retention ,保留時長為24小時,副本數1個
create retention policy my_retention on point_data duration 24h replication 1 default-- 示例:同樣的,但是保存時長設置為3天,但是不設置為默認的保存策略的話就不加default
create retention policy my_retention2 on point_data duration 3d replication 1

修改保存策略
-- 語法
alter retention policy 策略名 on 數據庫名 duration 時長 default(可選)-- 例如:修改point_data數據庫中的my_retention2策略,保留時長為2天,并設置為默認
alter retention policy my_retention2 on point_data duration 2d default
?刪除保存策略
drop retention policy 策略名 on 數據庫名-- 例如:刪除point_data數據庫中策略名為 my_retention2 的策略
drop retention policy my_retention2 on point_data--- 刪除保存策略如果是默認的;則不會自動的指定一個策略為默認;不過可以修改
alter retention policy autogen on point_data default

3.4 數據查詢

查詢全部
-- 插入數據
insert tb_user,region=廣東 name="張三",age=25,high=175,weight=130
insert tb_user,region=湖南 name="李四",age=21,high=177,weight=135
insert tb_user,region=廣東 name="王五",age=28,high=178,weight=138-- 查詢數據
select * from tb_user

條件查詢
-- 查詢名字為 李四,年齡為21 的用戶
select * from tb_user where "name"='李四' and age=21

or查詢
-- 查詢姓名為張三或李四
select * from tb_user where "name"='張三' or "name"='李四'

模糊查詢
-- 查詢名字中包含王的
select * from tb_user where "name"=~/王/

排序查詢?
-- 只能根據時間排序;根據創建時間降序排序
select * from tb_user order by time desc

去重
insert tb_user,region=廣西 name="錢六",age=28,high=178,weight=138-- 對age字段去重查詢;注意:只能在distinct 之后接一個字段
select distinct age from tb_user

分組

在InfluxDB中,GROUP BY 語句主要用于根據時間序列數據的標簽(tags)進行分組。GROUP BY 僅能用于標簽(tag)字段,而不能直接用于字段(field)進行分組。

-- 根據region進行分組
select * from tb_user group by region
-- 統計所有年齡之和
select sum(age) from tb_user

聚合函數
-- 統計一條記錄中;每個非空field的總數
select count(*) from tb_user

-- 求用戶表的廣東地區的用戶平均年齡
select mean(age) from tb_user where region='廣東'

-- 查詢身高中間值
select median(high) from tb_user-- 插入數據后再查看
insert tb_user,region=湖南 name="趙六",age=28,high=171,weight=110

-- 返回最大與最小年齡之間的差值
select spread(age) from tb_user

分頁
-- 查詢第1頁,每頁3條數據
select * from tb_user limit 3 offset 0-- 查詢第2頁,每頁3條數據
select * from tb_user limit 3 offset 3



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916907.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916907.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916907.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

webpack-高級配置

多入口文件 如何輸出多個html文件 輸入位置 需要寫兩個entryoutput位置也要改一下 加一個name避免重名 在生成html時 要根據每一個入口都寫一個插件 并且chunks要寫好 當前html引入哪些文件如何抽離壓縮css文件 安裝插件在rules里面添加插件plugins中添加css抽離代碼壓縮css抽離…

WinForm組件之Label 控件

Label 控件Label 控件是 WinForm 中最基礎、最常用的控件之一,主要用于在界面上顯示文本信息,通常作為說明、提示或標題,不直接接受用戶輸入。它是構建用戶界面的基礎組件,在引導用戶操作、展示狀態信息等方面發揮重要作用。Label…

鴻蒙中相冊權限彈窗

model.json5配置權限{"name": ohos.permission.READ_MEDIA,"reason":"$string:permission_reason_IMG","usedScene": {}}ui使用const url albumClass.onRequestCameraPermission()類import { abilityAccessCtrl, common, PermissionR…

智能車輛熱管理測試方案——提升效能與保障安全

車輛熱管理在能源危機出現、汽車排放法規日益嚴格以及人們對汽車舒適性要求更高的背景下應運而生。將各個系統或部件如冷卻系統、潤滑系統和空調系統等集成一個有效的熱管理系統;控制和優化車輛的熱量傳遞過程,保證各關鍵部件和系統良好運行;…

如何提升 TCP 傳輸數據的性能?詳解

TCP 會保證每一個報文都能夠抵達對方,它的機制是這樣:報文發出去后,必須接收到對方返回的確認報文 ACK,如果遲遲未收到,就會超時重發該報文,直到收到對方的 ACK 為止 所以,TCP 報文發出去后&…

WiFi連接簡單流程

WiFi連接流程與Debug方法一、WiFi連接全流程與詳細日志解讀 WiFi連接是一個多階段、跨層次的復雜過程,涉及物理層、鏈路層、網絡層和應用層的多種協議協作。整個流程包括AP初始化、終端掃描、認證、關聯、四次握手、DHCP獲取IP、網絡可用與后續服務。1. AP初始化與參…

Python——Pandas庫,超詳細教程

前言1、Python的Pandas是一個基于Python構建的開源數據分析庫,它提供了強大的數據結構和運算功能。2、Series:一維數組,類似于Numpy中的一維array,但具有索引標簽,可以保存不同類型的數據,如字符串、布爾值…

go語言的gRPC教程-protobuf基礎

一、前言 RPC,全稱Remote Procedure Call,中文譯為遠程過程調用。通俗地講,使用RPC進行通信,調用遠程函數就像調用本地函數一樣,RPC底層會做好數據的序列化與傳輸,從而能使我們更輕松地創建分布式應用和服…

Linux基本指令,對路徑的認識

引言簡單介紹一些Linux的基本指令,快速上手Linux操作系統。一、ls指令語法:ls [選項] [目錄或文件]功能::對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件件,將列出文件名以及其他信息常用選項&a…

25. html 使用的字符集是什么,有什么特點

總結 utf-8&#xff0c;支持所有語言一、HTML 默認使用的字符集? HTML 頁面推薦使用 UTF-8 字符集<meta charset"UTF-8" />這是 HTML5 中推薦的標準字符編碼&#xff0c;用于定義網頁中字符的編碼方式。二、什么是字符集&#xff08;Character Encoding&#…

MySQL 讀寫分離(含示例代碼)

背景 面對日益增加的系統訪問量,數據庫的吞吐量面臨著巨大瓶頸。對于同一時刻有大量并發讀操作和較少寫操作類型的應用系統來說,將數據庫拆分為主庫和從庫,主庫負責處理事務性的增刪改操作,從庫負責處理查詢操作,能夠有效的避免由數據更新導致的行鎖,使得整個系統的查詢性…

C#中Visual Studio平臺按照OfficeOpenXml步驟

找到包的地址&#xff1a; NuGet Gallery | DocumentFormat.OpenXml.Framework 3.3.0 https://nuget.info/packages 報錯&#xff1a; 嚴重性 代碼 說明 項目 文件 行 禁止顯示狀態 錯誤 無法解析依賴項“EPPlus”。使用的源: Officeopenxml, Mic…

【Linux】重生之從零開始學習運維之備份恢復

備份恢復準備工作16主機-ubuntu系統準備日志目錄mkdir -p /data/mysql/logs/ chown mysql:mysql -R /data/mysql定制日志配置vim /etc/mysql/mariadb.conf.d/50-server.cnf log_bin/data/mysql/logs/binlog systemctl restart mariadb刪除db1數據庫drop database db1;13主機-ub…

VoIP技術全面深度學習指南:從原理到實踐的認知進化

一、VoIP技術的本質認知與歷史演進 1.1 技術本質的深層理解 VoIP&#xff08;Voice over Internet Protocol&#xff0c;IP語音傳輸&#xff09;從根本上代表了通信技術的范式轉換。這不僅僅是將模擬語音信號數字化那么簡單&#xff0c;而是將傳統的電路交換模式徹底轉向包交換…

CentOS Nginx 1.13.9 部署文檔

以下是 Nginx 1.13.9 的詳細安裝步驟&#xff08;基于 CentOS/Ubuntu 系統&#xff09;&#xff1a;1. 安裝依賴 CentOS/RHEL sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-develUbuntu/Debian sudo apt update && sudo apt install -y b…

CSS-in-JS 動態主題切換與首屏渲染優化

動態主題切換的實現方式1. 使用 CSS 變量&#xff08;CSS Custom Properties&#xff09;CSS 變量是實現主題切換最直接的方式&#xff1a;:root {--primary-color: #4285f4;--background-color: #ffffff;--text-color: #333333; }[data-theme"dark"] {--primary-col…

不止 “聽懂”,更能 “感知”!移遠通信全新AI 音頻模組 重新定義智能家居“聽覺”邏輯

7月29日&#xff0c;在 2025 世界人工智能大會&#xff08;WAIC&#xff09;期間&#xff0c;移遠通信正式發布全新 VA500-GL AI 音頻模組。該產品基于本地化 AI 算法&#xff0c;為智能家電賦予精準 “聽覺” 與主動交互能力&#xff0c;借助環境狀態智能檢測、離線語音控制及…

【Python】 切割圖集的小腳本

Python 切割圖片腳本 前言&#xff1a; 有短時間沒寫博客了&#xff0c;今天打算再寫一篇MonoGame的教程&#xff0c;這篇是我再做我自己的2D 游戲項目的時候我需要一些已經切割好的圖片但我得到圖片是合在一起圖集&#xff0c;這個腳本適合正在做2D游戲開發且不依賴于游戲引…

網絡安全是什么?手把手教你認識網絡安全

網絡安全是什么&#xff1f;手把手教你認識網絡安全 提到網絡安全&#xff0c;不少人會聯想到電影里黑客指尖翻飛攻破系統的炫酷場景。但實際上&#xff0c;它并非遙不可及的技術名詞&#xff0c;而是與我們日常生活息息相關的 “數字保鏢”。從手機支付密碼到社交賬號信息&am…

AtCoder Beginner Contest 416(2025.7.26)

文章目錄A Vacation ValidationB 1D Akari&#xff08;補&#xff09;C Concat (X-th)&#xff08;補&#xff09;題目考查題意簡述解法思路 &#xff1a;AC代碼D Match, Mod, Minimize 2&#xff08;補&#xff09;題目分數/評級題目考查時間復雜度題意簡述解法思路 &#xff…