【IoT-Grafana】在MySQL匯入測試資料集合
Step 1:找資料集
為了學習Grafana,我們需要一些資料來練習,我找到了一個可以下載資料的地方:data.world (需要註冊才能瀏覽資料) 可以下搜尋找"Iot": https://data.world/search?context=community&q=type%3Adataset+AND+IOT&type=resources 我找到一個"Beach Water Quality - Automated Sensors"資料集合。 這是一個海灘的水質監測資料 下載csv檔案:beach-water-quality-automated-sensors-1.csv 打開csv檔後,發現有10個欄位及資料(僅列數筆)Beach Name | Measurement Timestamp | Water Temperature | Turbidity | Transducer Depth | Wave Height | Wave Period | Battery Life | Measurement Timestamp Label | Measurement ID |
Montrose Beach | 08/30/2013 08:00:00 AM | 20.3 | 1.18 | 0.891 | 0.08 | 3 | 9.4 | 8/30/2013 8:00 AM | MontroseBeach201308300800 |
Ohio Street Beach | 05/26/2016 01:00:00 PM | 14.4 | 1.23 | 0.111 | 4 | 12.4 | 05/26/2016 1:00 PM | OhioStreetBeach201605261300 | |
Calumet Beach | 09/03/2013 04:00:00 PM | 23.2 | 3.63 | 1.201 | 0.174 | 6 | 9.4 | 9/3/2013 4:00 PM | CalumetBeach201309031600 |
Calumet Beach | 05/28/2014 12:00:00 PM | 16.2 | 1.26 | 1.514 | 0.147 | 4 | 11.7 | 5/28/2014 12:00 PM | CalumetBeach201405281200 |
Step 2:
我們要根據上面的欄位,在MySQL上建立資料。 (特別注意:上面測量的時間是字串,在MySQL裏是varchar資料型態,但是,我們要把這個欄位的資料轉換為DateTime時間資料型態) 到PHPMyAdmin建立資料庫myiot與資料表格beach_water_quality,並且建立10個欄位,欄位名稱根據csv表格裏的第一列欄位名稱。 Measurement Timestamp跟Measurement Timestamp Label一開始資料類型設varchar,之後,我們要進行轉換成datetime類型。 Measurement ID我們設置為Key(Primary key,鍵值)Step 3:匯入CSV資料集 (近4萬筆資料需耗費不少時間)
等待…,完成後瀏覽資料表格:Step 4:匯完資料後,我們要將時間欄位進行字串轉datetime
執行Measurement Timestamp欄位的資料類型轉換:UPDATE beach_water_quality SET `Measurement Timestamp` = str_to_date( `Measurement Timestamp`, '%m/%d/%Y %h:%i:%s %p')上面的格式字串請參考:MySQL STR_TO_DATE() Function %m/%d/%Y %h:%i:%s %p m:月,d:日,Y:4位數年, h:時,i:分,s:秒,p表12或24時制 執行Measurement Timestamp Label欄位的資料類型轉換:
UPDATE beach_water_quality SET `Measurement Timestamp Label` = str_to_date( `Measurement Timestamp Label`, '%m/%d/%Y %h:%i %p')這個SQL圖省略 最後,我們得到我們要的資料:
Tag:iot