一、InfluxDB介紹
InfluxDB 是一個開源的分散式時序、事件和指標資料庫。它具有高可用性和可擴展性,可處理來自存儲設備、感測器、應用程序等的海量數據,方便用戶查詢和分析數據等操作。
它是一個基於Go語言的開源資料庫,專門為區塊鏈、物聯網、實時分析、監控等大數據領域打造,能夠支持各種類型的數據,包括數值、字元串、嵌套和地理空間數據。
InfluxDB 的主要特點包括:
- 基於標籤索引,使得查詢效率更高,支持高峰值瞬間查詢。
- 支持 SQL 語句查詢和動態創建資料庫的機制。
- 支持在分散式系統上多節點水平擴展,提高性能。
二、InfluxDB安裝
InfluxDB 支持 Windows、Linux 和 macOS,可以通過官方網站下載相應版本的安裝包。
以下是安裝 InfluxDB 的步驟:
1. Linux平台安裝
# 添加官方倉庫 $ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - $ echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list # 安裝資料庫服務 $ sudo apt-get update && sudo apt-get install influxdb
2. macOS安裝
# 安裝 Homebrew 包管理器 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # 使用 Homebrew 安裝 InfluxDB $ brew update $ brew install influxdb
三、InfluxDB基礎
1. 創建資料庫
InfluxDB 中不需要顯式地創建資料庫,可以通過寫入數據來動態創建。當你寫入數據時,如果該資料庫不存在,將自動創建該資料庫。因此,寫入數據是操作 InfluxDB 的首選方式。
以下是創建 InfluxDB 資料庫的示例:
$ influx -precision rfc3339 Connected to http://localhost:8086 version 2.0.0 > CREATE DATABASE mydb > SHOW DATABASES name: databases name ---- _internal mydb
2. 測量(Measurement)和標籤(Tag)
InfluxDB 採用了一種特別的模型,即使用測量(Measurement)和標籤(Tag)來描述一組數據。一個測量表示一組數據,一個標籤則是用於過濾、深入挖掘數據。因此,正確的測量和標籤非常重要。
以下是創建 InfluxDB 測量和標籤的示例:
> INSERT cpu,host=serverA,region=uswest value=0.64 > INSERT cpu,host=serverA,region=uswest value=0.67 > INSERT cpu,host=serverB,region=uswest value=0.52 > SELECT * FROM cpu name: cpu time host region value ---- ---- ------ ----- 1638004310260996301 serverA uswest 0.64 1638004322905133200 serverA uswest 0.67 1638004383085653232 serverB uswest 0.52
3. 查詢語句
InfluxDB 查詢語句採用類 SQL 語法,但是也有自己的一些特性。為了方便查詢,InfluxDB 還提供了一些內置函數,如 min、max、count、sum、mean 等。以下是一些常用的查詢操作示例:
> SELECT * FROM cpu WHERE host = 'serverA' > SELECT * FROM cpu WHERE host =~ /server.*/ AND value > 0.5 > SELECT count(*) FROM cpu WHERE time > now() - 1h > SELECT mean(value) FROM cpu WHERE time > now() - 30m GROUP BY host
四、InfluxDB高級應用
1. InfluxDB曲線圖
InfluxDB 有一個實時的曲線圖展示功能,可以動態地展示數據的變化情況。
以下是一個簡單的 InfluxDB 曲線圖示例:
InfluxDB Chart
<script src="https://cdn.jsdelivr.net/npm/@influxdata/influxdb-client@1.20.0/dist/influxdb-browser.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>原創文章,作者:VVRYG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/362033.html