滿成見:獵聘網資料治理實踐全流程經驗分享

趙鈺瑩發表於2018-06-22

  【本文作者:滿成見】  

  
【IT168 專稿】本文根據滿成見老師在2018年5月11日【第九屆中國資料庫技術大會】現場演講內容整理而成。

  講師簡介:

滿成見:獵聘網資料治理實踐全流程經驗分享

  滿成見,獵聘網資料倉儲架構師。2016年加入獵聘網,負責獵聘資料倉儲平臺架構設計與模型開發,八年資料倉儲設計與資料治理專案實施經驗。

  摘要:

  獵聘網業務規模的高速發展,線上產品與線下銷售、客服業務的高度融合,獵頭、企業、經理人多角色的招聘生態閉環,多元化與多組織層次的資料統計與運營分析需求......在這些複雜業務環境下如何做好資料治理實踐的?獵聘DIG資料平臺中MySql、GreenPlum、Hive多源資料庫共存,整合了結構化和半結構化的資料,為實時統計、T+N的企業管理報表、機器學習提供更適合的基礎設施,同時以資料生命週期和資料血緣的管理作為資料治理的兩大核心脈絡。線上、線下不同業務形態的資料,在時間、地域、組織等不同維度上,在資料產生、成長、下線、歸檔不同的生命階段,設定不同的資料監測和管理策略,保證資料倉儲中資料的及時性和有效性。通過制定資料標準、規範協作流程、自研監測與預警工具,保證業務資料、數倉明細資料,核心指標等各個資料加工鏈條節點上的資料一致性和質量可靠性。

  正文:

  獵聘網是一個網際網路線上招聘業務網站,業務背景主要涉及三方面:內部系統、線上產品以及資料應用。線上產品部分,我們有經理人、企業HR、獵頭等服務產品,今年年初,經理人使用者達到四千萬,每天客戶端和服務端的埋點資料增量大約在3億條左右;內部系統部分,有ERP、CRM、EHR等,客戶池的客戶量級大概在百萬級。我們的資料應用分析也包含了線上和線下兩方面,以及實時和T+1的分析,針對傳統線下業務,為支援公司運營管理,需要跟蹤、管控銷售顧問和招聘服務顧問的工作程式以及業績考核,線上資料分析主要包括流量分析、使用者獲取、轉化留存、A/B測試、產品運維等方面的分析。除了BI分析報表,我們獵聘大資料研究院同時擔負著資料探勘和智慧決策分析等相關服務。

  2016年,我加入獵聘網時所面對的業務困境主要有以下幾大方面:首先,大資料團隊中沒有劃分專業的資料倉儲團隊;其次,整個資料使用不規範,所有資料應用分析直接從業務表和日誌資料一步加工,中間缺乏資料規整和分層處理的步驟;然後,整個資料倉儲近兩千張表有50%以上的後設資料是丟失,這就造成我們對整個資料質量缺乏把控,資料質量完全依靠分析師個人判斷,資料問題由下往上發現追溯;最後, 缺乏資料上下游節點的合作規範和溝通流程。這就是我們當時所面臨的業務困境。

  要想解決這些困境,我們首要解決的問題是資料如何治理,在這方面,我們倒是有一個不錯的開端。

  首先,我們的首席資料官CDO非常重視基礎資料治理工作,這讓整個資料治理理念很好得貫徹執行了下去。做好資料治理前提是要加強流程管控,管控加強的同時必然又會不可避免的降低流程節點之間的工作效率,如果沒有公司戰略決策層的支援,資料治理將很難從業務部門貫徹到資料部門。

  其次,我們整個大資料團隊的介面層設計非常完善,完整保留了90%以上的核心業務資料每天的拍照,這為後續DW核心明細層的整合打了非常好的基礎。 然後,我們有自己的任務排程系統,可以記錄任務之間的血緣關係。

  資料治理的工作展開,主要考慮三個維度:模型架構、平臺技術和流程規範。

  在模型架構層面,依據傳統資料倉儲的理論是對資料進行分層管理,每一層進行相應的業務主題梳理,提煉出業務實體、實體之間的關係、實體的業務行為以及這些由業務行為所沉澱出的度量指標。

  在平臺技術層面,首先要有後設資料管理系統,其次要有資料血緣追溯系統、資料質量監測系統等,這些平臺技術可以幫助我們部分實現自動化管理。作為網際網路企業,業務迭代、表以及欄位的增加速度都非常快,如果沒有好的平臺技術支撐,消耗的人力成本會非常高。

  在流程規範層面,不管平臺技術多麼先進,整個資料治理過程都不可能百分百覆蓋,因此必須保證整個上下游各個崗位、各個序列裡所有資料相關方遵循統一的流程規範,對資料的來源、定義、使用方式等有明確統一的原則。

滿成見:獵聘網資料治理實踐全流程經驗分享

  上圖為獵聘網的整個資料治理流程,首先是梳理後設資料,建立資料標準,包括業務用語、業務規則、業務模型和業務指標。同時,對使用者行為日誌做埋點。這些標準和規範一開始就要落實到文件,最終把文件落實到標準庫。後設資料庫包含資料編碼、資料格式、資料血緣、資料訪問許可權以及資料儲存方式。資料標準庫的資料是整個資料質量治理的基石。我們在這個標準之上才會衍生規則、制定任務並做預警監控。同時,我們要管控好所有線下資料,一定要保證所有分析相關資料入到線上資料倉儲,否則不知來源的資料會給最終資料的血緣追溯製造很多困擾。

  獵聘網的整個資料倉儲架構分層見下圖:

滿成見:獵聘網資料治理實踐全流程經驗分享

  資料分層管理的核心是根據資料的業務特性和分析特性劃分到不同的物理層次中,以到達對資料精細化管理的目的。

  介面層的核心功能就是要保留所有歷史拍照,很多時候企業產生的資料有一部分都是髒資料,但是髒資料的定義可能會有很多標準,如果對業務理解不清楚,你可能會把空值或者異常值都粗略得算為髒資料,但有時這些異常值也會代表一種業務形態,所以,我們在介面層保留了所有歷史資料。為了節省介面層儲存空間,我們會選擇業務表不同的同步方式,比如全量拍照,或者根據業務表的時間戳進行按天增量儲存,或者將增量和全量資料合併去重。根據歷史增量拍照和每個日期內的增量分割槽,我們就可以恢復出某個業務表在歷史上某天的資料狀態,這對結合業務上下游環境進行精準分析非常有幫助。

  此外,我們在介面層主要做了MySQL分庫分表整合,資料規範方面主要做了生成唯一主鍵、編碼轉換、敏感欄位過濾以及資料格式統一等工作。敏感欄位過濾主要涉及經理人的聯絡方式、郵件地址、證件號碼等敏感資料。我們不允許這些資料匯入資料倉儲,如果需要獲取敏感資訊可以找業務研發或安全部門團隊開發統一介面。

  在DW層,主要是根據業務,劃分分析主題,提煉業務實體和關係模型,做業務關聯整合,業務資訊方面除了一些實體和行為指標的整理,還要進行一些冗餘設計,遮蔽業務表變化對整個上游的衝擊。網際網路端的線上業務研發迭代速度非常快,每兩週就會有一次大產品迭代,對應的業務表和業務欄位都會有變更,數倉工程會在DW層完成對業務變更的適應調整,對下游應用分析遮蔽具體細節,保證整個資料的一致性和完整性以及指標的統一性。

  在DM層,我們的主要工作是決策層核心報表與部門級集市報表,使用Hive保留原始加工資料,MySQL支援T+1報表,Greenplum支援10分鐘以內的實時業務分析。

滿成見:獵聘網資料治理實踐全流程經驗分享

  上圖為獵聘網自主研發的大資料管理平臺,包括後設資料管理平臺Octopus、任務排程系統Leo、資料質量稽核系統Raven以及資料同步系統Mule。

  按照傳統資料倉儲理論,我們會將後設資料管理分為業務後設資料和技術後設資料兩部分。業務後設資料是指業務物件、業務關聯以及業務規則,業務物件可能落實到我們的業務表或者業務欄位,業務關聯指業務實體之間在業務關聯,業務規則要根據不同的業務部門進行提煉總結。

  技術後設資料主要分為資料生命週期、資料血緣等部分。資料生命週期就是指所有數倉資料的建立資訊、變更歷史以及銷燬資訊等工作;資料血緣負責任務之間的依賴、表與欄位之間的依賴等;其他資訊,比如資料倉儲裡的資料安全等級和使用熱度等。

  以下著重介紹資料生命週期管理部分。獵聘網之所以強調資料生命週期管理,是因為我們網際網路的業務背景。如果不做好資料倉儲的入庫、上線以及停更工作,我們將很難判斷整個資料倉儲中各表是否可用、出了問題之後應該找誰負責等。舉例來說,我們經常面臨一些週年或節日活動,此時可能會集中出來一批表用於維護活動資訊,待活動結束,這批表肯定面臨著下線問題。這種情況下,我們要做好表的生命週期管理,保證整個資料倉儲資料的實時有效可用。此外,所有資料入庫必須通過前端工具完成,不允許在後臺通過伺服器端以人工指令碼執行的方式完成,因為一旦這張表出現問題,我們將很難確認責任負責人。我們會在入庫時同步建立表介面,在介面中強制填寫入庫表的責任人、業務註釋、業務歸屬線、業務參照關鍵狀態等資訊。

滿成見:獵聘網資料治理實踐全流程經驗分享

  如果部分表沒有業務屬性存在,或者不再有用時,我們需要對錶進行停更操作,主要有三種方式:物理刪除、歸檔和保留。物理刪除主要用於臨時表,當這些表不在被需要時,我們會進行物理刪除以節省儲存空間,但是這類表比較少;歸檔相當於在資料倉儲裡對業務使用者不可見,這些表的特徵是暫時不具備分析價值但未來可能會再次查閱;保留狀態則時對使用者可見,這部分表的特徵是雖然暫時下線並停止更新資料,但其作用是無可替代的,需要保留一段時間。

  接下來是資料血緣影響的管理。資料血緣關係主要指表與ETL任務、表與資料表、表與資料表的欄位、表與埋點事件、表與UDF函式、表與指標、表與報表之間的關係。

  資料血緣是ETL的DAG圖、任務優先順序制定、銷燬上游物件約束、質量稽核影響性以及打通各平臺工具的脈絡。以任務優先順序舉例來說,資料血緣關係是任務優先順序設定的重要參考指標,通常,任務的優先順序由任務建立人制定,但同時也需要我們根據資料血緣重新賦權優先順序係數,以保證真正核心任務的優先順序。為了避免錯誤操作,我們每天都會在固定的時間對資料血緣進行檢查,確認所有ETL排程任務依賴的表是否存在,如果不存在,就會報錯並通知相應人員做一些變更和修改。

  在資料質量稽核部分,資料質量稽核系統會對整個資料倉儲裡面的庫、欄位、指標以及埋點資料做相應的質量稽核,並針對業務規則設定閾值,每天晚上任務排程系統工作完成之後開始啟動,一旦監測到疑似錯誤的問題存在,郵件以及簡訊回發到對應的任務責任人。

  以下是整個資料質量稽核規則與流程:

滿成見:獵聘網資料治理實踐全流程經驗分享

  通過時間序列分析可以在一定程度上提醒業務責任人資料可能出現的波動性異常。拿我們招聘服務網站而言,有所謂的”金三銀四”,每年的3/4月會有較大的業務提升,時間序列分析可以將這些業務正常波動考慮在內。在鍵屬性這邊會對業務的表欄位做一些非空、唯一性以及資料參照集合。對業務和資料的合法性,比如主從一致等進行很好的規範,所有碼值業務表欄位必然在Java程式碼中有列舉類與之對應,我們會在對應的表之間做對映關係,從程式碼裡面獲取最新自檢值,以判斷欄位的註釋和值是否正確。在統計屬性方法中,我們會根據數值是離散值還是連續值採用不同的稽核規則,如果是離散值,我們會繼續考察分佈佔比情況,如果中間出現某個值的佔比突然降低或升高,或者主營業務資料突然降低,會判斷該資料可能出現錯誤。如果是連續值,則主要考察極、均值、分位數等,同時也會結合資料的標準差和方差來檢查資料分佈是否合理。

  指標稽核主要是業務規則和交叉校驗兩部分工作,業務規則主要指表責任人和使用者如何定義指標的波動範圍。當然,我們也會從其他角度校驗,但凡一個指標統計來源肯定不止一種方式。如果是站在報表引用和分析的角度,我們必須要有統一的途徑, 但可以利用其他途徑做參考校驗。交叉校驗就是通過不同的方式加工同一個指標,然後判斷指標的相關性,如果資料的差異不在同一個量級,那麼實際上這個資料是有問題的。比如新增使用者數指標,我們可以通過埋點和業務表資訊兩種方式進行建立。當然,這種方式無法覆蓋數倉中的所有表,只針對各個公司或者各個事業部關注的一些核心指標應用。

  我們目前也正在探索通過資料質量稽核應用生成資料質量報告,並將報告抄送給我們的業務和研發人員,讓更多序列的人蔘與進來並關注稽核結果。

  我們需要強調資料安全。隨著獵聘網的不斷髮展壯大,整個體量相對來說比較龐大,各項業務形態或者說管理標準都已成熟,但業務體系實際上比較複雜,尤其是涉及銷售和招聘部分,我們需要嚴格把控整個資料安全管理過程。

  資料安全主要涉及安全標準、資料粒度、使用者行為和審批流程四個環節。在安全標準方面,又可細分為個人隱私、業務敏感、財務資料、部門隔離和等級區分幾部分。所有的個人聯絡方式等隱私資料並不會傳入資料倉儲,我們會在資料入倉時進行校驗,對個人隱私資料、業務敏感資料以及一些財務資料實行不入倉原則。部門隔離實際上在整個公司發展過程中,我們發現不同事業部之間的資料可能是不希望共享的,因此我們需要針對業務進行初步隔離,同時針對所有資料進行安全等級區分。我們目前主要分為兩個等級許可權,一是查詢許可權,一是下載許可權。

  在資料粒度層面,我們主要分為schema、表級、欄位級、任務級以及介面級。使用者行為主要分為任務查詢、表查詢、明細資料下載許可權以及郵件內容。審批流程層面主要分為自動解析、系統提醒和人工稽核三部分。

  總結以上,我們整個資料倉儲團隊和工程師一起搭建了資料治理體系,包括後設資料管理、資料稽核工具與配置、資料血緣影響與分析、資料異常通知與預警、指標管理工具與配置、資料服務介面提供。但是整個資料上下游的治理必然不是資料部門自己的事情,而是要產品、研發、資料一起合作完成的。只有這樣,資料才能更好的為產品賦能,產品和運營團隊才可以更好得分析資料,由資料完成智慧驅動業務高速發展。

  經過兩年多的不懈努力,獵聘網目前已經實現定時監控上游資料結構與質量問題,發現問題當天跟進處理,保障90%以上的核心報表與資料應用的穩定與可靠性;模型分層,統一了下游引用出口,上游系統升級改造,影響截止到DW層,節省分析師90%以上的資源投入;後設資料完善95%以上,數倉知識體系與資料標準構建完畢,業務與資料學習使用效率極大提升。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2156487/,如需轉載,請註明出處,否則將追究法律責任。

相關文章