處理您所說的「最新」數據可能聽起來很簡單,但實際上,它是複雜且具有挑戰性的。當您收集基於時間的數據時,您很快就會注意到有些人出生較晚,有些人遲到,而有些人則被迫遲到。
這是怎麼發生的?以下是資料延遲到達如此常見的幾個充分原因:
通常,追蹤資料按開始時間索引
因此,持續時間間隔的資料產生較晚,尚無法建立。
如果收集系統發生故障或突發,可能會影響其效能。效能降低會導致資料產生延遲。
分散式收集系統可能會延遲某些資料。
在資料世界中,收集過程的每個階段都可能發生延遲。大多數資料收集管道都是分散式的,延遲到達的資料是無序的。
當無法避免遲到資料時,就需要處理
注意:提供重複搜尋可能對某些應用程式有益,而添加遲到的資料可能會與之直接衝突。例如,聚合必須適應最新的資料。
那麼,如何處理遲到的數據呢?以下是處理遲到數據的策略選擇。
策略 1:更新數據
您可以使用這個簡單的修復來簡單地用新資料取代舊資料。每一條數據,無論多晚到達,都會根據其時間戳進行添加。
許多資料庫可以輕鬆 瑞典 WhatsApp 號碼數據 做到這一點——只需考慮基本資料儲存即可。然而,可擴展性很困難,因為後期資料需要建立新的資料檔案或分割區。
這裡沒有可重複性,因為在查
詢之間可能收到了非常晚的資料。因此,您需要補充、重新處理或刪除任何已儲存的聚合。
現在您可能可以看出,這種方法最適合較小的資料規模。
策略 2:雙時態建模
您也可以使用雙時態建模來解決遲到資料問題。這是如何運作的?您需要透過在所有資料中包含第二個序列化儲存到達時間欄位來提高可重複性。
每個分析或聚合查詢都可以按時
間戳過濾時間,然後按已知過去存在的某個儲存到達時間(透過序列化)過濾時間。
聚合在其元資料中提供了上層儲存 盈方被評為科羅拉多斯普林斯頂級數位代理商 到達時間,允許查詢透過過濾主要資料來查看稍後到達的資料來使用它們。
策略 3:忽略遲到的數據
另一個選擇是忽略最新數據
建立指定的截止時間間隔並丟棄在此之後收到的任何資料(最好具有一定的可觀察性)。請務必在截止日期之後提供資料供存取。
這是一個易於應用和擴展的 印度數據 策略。然而,它會在可重複性的截止期限內延遲所有數據——即使所有數據都按計劃到達,這種情況也會發生。如果有一個有意義的截止日期值,它就直接有用。
透過分層此方法的多個實例
您可以將忽略遲到資料與有效到達時間結合。建立一系列截止時間間隔,資料在截止時間之前進入第一層,提供量化的到達時間。
另一方面,資料收集維護一系列截止日期不斷增加的儲存桶。當截止日期過去時,其儲存桶將關閉,並開啟一個具有相同截止日期的新儲存桶。
查詢在特定時間段內有效,並且僅使用當時密封的桶。時間包含在查詢中以確保重複。
Databricks 和其他公司的策略
Databricks 分享了一篇關於如何處理遲到資料的有用文章。但在我們討論細節之前…
遲到的數據——維度與事實
資料工程就是處理事實和維度。您可以在稱為星型模式的解決方案中找到事實表和維度表。其目標是保持表格充分非規範化,以便資料從業者可以簡單快速地編寫 SQL 查詢。