<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LabVIEW操作InfluxDB數據庫應用特點和原理概念

華穗科技 ? 來源:華穗科技 ? 2024-04-12 12:21 ? 次閱讀

在測試系統中,數據存儲通常是不可或缺的一環,面對少量數據時,我們可以采用本地文件保存的方式,進行存儲查看;而面對大量實時數據時,例如在監控場景,如運維和IOT物聯網)領域,通常會有監控傳感器和系統的性能指標等數據需要存儲,這時對于時序型數據庫就有了很好的應用場景。小編近期使用到的一種時序型數據庫——InfluxDB,對于InfluxDB的集成官方有一組API和工具,但大多適用于文本語言,查詢許多資料,關于LabVIEW對此數據庫的操作教程甚少,所以今天小編分享下使用LabVIEW實現對InfluxDB數據庫的連接、寫入、查詢等操作。

本文分享:

InfluxDB介紹

LabVIEW Client of InfluxDBV2.x教程

一、InfluxDB介紹

InfluxDB 是一個用于存儲和分析時間序列數據的開源數據庫,由 Golang 語言編寫,過多的概念小編在這里就不多贅述了,主要介紹下應用到的特點和原理概念。進一步了解可查看官方說明文檔。

1、特點

內置 HTTP 接口,使用方便

數據可以打標記,這樣查詢可以很靈活

類 SQL 的查詢語句

安裝管理很簡單,并且讀寫數據很高效

能夠實時查詢,數據在寫入時被索引后就能夠被立即查出

2、原理概念

寫入協議:InfluxDB 行協議

InfluxDB的行協議是一種寫入數據點到InfluxDB的文本格式。必須要是這樣的格式的數據點才能被Influxdb解析和寫入成功,當然除非你使用一些其他服務插件。一行數據由4種元素構成:measurement(測量名稱)、Tag Set(標簽集)、Field Set(字段集)、Timestamp(時間戳)。

f4f28d50-f883-11ee-a297-92fbcf53809c.png

(1)measurement(測量名稱)

必需

測量的名稱。每個數據點都必須聲明自己是哪個測量里面,不可省略。

大小寫敏感

不可以下劃線_開頭

(2)Tag Set(標簽集)

標簽應該用在一些值的范圍有限的,不太會變動的屬性上。比如傳感器的類型和id等等。在InfluxDB中一個Tag相當于一個索引。給數據點加上Tag有利于將來對數據進行檢索。但是如果索引太多了,就會減慢數據的插入速度。

可選

鍵值關系使用=表示

多個鍵值對之間使用英文逗號分隔

標簽的鍵和值都區分大小寫

標簽的鍵不能以下劃線_開頭

鍵的數據類型:字符串

值的數據類型:字符串

(3)Field Set(字段集)

必需

一個數據點上所有的字段鍵值對,鍵是字段名,值是數據點的值。

一個數據點至少要有一個字段。

字段集的鍵是大小寫敏感的。

字段

鍵的數據類型:字符串

值的數據類型:浮點數|整數|無符號整數|字符串|布爾值

(4)Timestamp(時間戳)

可選

數據點的Unix時間戳,每個數據點都可以指定自己的時間戳。

如果時間戳沒有指定。那么InfluxDB就使用當前系統的時間戳。

數據類型:Unix timestamp

如果你的數據里的時間戳不是以納秒為單位的,那么需要在數據寫入時指定時間戳的精度。

協議中的數據類型及其格式

空格:行協議中的空格決定了InfluxDB如何解釋數據點。第一個未轉義的空格將測量值&Tag Set(標簽集)與Field Set(字段集)分開。第二個未轉義空格將Field Set(字段級)和時間戳分開。

Float(浮點數):IEEE-754標準的64位浮點數。這是默認的數據類型。

Integer(整數):有符號64位整數。需要在數字的尾部加上一個小寫數字i。

UInteger(無符號整數):無符號64位整數。需要在數字的尾部加上一個小寫數字u。

String(字符串):普通文本字符串,長度不能超過64KB

Boolean(布爾值)

Unix Timestamp(Unix時間戳)

注釋:以井號#開頭的一行會被當做注釋。

二、安裝部署,初始化配置

安裝和部署方式不唯一,這里分享下小編使用到的方法:

數據庫版本:InfluxDB OSSv2.7.1

系統環境:Win10專業版

安裝

安裝 InfluxDB |InfluxDB OSS v2 文檔 (influxdata.com)

從以上官網鏈接下載后會看到一個.zip文件,將其解壓。

部署

打開cmd,輸入‘influxd.exe的文件地址’,回車。

f506fa9c-f883-11ee-a297-92fbcf53809c.png

瀏覽器打開http://localhost:8086。

初始化配置

點擊GET STARTED 按鈕,進入下一個步驟(添加用戶)。

可以留意下clone你的Token、Organizition和organization id(客戶端連接時要用)。Bucket用于存放數據的籃子相當于Database。

?API Token 是干什么用的

簡單來說,influxdb 會向外暴露一套HTTP API。所以,在InfluxDB中,對權限的管理主要就體現在API的Tokens上??蛻舳藭?token放到http的請求頭上,influxdb 服務端就根據客戶端發來的請求頭部的token,來判斷你能不能對某個存儲桶讀寫,能不能刪除存儲桶,創建儀表盤等。

配置完成

Token、Organization忘記也可從這里查詢:

f522ca42-f883-11ee-a297-92fbcf53809c.png

三、程序Demo介紹

依賴工具包:i3 JSON

目前實現了連接、錯誤分析處理、寫入和查詢功能。上文有介紹到InfluxDB內置 HTTP 接口,所以使用LabVIEW中HTTP客戶端的API進行實現。

以下介紹均以 ‘步驟功能:語言(程序Demo截圖)’形式介紹

1、連接

基本身份驗證:‘url’api/v2/authorizations

f53c29c4-f883-11ee-a297-92fbcf53809c.png

f55da090-f883-11ee-a297-92fbcf53809c.png

Token驗證:Authorization: Token INFLUX_API_TOKEN

f56cf702-f883-11ee-a297-92fbcf53809c.png

2、數據寫入

先將measurement(測量名稱)、field name(字段名)、precision(時間精度)寫入:

f59391b4-f883-11ee-a297-92fbcf53809c.png

其次將field values(數據)、time stamp(時間戳)轉換為字符串的格式,組成行協議寫入:

f5dd7b76-f883-11ee-a297-92fbcf53809c.png

f5f30900-f883-11ee-a297-92fbcf53809c.png

最后發送寫入數據的報文請求:

f6140182-f883-11ee-a297-92fbcf53809c.png

3、查詢

以Flux語法查詢,查詢語句的釋議太多,有需要的還需自行查看Query data with Flux | InfluxDB OSS v2 Documentation (influxdata.com)

這里簡單摘一點:

from(bucket: "example-bucket") #需要查詢的bucket

|> filter(fn: (r) => r._measurement == "example-measurement" and r.tag == "example-tag") #measurement名 tag名
|> filter(fn: (r) => r._field == "example-field")


|> range(start:-1h) #相對時間范圍 (最近1小時)
|> range(start:-1h, stop: -10m) #最近1h到最近10分鐘

|> aggregateWindow(every: 1s, fn: last, createEmpty: false) #數據可視化

這里實現了兩種方式查詢:聚合和非聚合。區別在于發送的header不一樣,如下圖:

f62b4d9c-f883-11ee-a297-92fbcf53809c.png

f640651a-f883-11ee-a297-92fbcf53809c.png

f66291b2-f883-11ee-a297-92fbcf53809c.png

4、錯誤處理

根據官網API幫助文檔中API操作返回的HTTP響應代碼,解析Body和Headers文件而設計。(一般代碼≥400為錯誤)

f679f05a-f883-11ee-a297-92fbcf53809c.png

f68b9de6-f883-11ee-a297-92fbcf53809c.png

四、內容總結

1.InfluxDB的特點和原理概念

2. 安裝部署及初始化配置InfluxDB

3.使用LabVIEW實現對InfluxDB的連接、寫入、查詢、錯誤分析的操作

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LabVIEW
    +關注

    關注

    1926

    文章

    3619

    瀏覽量

    317842
  • 數據庫
    +關注

    關注

    7

    文章

    3612

    瀏覽量

    63559
  • UNIX
    +關注

    關注

    0

    文章

    295

    瀏覽量

    41106

原文標題:教程 | LabVIEW操作InfluxDB數據庫

文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview操作數據庫范例

    `代碼作者xyz1984labview2010版本范例代碼以ACCESS數據庫為樣例,可以實現數據庫的動態鏈接以及加密,數據插入,查詢,刪除,更新等
    發表于 01-10 16:14

    labview數據庫精華資料合集

    相關課程推薦:《8周LabVIEW視覺項目編程實戰特訓營》在這邊匯總labview數據庫的資料,給大家提供一些幫助,可以參考別人的實例 自己進行創作,祝君成功。labview
    發表于 08-24 17:44

    labvies訪問數據庫

    LabVIEW 中利用LabSQL 訪問數據庫 虛擬儀器VI(virtual instruments)是National Instruments 公司在其產品LabVIEW 中首先提出的創新
    發表于 08-26 10:19

    labview 數據庫操作問題

    各位大俠,現在要用labview 連接數據庫,進行相關的數據庫操作,剛開始用 LABSQL但是用了幾天發現,使用網絡數據庫而且同時又幾臺客戶
    發表于 07-23 17:06

    labview數據庫清空壓縮問題

    各位大神,我用labview的database對ACCESS數據庫進行操作,我數據數據庫中存的太多想按日期刪除,刪除之后不是還得壓縮
    發表于 11-15 09:29

    LABVIEW中實現對數據庫表格的操作

    利用LabVIEW數據庫工具包只能操作而不能創建數據庫,所以必須借助第三方數據庫管理系統,比如Access,來創建
    發表于 06-29 21:08

    LABVIEW中實現對數據庫表格的操作

    LABVIEW中實現對數據庫表格的操作在利用 LabVIEW數據庫工具包操作數據庫之前,需要先
    發表于 06-29 21:28

    (專題)Labview 對于大數據操作 途徑:使用數據庫

    :https://bbs.elecfans.com/jishu_453402_1_1.html)有必要采用更好 的方案,使用Labview操作數據庫。故開此貼討論這一主題:目標是使用 ODBC ADO
    發表于 10-15 09:52

    labview 數據庫操作案例

    labview 數據庫操作案例 數據庫讀、寫操作
    發表于 06-23 22:34

    LABVIEW數據庫操作

    關于數據庫,只要知道簡單的SQL語言,就可以輕松的進行操作。有些復雜的測試數據,非常適合用數據庫存儲。附件是我編寫的吉時利2400測***曲線的例子,標準件的波形圖保存在了
    發表于 12-10 21:23

    關于Labview數據庫操作的內存問題

    Labview頻繁對數據庫進行操作,關閉連接放在最后會對內存有影響嗎?如圖中的A和B兩種方式,事件結構中每個分支都是對數據庫進行操作,圖中A
    發表于 10-12 15:27

    Labview對SQL Server數據庫連接并操作

    本帖最后由 Nemesis_ 于 2021-9-23 10:54 編輯 Labview對SQL Server數據庫連接并操作在進行連接時,輸入相應的登錄數據庫類型,
    發表于 09-13 14:40

    NodeMCU+Influxdb+Grafana主要由哪幾部分構成

    電力計量——NodeMCU+Influxdb+Grafana主要由一下幾個部分構成:-數據庫Influxdb——開源的時序數據庫 -前端:Grafana——開源的圖表展示 -
    發表于 02-16 06:42

    LabView中SQLite數據庫怎樣做附加數據庫操作?

    如題,labView操作SQLite數據庫,數據放在兩個不同的文件中,想要將另外一個數文件附
    發表于 05-03 23:41

    LabVIEW操作MySQL數據庫編程實例

    LabVIEW操作MySQL數據庫編程實例
    發表于 10-13 15:05 ?44次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>