超多分析結果表 簡單字段關聯 生成大寬表 的 初步猜想


業務背景:

1. 廣告投放涉及到用戶的諸多特征

2. 用戶特征通常不在同一個表中

3. 通過各種算法邏輯會產生很多的中間表

4. 各中間表的唯一標志基本為單一字段,通常會員標志或設備標志(兩者一般取較新的一對組合使用)

5. 進入算法(或機器學習)前,需要一個統一的大寬表作為入參方便取值

 

業務解析:

1. 若干(通常10+)結果表

2. 每張表的數據量都很大(千萬-億)

3. 每個表都有同樣的唯一標志字段(具體內容不同)

 

結果表產生過程隱藏條件:

1. 存在一張主表,包含有所有可能的唯一標志

 

處理流程:

1. 對所有表的唯一標志數字化

2. 對數字化后的各表進行排序

3. 遍歷主表

3.1. 取出主表一條記錄,與其他各表取出的一條比較

3.2  如果主表唯一標志和各表相等,將各表數據並入主表,然后取出下一條記錄

3.3  如果唯一標志不想等,使用默認值並入主表,維持當前記錄

3.4  將合並的記錄記下,進入下次循環

4. 完成主表遍歷后,寫入磁盤

 

猜想:

1. 使用插入排序后,經歷兩次主表遍歷讀寫便可完成大寬表的合成

2. 和使用left join相比,避開指數級增長的子表遍歷

3. 和使用union all相比,避開了最終的分組求和過程

 

4. 在子表數據量級不大且數量不多時,使用left join書寫較為方便

5. 在主表基數不是很大時,union all不會在分組求和花費過多時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM