CH12 · PUBLIC READING
畫面有資料、有曲線、有報表,為什麼仍然不能直接相信?
資料品質三指標:封包有效率、空值比例與 Rank
分清封包有效率、即時空值比例與時間統計 Rank,判斷資料究竟缺在哪一層。
工廠鬼話
客戶上週裝了一批新的 BLE 溫度感測器。
維護人員: 客戶反應,上週裝的溫度感測器幾乎都在斷線狀態。
RD: 先去現場用手機打開藍牙,看有沒有藍牙訊號。有的話,再去接收器那邊看有沒有收到該裝置的封包。
維護人員: 都有。手機看得到藍牙,接收器也有收到封包。但即時資訊偶爾上線一下,大部分時間都斷線。
RD: 見鬼了。
後來才發現,裝置確實有在廣播,接收器也確實有收到封包;問題是那些封包不一定都帶溫度資料。真正有溫度的封包偶爾出現,下一包不是目標資料的封包又把狀態蓋掉。從物理通訊看,裝置沒有完全消失;從系統資料看,溫度資料大部分時間就是沒進來。
這就是資料品質要拆開看的原因。有沒有藍牙訊號、有沒有收到封包、有沒有收到目標資料、即時組合值有沒有缺來源、統計時間裡樣本夠不夠,這些不是同一件事。如果系統只留一個模糊的品質分數,研發和維護人員還是要花時間猜問題方向。
課程地圖
12-0 先把問題接上來
前面幾章已經解決資料怎麼進來、怎麼被解析、怎麼被送進即時路徑與本地資料庫。這些都還不夠,因為資料進來不代表資料可信。
從這一章開始,課程進入資料品質線。重點不是只有沒有數值,而是要分清楚三個問題:
- 這段時間有沒有收到帶目標資料的封包?
- 這個即時組合值是不是缺了部分來源?
- 這段統計時間裡有效資料是否足夠完整?
這三個問題分別對應三個資料品質指標:
| 資料品質指標 | 它在現場代表什麼 |
|---|---|
| 封包有效率 | 收到的封包裡,有多少真的帶目標資料 |
| 空值比例 | 即時組合值缺了多少來源 |
| Rank | 統計時間裡有效資料是否足夠完整 |
它們一起構成 LocalNest 的資料可信特性。
這裡的「可信」不是抽象形容詞,而是讓維護人員可以判斷:
現在該查封包、查來源,還是查統計時間缺口。
先把本章定位講清楚:
| 章節 | 負責範圍 |
|---|---|
| CH12 | 建立資料品質三指標:封包有效率、空值比例、Rank |
| CH13 | 專門看複合裝置,例如三相電少一相時怎麼判斷 |
| EX06 | 補充速查:即時 / DB、單點 / 複合四種情境不要混在一起 |
圖解:本章在 LocalNest 架構中的位置
圖解:三個指標回答三種問題
12-1 有資料不等於資料正確
工廠裡一台馬達溫度計,每 60 秒回傳一筆溫度值,系統顯示 72°C。
畫面看起來很正常,報表也繼續把 72°C 算進平均,告警系統更不會叫人去看現場。
三天後才發現感測器的 BLE 連線在 Day 1 下午就斷了。
那個 72°C 不是新的量測值,而是系統沿用的舊值。
設備早就停轉,或現場溫度早就改變,但監控系統仍用舊數字讓大家以為狀態穩定。
這是 IoT 現場最普遍的陷阱:把有資料當成資料正確。
現場資料常常不是乾淨地分成「有值」和「沒值」。
BLE 裝置可能還在廣播,但這一分鐘送來的封包都不是目標資料;
Modbus 裝置可能有回應,但某幾個暫存器設定錯誤或讀值失敗;
電錶的 Pulse 計數可能偶爾凍結,畫面上仍然有數字,實際上數值已經不動。
這些狀況的共同點不是「在線或離線怎麼判斷」,
而是單看數值本身,看不出資料來源是否正確、組合來源是否完整、統計樣本是否足夠。
因此資料品質不能只靠 Value 欄位判斷,必須把封包、來源和時間樣本的背景一起帶上來。
每一筆 IoT 資料不能只留下量測值,還要一起留下三類背景資訊:
| 背景資訊 | 要回答什麼 |
|---|---|
| 量測時間 | 資料是在什麼時間被量到,不只是伺服器什麼時間收到 |
| 來源狀態 | 這筆資料是正常上傳、離線補傳,還是來自回應不穩定的設備 |
| 品質資訊 | 封包是否有效、來源是否完整、時間樣本是否足夠 |
這些資訊要跟量測值一起被保存。原因不是資料表設計好不好看,
而是後面的報表、告警、歷史查詢都需要同時知道兩件事:數值是多少,以及這個數值有多可靠。
12-2 三個指標,不是同一個分數
封包有效率、空值比例、Rank 都在描述資料品質,但它們不是同一個分數,也不是同一層的判斷。
| 指標 | 回答的問題 | 主要位置 | 典型排查方向 |
|---|---|---|---|
| 封包有效率 | 這 60 秒有沒有收到帶目標資料的封包 | 原始封包整理成 60 秒資料 | BLE 封包類型、Parser 規則、數值範圍、Modbus 讀值設定 |
| 空值比例 | 這個即時組合值缺了多少來源 | 即時資訊、公式、複合值 | 哪個真實來源、相位或輸入來源缺資料 |
| Rank | 這段統計時間有效資料夠不夠 | 本地資料庫、歷史統計、報表 | 時間缺口、補傳、融合、長期趨勢 |
先把公式裡會用到的分母和分子說清楚:
| 名詞 | 中文意義 | 用在哪裡 |
|---|---|---|
| 預期來源總數 | 這次即時組合值理論上需要幾個來源。例如三相電需要 R / S / T 三個來源,所以預期來源總數是 3。 | 空值比例 |
| 有效來源數 | 本輪即時組合值實際可用的來源數。例如三相只收到 R / S,沒有 T,有效來源數就是 2。 | 空值比例 |
| 預期資料點數 | 這段統計時間理論上應該有幾筆下層資料。例如一小時由 60 筆一分鐘資料組成,預期資料點數就是 60。 | Rank |
| 有效資料點數 | 這段統計時間實際可用的資料點數。例如一小時只有 52 分鐘有有效資料,有效資料點數就是 52。 | Rank |
封包有效率:封包裡有多少是真的目標資料
公式:
封包有效率 = 有效目標封包數 / 收到封包數
這個指標主要出現在原始封包整理成 60 秒資料、再往上統計的路徑。
它不是即時畫面拿來判斷單一封包好壞的欄位。
BLE 的重點在於:
裝置可能會送很多種封包,但只有其中幾種,甚至只有一種,真的帶有我們要的資料。
有些 BLE 裝置會輪流送不同類型的廣播封包,其中某一種放溫度、電流或其他目標數值,
其他封包可能只是狀態、廠商資訊或輔助資料。
所以一分鐘內收到 10 個封包,不代表 10 個封包都有量測值。
Parser 會把能解析出目標數值的封包算進有效封包;
解析結果是無效值、超出範圍,或這個封包類型根本沒有目標欄位,就不算有效封包。
這裡要把物理意義和系統資料意義分開:
| 情況 | 物理意義 | 系統資料意義 |
|---|---|---|
| 接收器仍看得到 BLE 廣播,但封包有效率為 0 | 裝置不一定物理斷線 | 這 60 秒沒有收到目標資料,等於資料斷線 |
| 封包有效率大於 0 | 至少有一包帶目標資料 | 可以產出這一分鐘的有效值,後續統計可納入有效資料點 |
Modbus 若設定一次讀多種數值,也可能遇到類似狀況:
通訊有回應,但目標欄位沒有被正確讀到。
差別是 BLE 常是裝置封包設計與廣播類型造成,
Modbus 比較常是人為設定、位址、長度或解析規則造成。
空值比例:即時組合值缺了多少來源
公式:
空值比例 = (預期來源總數 - 有效來源數) / 預期來源總數
空值比例回答的是即時組合值的可信度。
例如三相電要用 R / S / T 三個來源一起算總功率,其中一相沒有資料,
計算結果就不應該被當成完整資料。
三相預期來源 = 3
本輪有效來源 = 2
空值比例 = (3 - 2) / 3 = 0.33
這裡的 0.33 不是時間統計 Rank,也不是封包有效率。
它只表示「此刻這個組合值少了一部分來源」。
即時資訊要忠實呈現這個缺口,
現場才知道是整台設備離線、某一相沒進來,還是封包層沒有目標資料。
Rank:時間統計資料的完整度
公式:
Rank = 有效資料點數 / 預期資料點數
Rank 回答的是一段統計時間裡有效資料是否足夠完整。
15 分鐘、60 分鐘、一天、一週、一月,都屬於 Rank 會發揮作用的地方。
一小時資料應該由 60 筆一分鐘資料合成
實際只有 52 筆有效
Rank = 52 / 60 = 0.87
這裡的 0.87 是時間完整度,不是裝置數量比例。
它表示這一小時的統計值缺了一部分資料,
報表可以顯示數值,但應該知道這個數值不是滿資料量算出來的。
12-3 為什麼三個指標不能混用
三個指標最容易被混在一起,因為它們都在描述資料品質。但混用會讓排查方向錯掉。
封包有效率為 0 時,重點不是先判斷設備壞掉,而是問:
這段時間有沒有收到帶目標資料的封包?要查 BLE 封包類型、Parser 規則、目標欄位、數值範圍,或 Modbus 的讀值設定。
空值比例為 0.33 時,重點不是問這一小時少了多少資料,而是問:
這個即時組合值現在少了哪個來源?要查真實來源、相位、組合公式與來源缺失追查明細。
Rank 為 0.67 時,重點不是問少了幾個封包,而是問:
這段統計時間裡,有效資料點只達到預期的三分之二,缺口發生在哪些時間?要查近期資料庫、每日整理資料、最終歷史資料、補傳、融合與長期趨勢。
這也是資料品質設計的價值:不是多存幾個欄位,而是讓研發和維護人員少花時間猜問題方向。
12-4 Rank 的分母為什麼要從設定來
Rank 的分母是預期資料點數。
它代表這個時間段裡理論上應該有幾筆下層資料,通常來自統計週期或裝置設定。
例如一小時資料如果由 60 秒資料合成,理論上應該有 60 筆。
預期資料點數不能根據裝置過去行為動態推算。
原因很簡單:如果裝置慢慢變差,動態基準線也會跟著往下漂。
最後系統會把變差後的狀態當成正常狀態。
基準線必須跟裝置規格或統計週期一致,不能被現場實際狀況污染。
這樣 Rank 才能忠實反映資料完整度,而不是幫不穩定的裝置重新定義正常。
本章判斷重點
- 資料品質不是一個分數。 LocalNest 用封包有效率、空值比例、Rank 分別描述封包、即時組合、時間統計。
- BLE 裝置可能物理上還在,但資料上斷線。 週期內沒有收到目標封包或目標欄位時,系統實質上沒有可用資料。
- 空值比例是即時組合值的缺來源比例。 三相少一相時,應忠實顯示缺口,而不是把整台設備簡化成 Online / Offline。
- Rank 是時間統計完整度。 15 分鐘、60 分鐘、一天、一週、一月這類統計資料,才是 Rank 的主要場景。
- 三個指標組成資料可信特性。 它們能協助分析資料品質與斷線原因,減少研發與維護人員的釐清時間成本。
Rank 這個詞的矩陣直覺,整理在額外章節 EX06。
CONTINUE THE SYSTEM
這一章回答一個問題,完整課程負責把責任串起來
LocalNest 的完整內容會繼續處理裝置身份、解析、資料品質、歷史資料、離線補傳、APP、多站權限、設定面,以及可執行的 BETA 與 LAB。
