攝影/洪政偉

大型比價網飛比價格的母公司第一網站不只在自有通路經營廣告業務,還經營著包含200多家外部論壇、新聞網站、部落格等數位通路的聯播網廣告服務,以及利用自家使用者行為數據來代投Google廣告等第三方通路的服務。

經營這些廣告業務,第一網站必須經手來自上百家電商的6億筆商品數據、每個月高達800萬次網站造訪人次,以及每個月有60億次廣告聯播網請求。好在,第一網站工程主管及麾下團隊中,有許多人是2000年初期就開始於Yahoo奇摩,用有限資源處理超大量數據的老將,能從流程及底層系統雙管齊下,來蒐集及處理第一網站經營廣告業務所需數據。

蒐集資料方面,第一網站不只要蒐集自家數位通路的資料,更要蒐集上百家電商的商品數據到自家網站上,來做比價及數位行銷。為了快速梳理來自上百個資料源的6億筆電商商品數據,他們也設計了一系列商品資料蒐集及初步梳理的方法。

首先是根據電商規模和技術成熟度,來制定不同的資料接收方法。有些電商可以直接進行串接系統,有些則需要第一網站自行爬蟲。蒐集完這些資料,他們還得將所有來源的商品資料整理成相同格式。

為了方便梳理數據,第一網站向其他電商索取資料時,會先嘗試限縮資料格式到數種標準格式。他們要求對方用Google、Meta等國際大廠訂定的標準交換格式,或者直接用第一網站自制格式,來提供資料。

不過,就算先於蒐集階段指定了資料格式,這些資料仍多為半結構化資料。下一步,第一網站還得用機器學習模型辨認出這些資料中的商品特徵,判斷出商品名稱、規格、標價、實際售價、促銷活動等資訊,再將所有商品資訊轉化為統一資料格式。

降低處理海巨量資料的成本

第一網站數據儲存及處理流程設計,是為了日常營運時能短時間內處理數據、降低數據儲存成本,並降低機器處理數據時的運算成本。

第一網站依照資料完整度,將資料分成3個層級。第一層級是蒐集自不同資料來源的完整原始資料。這層級資料量最大,也最零散,難以直接應用。經過梳理、整合後,會成為第二層級。例如,同一個使用者的點擊和瀏覽紀錄,在第一層級是分開數據,到第二層級才會結合起來。

第二層級的資料分類、歸納後,則會成為第三層級資料。這層級資料量最少,可保存最長時間。第一層級只會於Hadoop叢集保留2至4周,第二層級資料則會保留3至6個月,第三層級更可保留長達1至2年。

原則上,第一網站工程團隊鮮少直接使用第一層級資料。研究和開發新功能時,則會探勘第二層級資料,嘗試尋找出有價值的資訊,例如使用者行為特徵等。功能或服務正式上線後,第一網站要求工程團隊只用第三層資料來進行日常作業。

前兩層級資料都是研究用原始資料,使用時都是整批讀取的Full table operation。只有資料量最小的第三層級資料,需要為了隨機存取而做索引。這種用途分類法,能有效降低機器處理資料時的運算成本,也能進一步壓低資料處理時間。

第一網站還使用了許多做法,來降低處理大量數據導致機器負荷過重的風險,尤其是面臨流量峰值時。這包括開發平行處理機制來降低硬體閒置時間、非同步化請求和回應來避免任務霸佔伺服器資源、利用訊息佇列緩解瞬間流量,以及為不同熱門程度的商品設定不同頻率的資料同步周期等。

從數據基礎架構到其他細節做法,都是為了使第一網站能有效率處理超大量數據,能營運比價網、在內部通路投廣的RMN,甚至到走到外部通路的聯播網時,且維持高服務穩定性。

 相關報導 

熱門新聞

Advertisement