【時序資料庫InfluxDB】Windows環境下設定InfluxDB+資料視覺化,以及使用 C#進行簡單操作的程式碼範例

2022-06-30 15:07:02

前言:如題。直接上手擼,附帶各種截圖,就不做介紹了。

 

1、influxDB的官網下載地址  https://portal.influxdata.com/downloads/

開啟以後,如下圖所示,可以選擇版本號,以及平臺。此處咱們選擇windows平臺。不過此處沒有實際的可以下載的地方,著實比較過分,不過咱們可以另闢蹊徑。

 

2、直接下載。具體地址如下,2.3.0是版本號:

https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0-windows-amd64.zip

連結說明:該連結是下載windows版本的influxDB的連結,其中 influxdb2-2.3.0-windows-amd64.zip 裡面,2.3.0是版本號,可以通過修改這個版本號來下載你所需要的具體版本檔案。

 

3、或者通過這個地址進行下載:

https://docs.influxdata.com/influxdb/v2.1/install/?t=Windows

其中,/v2.1是版本號,把2.1改成2.3就可以下載2.3的版本了。此處僅做個實驗,例如下載2.1版本。

 

4、可以對比下真實的下載連結地址,與上面的2.3.0版本地址只差了一個版本號資訊,其他都一樣。

 

5、此處使用2.3.0版本,解壓以後進行使用。

 

6、CMD到解壓的根目錄下,直接執行influxdb.exe檔案(cmd命令執行,不會閃退,直接點有可能會一閃而過)

備註:也可以通過nssm工具進行部署成Windows服務,部署方法可以參考我的其他部落格內容,有相關資訊,此處不再重複寫。

 

7、啟動以後,在cmd視窗也可以看到預設埠號8086,所以在位址列輸入 htp://127.0.0.1:8086/onboarding/  就可以開啟起始監控面板,然後進行一些初始化操作了。

 

8、開啟初始頁面,可以用來建立初始使用者資訊

 

9、例如,我此處建立一個使用者 wesky,以及有關的組和範例,如圖備註的資訊。然後執行下一步(CONTINUE)

 

10、選擇快速開始

 

11、建立完成以後,進入到主頁。

 

12、可以看到它支援的使用者端,包括C#,以及其他很多別的支援。說明還是比較強大了,支援的方案有很多,以及也可以支援從訊息佇列、系統紀錄檔、其他資料庫等地方進行匯入或寫入資料,有待大佬們自己摸索了。

 

13、找到API TOKENS選項,這裡會生成使用者的一個唯一token資訊,用來寫程式碼時候會用到。

 

14、點選使用者's Token,可以開啟具體的token資訊

 

15、找到token資訊,可以先拷貝下來備用。或者等下需要的時候,知道在這裡尋找也可以。

 

16、接下來開始寫個程式碼進行演示一下基礎操作,當作入個門。建立一個控制檯專案,叫InfluxDbTest

 

17、此處選擇.net 6版本環境,當然,大佬們也可以選擇其他環境,問題不大的。

 

18、建立完成以後,引入nuget包 InfluxDB.Client

 

19、寫點程式碼測試一下(原始碼會附錄在文末),此處先建立使用者端,然後定義組織、以及範例(Bucket),然後通過寫入一個資料進行進行測試(此處手抖了一下,我執行了兩次,所以實際寫入了兩個資料)

備註:寫入資料或者讀寫或者其他操作,也可以參考上面influxdb面板裡面提供C#功能的案例裡面,點選進去可以看到一些例子。

 

20、如圖,視覺化面板裡面,可以進行資料查詢,以及資料視覺化。Bucket就是咱們建立的資料庫範例,mem就是對應上面的程式碼裡面寫的mem,可以當作是一個表,然後是一些標籤、欄位等。Field是欄位,可以自己拓展其他欄位等等。

 

21、寫個迴圈,累加測試一下,改造一下程式碼,然後繼續執行。

 

22、可以看到資料一直往上飄,因為值是累加的,所以效果和預期一致。

 

23、來點刺激一點的測試,搞個亂數,可能效果會好玩一點。此處弄個寫入0-100的亂數,然後間隔10msx寫入一次。

 

24、讓顯示的按照10ms為單位進行顯示,效果如圖,數值都是隨機的,所以走勢就很花裡胡哨了。

 

25、展示效果選擇表格樣式,如圖,也是可以的。

 

有關最終的程式碼:

using InfluxDB.Client;
using InfluxDB.Client.Api.Domain;
using InfluxDB.Client.Writes;

Console.WriteLine("Hello, World!");

const string token = "mOGqO3m23KHOAnsByiEAS6rJGEZEl0iuhZNGn0QNbg_vs4P_Rqa9_eWmnuYb_ovS7dy2G19xA-SqR6RMlQ3iXw==";  // influxdb生成的token

const string org = "Organization";
const string bucket = "Bucket";


using (var client = InfluxDBClientFactory.Create("http://localhost:8086", token))  // 生產環境下使用,可以使用單例來註冊使用同一個使用者端,減少建立次數
{
    using (var writeApi = client.GetWriteApi())
    {
        for (int i = 0; i <= 1000; i++)
        {
            var point = PointData.Measurement("mem")
                .Tag("host", "local")
                .Field("Field1", new Random().Next(0,100))
                .Timestamp(DateTime.UtcNow, WritePrecision.Ns);

            writeApi.WritePoint(point, bucket, org);
            Thread.Sleep(10);
        }
    }

}

Console.WriteLine("Hello, World 2 !");

Console.ReadLine();

 

 

以上就是該文章的全部內容,時序資料庫可以用於工業物聯網環境下,特別是對裝置數值進行監控,可以很直觀看出每個時間區間的狀態圖、或者步行圖等等。歡迎大佬們自行去拓展更加風騷的玩法,此處僅用於入門教學。

如果對你有幫助,歡迎點贊、推薦、或留言。如果對.net 技術感興趣或比較有想法,也歡迎點選下發QQ群連結加入群組,一起吹牛一起嗨。當然也可以掃下方二維條碼加我私人微信,我還可以拉你到微信群一起吹牛一起聊技術,也是可以的。如圖沒找到Q群和微信二維條碼,說明URL不是最原始的,可以點選原文連結【https://www.cnblogs.com/weskynet/p/16426297.html】進行獲取