淘宝网商品管理?技术 ?
目錄
技術挑戰
商品管理
系統的演化過程
技術細節 展望
技術挑戰@淘寶商品管理
- 十億級商品數
- 百萬級用戶數
- 每天處理TB級數據
- 數據沉淀
- 成本控制
- 業務多變
- 上千條業務規則
發展過程@淘寶商品管理
第一階段:基于搜索
基于搜索的商品管理
?實現 存儲用戶設置的規則,生成Query 定時仸務觸發,多進程/線程執行
?特點 作為搜索的子集,所見即所得 方案簡單,快速滿足需求
第一階段:改進
?翻頁查詢,時間長,成本高,引擎鴨梨山大 ?索引優化、預排序導致的截斷,數據丌全
?指標有限,在丌影響主流業務的情況下難以擴展
?更換數據源,思考如何才能進行全量管理 ?開始考慮引入模型和算法資源,降低人肉成本
第二階段:全量
基于Hadoop的全量商品管理
?實現 全量部分:Hadoop + 寬表 + DSL 實時部分:Notify(MQ) + DSL + 實時構造寬表 保留搜索引擎逡輯
?特點 全網所有數據都在全量覆蓋范圍 術業與攻,發揮BI、網安、反作弊等團隊技術優勢 大量使用在搜索引擎中丌提供的指標 更好的發揮DW、BI資源作用 能夠實現較為復雜的業務逡輯
第二階段:技術細節
?引入Hadoop進行全量數據處理 ?調度系統 ?通用Join仸務 ?SST的寬表數據結構實現 ?DSL和執行引擎
?why not HIVE?
第二階段:改進
?全量數據源更新延時長 ?搜索查詢優化的業務風險 ?實時端的業務描述能力有限 ?豐富的基礎工具,但沒有深度整合 ?應當引入幫助賣家的前端產品
第三階段:增量
基于Hadoop的增量商品管理
?實現 丌再使用搜索引擎實現和原先的實時系統 通過消息隊列接收變更,Dump到HDFS 經過整理的Dump文件以MapJoin的方式不全量 寬表Merge 對于需要三個Job輸出的抽樣、全量和統計數據, 借助MIMO在一個Job完成
?特點 單一系統,覆蓋增量和全量
第三階段:技術細節
?商品生命周期系統
?MapJoin
?MIMO
?數據工具
技術@淘寶商品管理
?通用Join和寬表
?寬表和SST
?DSL
?商品生命周期系統
?MapJoin
?MIMO
?數據工具
技術細節:通用Join和寬表
?處理多種丌同格式的數據源
?層級Key
?性能優化
?基于SequenceFile或MapFile
?MultipleInputs → MIMO
層級表逡輯結構
技術細節:SST
?Static Search Table
?只讀,全局有序
?寬表+二分索引,索引數據分離
?多級聚集存儲,多級KeyValue查詢
?無需回流數據
?實現FileFormat接口
?存儲Join結果,或者規則輸出
?典型的SST應用,100GB壓縮數據產生約20MB索引
技術細節:DSL
?語法糖
?類似Java語法
?強類型系統
?共享變量
?語法靜態檢測
?在寬表上下文中幫助快速預判
?用于簡單的數據判斷和處理逡輯,如篩選、報表
技術細節:商品生命周期系統
?每天1E+條記彔,20GB+日志,存儲200天
?每秒寫峰值3k-5k,設計目標20k
?基于SST
?成本:兩臺虛擬機 + 4TB HDFS
?擴展:商品快照系統
?用于實時后臺查詢、商品增量數據DUMP
實時讀寫結構
全量只讀結構:時間倒序+用戶ID索引
全量按存檔日期分段存儲
技術細節:MapJoin
?兩張百GB級別表,在Map端完成歸并和業務計算
?利用有序表特性,多路歸并
?有序表支持KV-Seek
?場景:全量數據和增量數據合并,運行規則,掃描 過程在Map端完成,避免Hadoop通過Reduce過程 歸并數據;雖然無法免去網絡傳輸,但極大的減少了 增量仸務的運行時間
技術細節:MIMO
?MultipleInputs/MultipleOutputs的擴展
?處理丌同格式、路徑輸入
?提供更好用的TaskContext
?獨立的 PartitionerClass CombinerClass ReducerClass OutputFormat NumReducers ……
?用于一個Job產出多組丌同格式和數量的數據
技術細節:數據工具
?基于DSL、SST、MIMO等組件
?Reporter 模式的實現 sum(“庫存總數”,item_stock_quantity) max(“最高價格”,item_price) average(“平均價格”,item_price) ?通過MIMO定制Combiner、Reducer為篩選仸務開 辟一條數據統計通道
?場景:報表、影響評估、數據分析等
展望
?實時
?通用
?開放
?體驗
總結
以上是生活随笔為你收集整理的淘宝网商品管理?技术 ?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Socket网络编程进阶与实战
- 下一篇: 11集成计划的制定与实施