以下我們將從IoT的角度,依序看看在每一個流程中,我們需要做些什麼以及需要留意的要點。
蒐集:關鍵在於感測器數據的傳輸格式
數據應用的第一步,當然就是需要蒐集數據。IoT會不斷地記錄來自各種感測器的數據。與感測器相連接的可以是BLE,也可以直接連接到電腦載板(Board Computer)或Gateway。
為了要連接感測器,在電腦載板(Board Computer)或Gateway上還必須安裝驅動程式的軟體,同時必須確定,計畫多久蒐集一次數據和數據的蒐集格式。連接到感測器設備之後,還需決定所蒐集的數據是一次性地存儲在本地端的Gateway,還是將蒐集的數據,以流動數據的方式按原樣傳送出去。
數據的蒐集首先應該考慮的是,蒐集頻率也就是週波數。如果週波數過於密集(例如每秒一次)所獲取的數據,如果根據Gateway的規格,可能會造成溢滿(Overflow)現象,並且可能無法獲取數據。筆者也經常接到企業客戶的要求,說他們想要即時的數據,但是事實上除非有很大的需求,實在是沒有必要一定要在非常短的時間內(例如每秒)取得數據。筆者認為在現實上,每10秒一次甚至每分鐘一次,都是非常適合也可以滿足使用目的的頻率。
接下來是如何將在設備端所蒐集的數據發送到雲端。IoT經常使用的數據格式包括 CSV、XML和JSON。
由於IoT的數據是屬於連續而且大量,所蒐集的數據量又與網路的使用成本成正比,所以數據的蒐集格式相對就顯得重要了。
同樣重要的還有感測器設備所取得的數據,是按原樣發送到雲端呢?或是在設備或本地端Gateway上,先做一些預先的處理再行發送呢?如果是在本地端處理,就必須要有相對的反射性應對的系統,此時就可以採用邊緣運算。像這樣傳送之前,先在設備端做預先的處理,再將資料發送到雲端的傳輸方式,還可以降低網路的使用費用。
儲存:海量的數據應以易於連續檢索的形式累積儲存
在IoT中,數據是一個接一個的傳送過來再累積儲存,很少會對已經累積儲存的數據進行更新。而且除非預先設定了固定的存取時間,否則通常都是有必要時,才會進行數據的檢索,也大都會指定時間範圍,進行相關訊息的提取。換句話說,即使必須進行數據的檢索,也很少會在數據累積儲存之後,再進行變更或修改。而且,累積的數據,基本上不會丟棄,這是因為當IoT系統,需要增加AI的功能,並且需要進行機器學習時,這些過去的數據就非常重要。
從上述的說明可以看出,以易於檢索的形式存儲IoT數據,實際上是非常重要的,除此之外,最好還能夠以處理各種數據的靈活結構進行存儲。RDBMS可以達到數據累積儲存的結構化、標準化和規則化這樣的要求,還有適用於原樣累積數據的NoSQL類型數據庫,同樣也適用於這樣的操作。
整形:資料數據應整理去除雜訊成為無干擾的可利用數據
提取和應用累積的數據時,數據必須先進行整形。所謂整形是因為數據從裝置設備傳遞過來,與直接存儲的IoT數據可能屬於不同類型,也可能夾雜了大量干擾雜訊。因此,想要成為隨時可以檢索的數據,就必須先經過「整形」,這種整形也稱為數據清理(Cleansing)。據說數據應用的80%,是屬於包含數據清理在內的準備作業,可見數據的整形有著很重要的角色。數據清理也的確是一個非常基礎的過程,因為這個過程的嚴謹與否,高度影響之後數據判讀的準確性。
需要進行數據清理的情況有以下各點:以下的案例數據,都應將其視為相同的數據,但由於細微的差異,可能會將被視為不同的數據。這樣的問題不僅會在發生在IoT系統,也會發生在傳統的業務系統。例如,我們可以看一下客戶管理數據庫中的客戶名稱。以下的客戶名稱均指同一個實體,但由於記錄的全形、半形和空格的差異,因此被視為不同的客戶名稱。
株式會社Uhuru:基本的符號寫法
株式會社 Uhuru:中間留一個全形空格
(株)Uhuru:括號使用全形
(株)Uhuru:括號使用半形
上述的所有這些數據名稱,必須清理為相同的數據。否則,數據分析的結果必然不會正確,但IoT數據卻具有難以自動執行清理的特徵。因此可以透過編寫程式來執行清理的工作,可以算是半自動化。此外還有許多易於使用的ETL工具。
另一方面,IoT數據通常是一連串的數值列表,很難判斷正確或是不正確。所以通常會設定一個正常值的範圍進行清理,只要是明顯超出該範圍的數據,就會被視為異常,進行清理排除。但這些超出正常範圍的數值,也不一定就是干擾數據,也有可能是必要的訊息。除非可以很明確排除網路的通訊不良,或是設備故障可能造成的干擾雜訊,想要達到數據清理的自動化還是很困難。
話說數據需要清理,但IoT系統中類似此類「異常數據」還真的不能隨隨便便就丟棄。無論是空白值或突出值,都有可能表示該段數據隱含的問題,很可能是傳達了作業現場的情況。
為了判斷是否為可以刪除的干擾數據,此時則必須釐清,為何會出現此類數據。如果是因為感測器的連結設備發生故障所導致的異常值,那就是不可清理的必要數據,但如果是因為感測器設備故障所造成的異常數據,那就是需要清理的不必要干擾數據。確定是否為干擾數據的一種方法,是安裝多個感測器,並將這些感測器的數據相互比對。
IoT還有一個可能造成通訊干擾的特有原因,就是裝置設備電池電量的耗盡。電池電量即將耗盡消耗所造成的異常值還很常見。最好定期檢查設備的狀態和剩餘的電池電量。
清除此類干擾的IoT數據時,的確有很多的可能需要考慮。所以在考慮清理這些雜訊干擾之前,具體來說,應該先採取一些物理性的措施,例如「確定感測器遠離引起雜訊干擾的設備」和「對於造成干擾的設備進行電磁干擾保護」。此外還必須透過「比較多個感測器同時獲得的數據」和「檢查感測器設備本身的運行狀態」,如此的驗證,才能確保建置一個不大可能混入雜訊干擾的環境。
匯總:根據目的,匯總連結各種不同的數據
數據清理之後,下一個步驟就是進行匯總了。為了達到使用的目的,一定是要匯總所有多個感測器設備所蒐集的數據,之後再進行數據分析。這個想法有一個重點是,匯總的數據並不僅限於IoT所取得的數據,還會包括企業所擁有的核心系統數據(Systems of Record)和其他企業所發布的開放資料,都是匯總的重點。
計畫建置IoT系統時,通常企業內部早有一些系統,例如傳統的核心系統等,應該已經在企業公司內部運作,而且許多企業也正在儲存累積這些數據。計畫建置一個新的IoT系統,很自然地會非常關注新設備所能蒐集的數據,但是現有和已存的數據,也是一樣重要。因為為了分析和可視化數據,在很多時候現有數據和新數據的相互結合是非常必要的。
IoT數據的應用計畫項目,即使起初的目的是很簡單,但隨著持續不斷的發展,原來的目的也可能變得更加多樣化。因此,了解企業內部使用哪些系統以及擁有什麼樣的數據就非常重要。這些對於建置一個可以適用於各種目的的數據存儲系統,和可以相互連結的應用程式都會有很大的幫助。
還有一點需要特別說明的是,在針對IoT數據、現有的企業內部數據以及來自其他企業的數據,進行蒐集和累積時,有一個關鍵要點是,這些數據不要一起匯總到單個系統或數據資料庫,應該要透過一個Interface 進行連接才是一般的做法。如果有對方系統所公開的應用程式介面(API),那就應該使用API進行連接、建置數據匯總的環境。(摘錄整理自《完全圖解物聯網》第4章,經濟新潮社提供)
完全圖解物聯網
八子知礼(YAKO Tomonori)、杉山恒司(SUGIYAMA Koji)、竹之下航洋(TAKENOSHITA Koyo)、松浦真弓(MATSUURA Mayumi)、土本寛子(TSUCHIMOTO Hiroko)/著;翁碧惠/譯
經濟新潮社出版
售價:450元
作者簡介
八子知礼(YAKO Tomonori)
是日本最早的「行動雲端」倡導者,致力於M2M/IoT等相關業務的發展。Uhuru公司資訊長兼物聯網創新事業所所長。
熱門新聞
2024-10-14
2024-10-13
2024-10-13
2024-10-14
2024-10-11
2024-10-11