作者 | chris
指導。在大資料時代,基於海量資料分析和挖掘高價值資訊,用於引導和驅動業務的快速發展,是資料建設的基本能力和價值體現。為提公升生產運輸端的資料觀察、分析、決策效率,支撐業務快速迭代,移動生態資料研發部對資料倉儲建模和BI工具進行了公升級,採用寬表建模與TDA平台相結合的解決方案,一站式解決資料應用需求。 在這個過程中,資料交付模式發生了變化,從研發定製開發到生產運輸的自助採集,業務端的資料採集變得更加方便、快捷、準確。
全文3540字,預計閱讀時間9分鐘。
資料驅動的業務,一方面要求我們構建乙個全面、準確、及時、易用的資料倉儲,另一方面也需要構建乙個統一的資料視覺化平台,整合了ADHOC查詢、資料分析、資料上報等應用能力,讓業務高效、便捷、精準地獲取資料, 並促進業務增長。
在行業中,通常採用分層模型構建資料倉儲,從ODS>DWD>DWS>ADS逐層構建,定製ADS層開發,以滿足業務側的需求。 在這種模式下,複雜多變的業務場景需要資料研發的參與,資料採集時間取決於開發端排程,定製結果不夠靈活,需要頻繁迭代,ADS層佔據的資料研發時間佔比相對較高。 隨著業務增長越來越快,對資料的需求急劇增加,導致勞動力成本增加,交付效率降低。 因此,有必要探索新的資料開發和交付模式,完成從研發定製開發到生產運輸自助獲取的轉變。
考慮到資料應用從研發到生產運輸的轉變,資料使用門檻需要進一步降低,對資料倉儲和資料視覺化平台的使用者體驗有更高的要求。
使用資料倉儲的經驗體現在直接互動的寬表層上,理想的寬表應滿足以下要求:
1. 全面:覆蓋多種場景,滿足業務需求。
2.準確:邏輯統一收斂,口徑簡潔明瞭,在業務使用上沒有歧義。
3.及時:解決上游時效差異化帶來的桶效應,批量生產田地。
4.易於使用:需求場景可以通過單個寬表獲取,避免了多個表的關聯。
資料平台需要考慮使用者差異化的SQL能力、分析習慣、分析方法,在資料視覺化和資料計算效能方面滿足使用者體驗
1. 視覺化:拖拽式施工,豐富的運算元和風格。
2. 計算效能:查詢時間以秒為單位。
基於上述思路,本文探討了用寬表建模替代分層建模的方法,並介紹了TDA平台,通過資料倉儲模型和資料視覺化平台的結合,支援自動獲取所需資料。
為了平衡資料的時效性和易用性,構建了500+DWD、DWS、ADS表,存在表親緣關係複雜、中間表冗餘、資料口徑不一致、SQL複雜度高等問題。
針對上述問題,提出一種寬表建模方案:根據產品功能和業務場景劃分主題,明確主題和所有業務流程的最細粒度,直接構建基於ODS表的寬表層,覆蓋業務所需的所有字段,支援即席分析、報表查詢等所有資料應用場景。
資料倉儲建模的演變
由於寬表中上行資料來源多,資料量大,當多個上行資料沒有為相同數量的資料做好準備時,寬表的輸出時間會產生桶狀效應。 此外,為了盡可能覆蓋所有業務需求,封裝了大量的處理邏輯和相關計算,比較複雜,維護成本和回溯成本非常高。 為了解決上述問題,探索並實現了一種多版本的寬表建模方案。 根據資料時限的差異,將寬表拆分為多個計算任務,每個任務生成寬表的一些字段,並根據配置對資料進行合併,最終生成乙個完整的寬表。
為了提高寬表的整體時效性,需要在資料生成後盡快將各個版本的資料合併到寬表中,合併後需要為下游提供依賴檢查機制,感知到版本的字段已經生成。
為了保證每個版本的資料在輸出後盡快合併到寬表中,避免兩個合併任務在同一分割槽同時執行導致資料混亂的問題,引入了分布式鎖服務,通過搶占成功來判斷是否需要合併。 整體流程圖如下:
多版本合併流程
鎖定的維度是表名和日期分割槽,根據鎖狀態、任務狀態和過期時間確定是否成功新增鎖
1.鎖不被占用,表示沒有其他合併任務,且任務鎖定成功。
2. 鎖定占用如果任務狀態異常,則當前合併任務失敗,任務被強制解鎖鎖定。
3. 鎖占用任務被殺死後,任務被強制解鎖,鎖被成功鎖定。
在多版本合併方案中,為了提高寬表合併任務的通用性,提取了通用的合併邏輯,基於配置檔案將版本化資料生成的檔案合併到寬表中。 配置檔案包含多組檔案位址、關聯條件、關聯型別和字段資訊。 每個檔案位址都是由乙個獨立的任務生成的,該任務負責資料來源的邏輯,資料口徑的更改只需要更改相應的任務,維護成本低。
多版本寬表中的字段是根據時效的差異逐版輸出的,因此需要提供依賴檢查機制,以便下游能夠及時使用準備好的字段,以滿足高時效資料的應用場景。 有三種不同的方法可以檢查方案中的依賴項:
1. 任務組依賴關係:對排程平台的任務名稱進行依賴檢查,支援工廠內的pingo和TDS排程平台。
2. AFS檔案依賴:將乙個版本合併到寬表中後,會生成乙個AFS標識檔案,其中包含該版本的成功任務,可用於檢查與下游的依賴關係。
3.現場輸出檢測服務:對於資料應用平台(如Yimai、TDA),平台無法識別查詢到的字段是否通過任務組和AFS檔案生成。 針對這些場景,提供字段檢測服務,將某個版本合併到寬表後,檢測服務中該版本相關欄位的輸出識別符號會更新,資料應用平台會呼叫API介面,判斷本次查詢中的字段是否在查詢時間範圍內準備就緒,以保證資料的可用性。
現場探測服務
成本方面資料倉儲中的表數量減少 60%,資料倉儲中的儲存量減少 30%。 此外,表任務的減少減少了資料任務,資料查詢從多個DWD和DWS表的關聯優化到寬表,避免了大量的隨機操作,將即席查詢時間從幾分鐘縮短到幾秒鐘,節省計算資源20%。
質量方面寬表的領域非常豐富,達到上千個,盡可能覆蓋主題的所有業務場景,因此應用層的資料可以完全收斂到寬表層,消除了分層資料倉儲中表冗餘、邏輯下沉不完全導致口徑不一致的問題, 而產品端基於寬廣的表面管理指標口徑,溝通更順暢,資料準確度更高。
效率方面:寬表模型非常好用,單個寬表即可滿足複雜的需求,並且通過基本的SQL能力即可獲取所有資料,業務體驗非常好。
常見的資料需求分為三類:臨時資料收集、報表開發和資料分析。 針對臨時增數場景,寬表模型提供業務覆蓋全面、資料採集方便,可支援生產運輸端通過簡單的SQL拼寫獲取資料。 對於報表開發場景,仍然需要資料開發,構建ADS層應用表,同步到OLAP儲存,並使用Sugar等報表平台進行配置。 對於資料分析場景,生產運輸方可以基於寬表獲取分析資料,但需要儲存靈活多變的分析結果並直觀展示,體驗較差。
寬表模型大大簡化了資料查詢的複雜度,為自助資料採集提供了基礎能力,報表和資料分析所需的資料視覺化能力成為生產運輸自助資料採集的障礙。 在此,引入TDA資料視覺化平台,支援儀錶盤的資料分析和拖拽構建,豐富的資料處理分析能力,一站式解決資料應用需求。
自助式思維
在這種模式下,資料研發學生負責主題寬表查詢效能的構建、同步、優化,資料產品學生負責資料集的配置,操作學生負責基於資料集的視覺化分析和儀錶盤配置,從而實現資料應用的自助服務。
寬表構造:基於寬表建模的思想構造寬表。
資料同步:從HDFS同步資料到ClickHouse,在資料倉儲寬表的每個版本生成後啟動同步任務,在資料同步階段對不同查詢場景的金鑰進行洗牌。
效能優化:為了優化查詢時間,引入了快取和自動滾動兩種機制。 快取包括兩種情況:使用者首次查詢並快取查詢結果; 根據使用者的查詢歷史,在離線任務模式下通過輪詢模擬使用者查詢,並將查詢結果更新到快取中。 根據使用者歷史查詢記錄的特徵,對高頻維度進行投影聚合自動上傳。 目前,對於數千萬級的資料查詢場景,查詢時間需要秒級。
快取 + 自動彙總機制
通過資料倉儲寬表模型與資料視覺化平台的結合,完成了資料需求從研發定製開發到生產運輸自動化採集的轉變,資料分析的靈活性和效率大大提高,人工成本降低。
1、研發需求下降57%,其中資料應用需求佔比從60%下降到10%。
所需數量
2、視覺化分析場景日PV4000+,整體資料需求自助服務率達到92%。
3. 單次查詢所需時間從幾分鐘縮短到幾秒鐘。
4.報告開發周期從幾天縮短到幾小時。
end – 推薦閱讀。 搜尋 Exgraph Graph Execution Engine Design & Practice.
搜尋與金融:構建高時效性和高可用性的分布式資料傳輸系統。
經驗分享:SWIFT 語言實施實踐。
在賬戶系統中實行移動防截圖錄製技術。
AI原生工程:AI互動技術在APP中的實踐。
優質作者名單