

飞比为了经营广告事业,必须经手6亿笔跨电商商品、1,300万月流量、60亿联播网月请求数据。为了处理超多来源的庞大数据,他们在数据梳理、存储及处理流程上下足了功夫
摄影/洪政伟
大型比价网飞比价格的母公司第一网站不只在自有通路经营广告业务,还经营着包含200多家外部论坛、新闻网站、博客等数位通路的联播网广告服务,以及利用自家用户行为数据来代投Google广告等第三方通路的服务。
经营这些广告业务,第一网站必须经手来自上百家电商的6亿笔商品数据、每个月高达800万次网站造访人次,以及每个月有60亿次广告联播网请求。好在,第一网站工程主管及麾下团队中,有许多人是2000年初期就开始于Yahoo奇摩,用有限资源处理超大量数据的老将,能从流程及底层系统双管齐下,来搜集及处理第一网站经营广告业务所需数据。
搜集数据方面,第一网站不只要搜集自家数位通路的数据,更要搜集上百家电商的商品数据到自家网站上,来做比价及数位行销。为了快速梳理来自上百个数据源的6亿笔电商商品数据,他们也设计了一系列商品数据搜集及初步梳理的方法。
首先是根据电商规模和技术成熟度,来制定不同的数据接收方法。有些电商可以直接进行串接系统,有些则需要第一网站自行爬虫。搜集完这些数据,他们还得将所有来源的商品数据整理成相同格式。
为了方便梳理数据,第一网站向其他电商索取数据时,会先尝试限缩数据格式到数种标准格式。他们要求对方用Google、Meta等国际大厂订定的标准交换格式,或者直接用第一网站自制格式,来提供数据。
不过,就算先于搜集阶段指定了数据格式,这些数据仍多为半结构化数据。下一步,第一网站还得用机器学习模型辨认出这些数据中的商品特征,判断出商品名称、规格、标价、实际售价、促销活动等信息,再将所有商品信息转化为统一数据格式。
降低处理海巨量数据的成本
第一网站数据存储及处理流程设计,是为了日常营运时能短时间内处理数据、降低数据存储成本,并降低机器处理数据时的运算成本。
第一网站依照数据完整度,将数据分成3个层级。第一层级是搜集自不同的完整原始数据。这层级数据量最大,也最零散,难以直接应用。经过梳理、集成后,会成为第二层级。例如,同一个用户的点击和浏览纪录,在第一层级是分开数据,到第二层级才会结合起来。
第二层级的数据分类、归纳后,则会成为第三层级数据。这层级数据量最少,可保存最长时间。第一层级只会于Hadoop集群保留2至4周,第二层级数据则会保留3至6个月,第三层级更可保留长达1至2年。
原则上,第一网站工程团队鲜少直接使用第一层级数据。研究和开发新功能时,则会探勘第二层级数据,尝试寻找出有价值的信息,例如用户行为特征等。功能或服务正式上线后,第一网站要求工程团队只用第三层数据来进行日常作业。
前两层级数据都是研究用原始数据,使用时都是整批读取的Full table operation。只有数据量最小的第三层级数据,需要为了随机存取而做索引。这种用途分类法,能有效降低机器处理数据时的运算成本,也能进一步压低数据处理时间。
第一网站还使用了许多做法,来降低处理大量数据导致机器负荷过重的风险,尤其是面临流量峰值时。这包括开发平行处理机制来降低硬件闲置时间、异步化请求和回应来避免任务霸占服务器资源、利用消息队列缓解瞬间流量,以及为不同热门程度的商品设置不同频率的数据同步周期等。
从数据基础架构到其他细节做法,都是为了使第一网站能有效率处理超大量数据,能营运比价网、在内部通路投广的RMN,甚至到走到外部通路的联播网时,且维持高服务稳定性。
相关报导 