週期性項目的規則要在第一次就定好

一次性採集和週期性更新是兩種不同的項目。

一次性採集只需要回答「現在是甚麼樣」。週期性更新要回答的是「和上次比變了甚麼」,而這個問題需要一整套規則支撐。這些規則如果第一次沒定,後面補的代價很高——因為首次採集的數據結構可能根本不支援做對比。

週期更新流程:建立基線、重複採集、與上期對比、交付兩份檔案,並循環 首次採集 固定採集參數 定死去重與增量規則 按週期重複採集 沿用同一套參數 頻率匹配決策頻率 與上期對比 新增/本次未出現 欄位變化前後值 交付兩份 變化對照表 去重後最新全量 進入下一週期 唯一無法提前避免的風險:目標網站改版 表現為某個欄位突然大面積為空,或條數異常。每次更新會對比欄位完整率,異常會主動告知。 結構小改包含在維護範圍內;大改單獨說明並確認後再做,不會先做完再加價。 若採集參數需要調整,會作為新基線重新開始,不與舊數據混在一起對比。
參數在首次採集時固定下來,之後每期沿用。參數一變,兩批數據就失去可比性——而這種差異從數據表面看不出來。

牆上翻頁月曆的照片,上方懸浮著四個立體方塊

需要提前確認的四件事

節拍器的特寫,背景虛化

一、更新頻率

按數據的變化速度定,而不是按越勤越好定。

商戶名單這類資訊變化緩慢,按月或按季度更新通常足夠。商品價格變化頻繁,但更新頻率應該匹配你的決策頻率而不是數據的變化頻率——如果調價決策每週做一次,那麼每天採集並不會帶來額外價值,只會增加成本。

有一類例外是需要還原變化過程的場景,比如觀察競品在促銷期間的調價節奏。這種情況下高頻採集有意義,但應該限定在特定時間窗口內,而不是全年高頻。

倉庫貨架上一排存貨標籤卡的特寫

二、增量規則

明確用甚麼判斷一條記錄是新增、消失還是變化。

這需要一個穩定的識別欄位。商品有商品編號,帖子有連結,商戶則往往沒有天然的唯一識別碼——這時候就要用名稱加地址的組合,或者電話、網站域名來判斷。這個判斷規則和去重規則應該是同一套。

還要約定「消失」怎樣處理。一家商戶這次沒採到,可能是結業了,也可能是搜尋結果排序變化導致這次沒覆蓋到。前者應該標記為已結業,後者只是覆蓋波動。區分不了的時候,標記為「本次未出現」比直接刪除更安全。

並排放置的兩張白紙,上方懸浮著一個高亮的立體方框

三、欄位變化怎樣標記

交付時建議給兩份檔案:

  • 變化對照表:標記哪些是新增記錄、哪些本次未出現、哪些記錄的哪些欄位發生了變化(含變化前後的值)
  • 最新全量表:去重後的當前狀態,可以直接使用

這兩份用途不同。前者用於觀察趨勢和觸發動作(比如競品減價了要不要跟進),後者用於直接進入業務流程。

對於價格這類快照欄位,我們預設保留每次快照而不是覆蓋。覆蓋式更新會讓歷史無法追溯,而價格數據的價值恰恰在於變化過程。

建築工地的棚架與圍板

四、目標網站改版後怎樣辦

這是週期性項目裡唯一無法提前避免的風險。

目標網站調整頁面結構後,原有的採集規則可能部分或全部失效。可能的表現是某個欄位突然大面積為空,或者條數明顯異常。

需要提前約定三件事:誰負責監測這種情況(我們會在每次更新時對比欄位完整率,異常會主動告知)、重新適配的成本怎樣算(結構小改通常包含在維護範圍內,大改會單獨說明並確認後再做)、適配期間的交付怎樣處理(是暫停一期還是交付部分欄位)。

把這三點寫清楚,改版發生時就不會變成爭拗。

並排的兩台相同儀器,上方懸浮著兩條平行的立體橫桿

關於數據一致性

週期性項目有一個容易被忽略的要求:採集參數必須固定

地區、語言、排序方式、篩選條件,任何一項在第二次採集時發生變化,兩批數據就失去了可比性——而且這種差異從數據表面完全看不出來,只會表現為「數據好像變化很大」。

我們會把首次採集使用的全部參數寫進交付說明,後續更新沿用同一套參數。如果確實需要調整參數(比如擴大地區範圍),會作為一次新的基線重新開始,而不是和舊數據混在一起對比。