時序數據庫:InfluxDB命令行操作

學習 InfluxDB 的命令行操作至關重要,它不僅是與數據庫直接交互的工具,也是理解 InfluxDB 核心概念的關鍵途徑。通過命令行,用戶可以高效地執行數據庫管理、數據查詢和插入等任務,深入掌握 InfluxQL 的語法及功能。這對于調試、快速驗證想法以及日常運維來說不可或缺。此外,熟練使用命令行有助于提升對 InfluxDB 工作原理的理解,為更復雜的應用開發和系統優化打下堅實基礎。

目錄

數據庫操作

數據庫表操作

新建表

顯示所有表

刪除表?

數據保存策略

查看保存策略

創建保存策略

修改保存策略

刪除保存策略

數據查詢操作

普通數據查詢

聚合函數查詢

分頁查詢


數據庫操作

連接InfluxDB

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

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

對于數據庫的操作:

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

操作效果如下:

數據庫表操作

在InfluxDB當中,并沒有表(table)這個概念,取而代之的是MEASUREMENTS,MEASUREMENTS的功能與傳統數據庫中的表一致,因此我們也可以將MEASUREMENTS稱為InfluxDB中的表。

# 顯示所有的 measurement
show measurements

新建表

InfluxDB中沒有顯式的新建表的語句,只能通過insert數據的方式來建立新表。語法如下:

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

注意:

  • measurement與 tag 之間使用逗號分隔

  • 如果有多個tag,那么tag之間使用逗號分隔

  • tag 與 field 之間使用空格分隔

  • tag的值都是string類型,value不需要引號包裹

  • field如果是string類型的值,需要使用引號包裹

顯示所有表

# 顯示所有的 measurement
show measurements

刪除表?

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

數據庫表操作效果如下:

數據保存策略

InfluxDB是一般不建議直接刪除數據記錄的;其提供數據保存策略,主要用于指定數據保留時間,超過指定時間,就刪除這部分數據。

查看保存策略

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

  1. name:這是保留策略的名稱。每個數據庫可以有多個保留策略,autogen 是默認的保留策略名稱,如果你沒有為特定的數據點指定保留策略,它將自動使用 autogen。用戶也可以自定義其他名稱的保留策略。

  2. duration:表示數據保留的時間長度。這個值決定了數據在數據庫中最多能保存多久。時間單位通常是小時(h)、分鐘(m)、秒(s),如 72h 表示數據將被保留72小時。如果設置為 0s,則表示數據保留期無限制。

  3. shardGroupDuration:分片組的持續時間。InfluxDB使用分片組來組織和存儲數據,每個分片組覆蓋一個特定的時間范圍,這個值定義了每個分片組的時間跨度。查詢效率和資源管理在很大程度上取決于這個參數的設定,因為它影響著數據如何被索引和分布(不影響數據的刪除與否)。時間單位同樣使用小時、分鐘、秒。168h 表示 168小時也就是一周

  4. replicaN:副本數量。這表示數據在集群中的復制份數。例如,如果設置為 1,則每份數據只有一份副本(數據只存在一份,沒有其它);如果是 2,則每份數據會有兩個副本,以此類推。增加副本數量可以提高數據的持久性和可用性,但也會增加存儲需求。

  5. default:標記此保留策略是否為數據庫的默認策略。如果此列為 true,則表示當寫入數據時未明確指定保留策略,則會使用這個作為默認策略。如果為 false,則表明這是一個非默認策略,需要在寫入數據時顯式指定才會應用。

???????創建保存策略

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

修改保存策略

-- 語法
alter retention policy 策略名 on 數據庫名 duration 時長 default(可選)-- 例如:修改MyBase數據庫中的my_retention策略,保留時長為2天,并設置為默認
alter retention policy my_retention on MyBase duration 2d default

刪除保存策略

drop retention policy 策略名 on 數據庫名-- 例如:刪除MyBase數據庫中策略名為 my_retention 的策略
drop retention policy my_retention on MyBase--- 刪除保存策略如果是默認的;則不會自動的指定一個策略為默認;不過可以修改
alter retention policy autogen on MyBase default

數據查詢操作

普通數據查詢

InfluxDB基本查詢操作和MySQL的基本查詢是類似,綜合使用如下所示:

#----綜合使用
書寫順序
select distinct * from '表名' where '限制條件'  group by '分組依據' having '過濾條件' order by  limit '展示條數'
執行順序
from       -- 查詢(來源)
where      -- 限制條件 使用單引號,否則無數據返回或報錯
group by   -- 分組 只能對tags和time進行分組
having     -- 過濾條件--》對分組內的數據
select     -- 查詢的結果
distinct   -- 去重
order by   -- 排序 只能對time進行排序
limit      -- 展示條數

數據查詢演示效果如下:

聚合函數查詢

其實和MYSQL差不多,使用一些函數進行查詢,修改查詢范圍與結果。

count()函數:返回一個(field)字段中的非空值的數量。

mean() 函數:返回一個字段(field)中的值的算術平均值(平均值)。字段類型必須是長整型或float64。

median()函數:從單個字段(field)中的排序值返回中間值(中位數)。用于計算一組數值的中位數。中位數是將一組數值按大小順序排列后處于中間位置的數。如果數值集合中有奇數個數,中位數就是正中間的那個數;如果有偶數個數,則中位數是中間兩個數的平均值

spread()函數:返回字段的最小值和最大值之間的差值。數據的類型必須是長整型或float64。

sum()函數:返回一個字段中的所有值的和。字段的類型必須是長整型或float64。

分頁查詢

在InfluxDB中,要實現分頁效果,通常你會使用 LIMITOFFSET 這兩個關鍵字結合使用。LIMIT 用于限制返回的結果數量,而 OFFSET 用于指定從結果集中的哪一個位置開始返回結果。這種方式類似于在其他數據庫系統中使用 LIMIT m, n 來實現分頁,其中 m 是偏移量,n 是每頁的數量。

-- 語法
SELECT * FROM measurement_name WHERE condition GROUP BY ... LIMIT n OFFSET m
  • measurement_name:你想要查詢的measurement名稱。

  • condition(可選):用于過濾數據的條件表達式。

  • GROUP BY ...(可選):根據需要對結果進行分組。

  • LIMIT n:每頁顯示的記錄數。

  • OFFSET m:從結果集中的第 m 條記錄開始返回,用于實現分頁。

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

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

相關文章

Bootstrap 表格:高效布局與動態交互的實踐指南

Bootstrap 表格:高效布局與動態交互的實踐指南 引言 Bootstrap 是一個流行的前端框架,它為開發者提供了豐富的組件和工具,使得構建響應式、美觀且功能豐富的網頁變得更加簡單。表格是網頁中常見的元素,用于展示數據。Bootstrap 提供了強大的表格組件,可以幫助開發者輕松…

⑥ ACG-系統管理

上網管理行為是指對員工在工作時間內使用公司網絡的行為進行管理和監督。在企業中,系統管理是實施上網管理行為的重要方式之一。系統管理包括以下幾個方面: 1. 訪問控制:通過設置網絡訪問權限,對員工訪問特定網站或使用特定應用程…

【Docker】Dockerfile 優化工具 hadolint

本文內容均來自個人筆記并重新梳理,如有錯誤歡迎指正! 如果對您有幫助,煩請點贊、關注、轉發、訂閱專欄! 專欄訂閱入口 | 精選文章 | Kubernetes | Docker | Linux | 羊毛資源 | 工具推薦 | 往期精彩文章 【Docker】(全…

接口自動化——初識pytest

縮寫單詞含義.passed通過Ffailed失敗(用例執行時報錯)Eerror出錯(fixture執行報錯)sskipped跳過Xxpassed預期外的通過(不符合預期)xxfailed預期內的失敗(符合預期) 1.pytest 配置 1…

leetcode日記(100)填充每個節點的下一個右側節點指針

和層序遍歷差不多的思路,將節點儲存在隊列里,一邊取出節點一邊放入取出節點的左右節點,直到隊列空。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NU…

MySQL配置文件my.cnf詳解

目前使用的服務器系統是CentOS8.5 ,針對MySql8.4的配置示例,自己根據實際情況修改。 安裝MySql8.4時,MySql8.4沒有默認的my.cnf,需要用戶根據需要自行配置my.cnf文件,大概可看到下面這樣的參數列表,可能不同版本的mysql參數多少會…

【解決】XCode不支持舊版本的iOS設備

辦法: 手動添加設備支持文件(暫時解決方式) 如果您無法立即升級 Xcode,也可以通過下載設備支持文件來暫時解決問題。 檢查當前設備的 iOS 版本: 連接設備到 Mac,打開 Xcode 查看提示的 iOS 版本。例如&…

每日c/c++題 備戰藍橋杯(全排列問題)

題目描述 按照字典序輸出自然數 1 到 n 所有不重復的排列,即 n 的全排列,要求所產生的任一數字序列中不允許出現重復的數字。 輸入格式 一個整數 n。 輸出格式 由 1~n 組成的所有不重復的數字序列,每行一個序列。 每個數字保留 5 個場…

注意力蒸餾技術

文章目錄 摘要abstract論文摘要簡介方法預備知識注意力蒸餾損失注意力引導采樣 實驗結論總結參考文獻 摘要 本周閱讀了一篇25年二月份發表于CVPR 的論文《Attention Distillation: A Unified Approach to Visual Characteristics Transfer》,論文開發了Attention Distillation…

flutter android端抓包工具

flutter做的android app,使用fiddler抓不了包,現介紹一款能支持flutter的抓包工具Reqable,使用方法如下: 1、下載電腦端安裝包 下載地址為【https://reqable.com/zh-CN/download/】 2、還是在上述地址下載 android 端apk&#xf…

PyTorch單機多卡訓練(DataParallel)

PyTorch單機多卡訓練 nn.DataParallel 是 PyTorch 中用于多GPU并行訓練的一個模塊,它的主要作用是將一個模型自動拆分到多個GPU上,并行處理輸入數據,從而加速訓練過程。以下是它的核心功能和工作原理: 1、主要作用 數據并行&am…

PyTorch中的Tensor

PyTorch中的Tensor? 是核心數據結構,類似于 NumPy 的多維數組,但具備 GPU 加速和自動求導等深度學習特性。 一、基本概念 ?核心數據結構? Tensor 是存儲和操作數據的基礎單元,支持標量(0D)、向量(1D&am…

基于Python的圖書館信息管理系統研發

標題:基于Python的圖書館信息管理系統研發 內容:1.摘要 在數字化信息快速發展的背景下,傳統圖書館管理方式效率低下,難以滿足日益增長的信息管理需求。本研究旨在研發一款基于Python的圖書館信息管理系統,以提高圖書館信息管理的效率和準確性…

RCE復現

1.過濾flag <?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){eval($c);}}else{highlight_file(__FILE__);代碼審計過濾了"flag"關鍵詞&#xff0c;但限制較弱&#xff0c;容易繞過 ?csystem("ls&…

FPGA_YOLO(四) 部署yolo HLS和Verilog 分別干什么

首先,YOLO作為深度學習模型,主要包括卷積層、池化層、全連接層等。其中,卷積層占據了大部分計算量,尤其適合在FPGA上進行并行加速。而像激活函數(如ReLU)和池化層相對簡單,可能更容易用HLS實現。FPGA的優勢在于并行處理和定制化硬件加速,因此在處理這些計算密集型任務時…

自動化發布工具CI/CD實踐Jenkins介紹!

1. 認識Jenkins 1.1 Jenkins是什么&#xff1f; Jenkins 是一個開源的自動化服務器&#xff0c;主要用于持續集成和持續部署&#xff08;CI/CD&#xff09;。 它由Java編寫&#xff0c;因此它可以在Windows、Linux和macOS等大多數操作系統上運行。 Jenkins 提供了一個易于使用…

【愚公系列】《高效使用DeepSeek》039-政務工作輔助

??【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】?? ??開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! ?? 江湖人稱"愚公搬代碼",用七年如一日的精神深耕技術領域,以"…

深度學習篇---模型訓練評估參數

文章目錄 前言一、Precision&#xff08;精確率&#xff09;1.1定義1.2意義1.3數值接近11.4數值再0.5左右1.5數值接近0 二、Recall&#xff08;召回率&#xff09;2.1定義2.2意義2.3數值接近12.4數值在0.5左右2.5數值接近0 三、Accuracy&#xff08;準確率&#xff09;3.1定義3…

Windows 圖形顯示驅動開發-WDDM 2.4功能-GPU 半虛擬化(十一)

注冊表設置 GPU虛擬化標志 GpuVirtualizationFlags 注冊表項用于設置半虛擬化 GPU 的行為。 密鑰位于&#xff1a; DWORD HKLM\System\CurrentControlSet\Control\GraphicsDrivers\GpuVirtualizationFlags 定義了以下位&#xff1a; 位描述0x1 ? 為所有硬件適配器強制設置…

Vue 的 nextTick 是如何實現的?

參考答案&#xff1a; nextTick 的本質將回調函數包裝為一個微任務放入到微任務隊列&#xff0c;這樣瀏覽器在完成渲染任務后會優先執行微任務。 nextTick 在 Vue2 和 Vue3 里的實現有一些不同&#xff1a; 1. Vue2 為了兼容舊瀏覽器&#xff0c;會根據不同的環境選擇不同包裝策…