天天看點

大資料與機器學習:實踐方法與行業案例.3.1 資料緩沖區的基本規則

第3章

實戰:打造資料閉環

道生一,一生二,二生三,三生萬物。萬物負陰而抱陽,沖氣以為和。

—老子《道德經》

你不能兩次踏進同一條河流,因為新的水不斷地流過你的身旁。

—柏拉圖《泰阿泰德》

前面兩章已經介紹了資料閉環的各個主要環節和涉及的技術,本章将基于前文提出的理念和技術來實作資料閉環。按照資料的流轉過程以及主要負責人的職責,整個資料閉環将由三個環節組成,如圖3-1所示。

圖3-1 資料流轉過程及主要負責人職責示意圖

1)生産資料→原始資料。這個環節的主要負責人為生産系統的軟體開發工程師,軟體開發工程師按照資料抽取需求,将生産資料轉換為原始資料,并将原始資料按照要求傳至資料緩沖區。

2)原始資料→分析資料。這個環節的主要負責人為資料團隊的資料工程師,該節點實際上是解決分析資料的入口問題,是資料閉環中的關鍵環節。

3)分析資料→生産資料。該環節的負責人為資料工程師和軟體開發工程師,需要兩者合作,将分析資料轉化為生産資料,供生産系統使用,是資料系統化應用的過程。

在上述第一個環節,開發團隊接收來自資料團隊的資料抽取需求,在需求中需要明确定義原始資料的格式要求和更新方式等,并且需要産出的資料檔案滿足檔案命名規則。軟體開發工程師根據資料需求周期性産出資料檔案,并自動上傳至資料緩沖區。

在第二個環節,資料團隊需要按照一定的規則将資料檔案批量加載到資料平台中。該環節是資料閉環中的關鍵,也是全部由資料團隊負責完成的環節。大量原始資料檔案已經存放于資料緩沖區中,保證大量資料高效且穩定地流入分析系統,顯然無法通過人力完成,是以該環節的系統化實作是本章的重點内容。

在第三個環節,負責人為資料工程師和軟體開發工程師。資料工程師負責資料預處理、提供資料接口、将資料模型系統化等,在此過程中,需要軟體開發工程師的積極配合。該環節是資料由分析環境進入生産環境的環節,是資料應用于生産系統的過程,本書在應用篇将着重介紹資料的系統化應用過程。

以下将圍繞第二個環節詳細展開,該環節的關鍵在于大量資料檔案的自動加載。為了實作該目标,需要先制定資料緩沖區的基本規則,然後設計檔案自動加載的基本流程,并在此基礎上使用java多線程實作資料的高效加載。

<b>3.1 資料緩沖區的基本規則</b>

<b></b>

資料緩沖區由一個或多個ftp檔案伺服器組成,接收來自各個生産系統的原始資料,每天會有成百上千的資料檔案傳入資料緩沖區,為了對衆多周期性産生的資料檔案進行管理和系統化處理,需要為資料緩沖區制定相應規範。表3-1列出的三個規則可以讓程式的自動化處理變得更加容易。

表3-1 資料緩沖區的三個規則

序 号 規範内容 說 明

1 檔案存儲規則 按照統一的存儲方式對檔案進行存儲

2 檔案命名規則 通過檔案名稱自動比對更新規則

3 檔案清理規則 定期自動清理檔案,保證資料緩沖區有足夠的可用空間

資料的自動加載将依賴于這三個規則,資料緩沖區的上下遊隻需遵守這三個規則即可通過增加配置資訊,實作資料的自動對接。為了使規則具有可操作性,下面對這三個規則分别進行細化。

3.1.1 檔案存儲規則

檔案存儲規則為資料緩沖區定義了資料檔案的存儲方式,例如,規定傳入資料緩沖區中的檔案必須使用.zip的格式進行壓縮。該規則簡單易行,且至少具有以下顯而易見的優點。

1)壓縮檔案可以節省存儲空間。當資料檔案衆多時,壓縮檔案可以大量節省存儲空間,進而提升資料緩沖區的存儲使用率。

2)壓縮檔案在傳輸時節省帶寬。壓縮檔案占用更少位元組,這在内網帶寬緊張時尤其有用。

3)統一的壓縮方式友善程式自動解壓。統一使用某種壓縮格式,便于後續程式的自動解壓,因為程式無需考慮多種壓縮格式。

檔案存儲規則确定後,所有上傳資料緩沖區的檔案都需要遵守該規則,否則将被監護程式删除。

3.1.2 檔案命名規則

檔案命名規則是表3-1三個規則中最重要的一個,因為程式需要根據檔案名稱識别該檔案的後續處理流程。例如,我們給出如下的檔案命名規則範例:

1)檔案名稱由“名稱字首+檔案日期+中間字元串+名稱字尾”構成。

2)中間字元串可以為空。

3)名稱字首+中間字元串唯一标示一個檔案。

4)檔案日期标示同一個檔案的不同批次。

5)名稱字尾用于标記該檔案的壓縮存儲格式。

圖3-2是符合該命名規則的示例,其中一個檔案名稱的中間字元串為空。

圖3-2 檔案命名規則示例

3.1.3 檔案清理規則

檔案清理規則是為了保證資料緩沖區的可用空間而制定的,滿足清理規則的資料檔案将會被程式自動清理,以騰出空間為新資料檔案使用。

通常資料緩沖區會保留同一個檔案字首的不同檔案日期的資料檔案,如圖3-3所示。

圖3-3 資料緩沖區中的檔案清單(部分)

資料緩沖區中的檔案如果不進行清理,則會耗盡磁盤空間,導緻資料緩沖區無法繼續提供服務。清理規則可能非常簡單,例如,每日23:00自動清除一個月前的資料檔案。

根據上述清理規則,每天在23:00時,程式将根據資料緩沖區中檔案名稱的檔案日期,自動删除一個月前的曆史資料,騰出的存儲空間将用于次日淩晨接收新的資料檔案。

繼續閱讀