本申請涉及一種基于excel的大數(shù)據(jù)etl全過程定義的方法,特別地,涉及一種通過excel模板進(jìn)行etl作業(yè)定制和元數(shù)據(jù)管理的方法。
背景技術(shù):
伴隨著大數(shù)據(jù)的爆炸性增長,大數(shù)據(jù)應(yīng)用獲得了極大的發(fā)展,而大數(shù)據(jù)應(yīng)用離不開海量數(shù)據(jù)的收集、清洗和加工。大數(shù)據(jù)的幾大特點:數(shù)據(jù)巨量化(volume)、數(shù)據(jù)形態(tài)多樣化(variety)、數(shù)據(jù)產(chǎn)生及處理快速化(velocity),給大數(shù)據(jù)的數(shù)據(jù)抽取、轉(zhuǎn)換和加載(以下簡稱etl)帶來了新的機(jī)遇和挑戰(zhàn),也對etl系統(tǒng)的易用性、高效性、可維護(hù)性提出了更高的要求。
通常情況下,企業(yè)采用傳統(tǒng)的etl產(chǎn)品或直接編碼來構(gòu)建etl系統(tǒng),對大數(shù)據(jù)進(jìn)行加工和處理。傳統(tǒng)的etl產(chǎn)品注重操作界面的易用性,每個etl作業(yè)(本申請中job和作業(yè)互為通用,etl作業(yè)即etljob)通過畫圖進(jìn)行設(shè)計,先在界面通過拖拉來定義etl階段(本申請中stage和階段互為通用,etl階段即etlstage),并在etlstage之間連線定義數(shù)據(jù)加工流程,然后再點擊每個etlstage定義相關(guān)參數(shù),從而完成一個完整的etljob設(shè)計。這樣定義的環(huán)節(jié)多,效率低下。另外,元數(shù)據(jù)管理和傳統(tǒng)的etl產(chǎn)品分離,一旦數(shù)據(jù)結(jié)構(gòu)有變動,無法自動去調(diào)整etl工具產(chǎn)品中的etljob定義,需通過人工逐個點擊etl作業(yè)中的stage來進(jìn)行變更。當(dāng)etl作業(yè)很多的時候,開發(fā)和維護(hù)的工作量會非常大。直接編程的好處是靈活度高,但和傳統(tǒng)的etl產(chǎn)品面臨同樣的問題,開發(fā)低效,維護(hù)困難;因此有必要設(shè)計一種新的etl產(chǎn)品。
技術(shù)實現(xiàn)要素:
本申請解決了傳統(tǒng)etl產(chǎn)品和直接編程時的開發(fā)低效,維護(hù)困難問題。
一種基于excel的大數(shù)據(jù)etl全過程定義的方法,通過excel模板進(jìn)行etljob定制和元數(shù)據(jù)管理。該方法操作簡單,在易用性和可維護(hù)性方面較傳統(tǒng)etl工具產(chǎn)品和直接編程有了很大的提高。本方法高度融合了元數(shù)據(jù)管理,針對數(shù)據(jù)結(jié)構(gòu)、參數(shù)、加工流程的變更,只需修改相應(yīng)的excel模板元數(shù)據(jù),無需再編程,易于管理和維護(hù)。
本方法是輕量級的獨(dú)立于etl系統(tǒng)的etl全過程定義載體,無限覆蓋所有etl功能的定制,操作簡單,靈活易用,借助excel模板,將大大降低使用者的學(xué)習(xí)成本,無需學(xué)習(xí)新的etl工具產(chǎn)品。
本方法充分滿足各行業(yè)在etljob定制和元數(shù)據(jù)管理的需要。
一種基于excel的大數(shù)據(jù)etl全過程定義的方法是以excel模板為基礎(chǔ),采用統(tǒng)一的界面格式和規(guī)范化的描述語言進(jìn)行etl的全過程定義。該方法操作簡單,在易用性和可維護(hù)性方面較傳統(tǒng)etl工具產(chǎn)品和直接編程有了很大的提高,并可以結(jié)合機(jī)器人軟件進(jìn)行批量定制,在效率上有數(shù)倍的提升。
本方法高度融合了元數(shù)據(jù)管理,從源數(shù)據(jù)的抽取、數(shù)據(jù)加工、到目標(biāo)數(shù)據(jù)的最終落地,在excel模板所涉及的全部過程定義和參數(shù)設(shè)置,都作為etl系統(tǒng)的元數(shù)據(jù)輸入。etl系統(tǒng)根據(jù)本方法設(shè)置的元數(shù)據(jù),自動流水線式運(yùn)行數(shù)據(jù)抽取、數(shù)據(jù)處理、數(shù)據(jù)整合、數(shù)據(jù)輸出等模塊,無需人工干預(yù)。針對數(shù)據(jù)結(jié)構(gòu)、參數(shù)、加工流程等的變更,只需修改相應(yīng)的excel模板元數(shù)據(jù),甚至可以通過機(jī)器人軟件進(jìn)行元數(shù)據(jù)的批量修改,無需再編程,易于管理和維護(hù)。
本申請具有以下優(yōu)點:
1、以excel模板為基礎(chǔ)定制大數(shù)據(jù)etl全過程,簡單高效
本方法以excel模板為基礎(chǔ),采用統(tǒng)一的界面格式和規(guī)范化的描述語言進(jìn)行etl的全過程定制。該方法操作簡單,在易用性和可維護(hù)性方面較傳統(tǒng)etl工具產(chǎn)品和直接編程有了很大的提高,并可以結(jié)合機(jī)器人軟件進(jìn)行批量定制,在效率上有數(shù)倍的提升。
2、高度融合了元數(shù)據(jù)管理,簡明易用,維護(hù)方便
采用簡單易用的excel模板管理和配置元數(shù)據(jù);元數(shù)據(jù)變更直接在excel模板里進(jìn)行維護(hù),一目了然。甚至可以通過機(jī)器人軟件進(jìn)行元數(shù)據(jù)的批量修改,無需再編程,易于管理和維護(hù)。
附圖說明
圖1為本申請的方法構(gòu)成框圖。
圖2為參數(shù)設(shè)置模板示意圖。
圖3為文件處理類etlstage模板。
圖4為數(shù)據(jù)處理類etlstage模板。
圖5為文件處理邏輯界面。
圖6為數(shù)據(jù)處理邏輯界面。
圖7為文件處理類模板定制的讀文件范例。
圖8為數(shù)據(jù)處理類模板定制的數(shù)據(jù)集關(guān)聯(lián)(join)范例。
圖9為數(shù)據(jù)處理類模板定制的數(shù)據(jù)清洗與格式化(transformer)范例。
圖10為etljob內(nèi)部數(shù)據(jù)加工處理流程示意圖。
圖11為元數(shù)據(jù)管理示意圖。
具體實施方式
一種基于excel的大數(shù)據(jù)etl全過程定義的方法,包含了etljob定制和元數(shù)據(jù)管理兩大功能。其中,etljob定制包括了參數(shù)設(shè)置、etlstage定制和數(shù)據(jù)加工流程定制等;元數(shù)據(jù)管理包括了元數(shù)據(jù)定義、元數(shù)據(jù)檢查和元數(shù)據(jù)導(dǎo)出等功能。
(一)、etljob定制
etljob是指一個獨(dú)立完整的數(shù)據(jù)加工過程;etlstage則是etljob內(nèi)部為實現(xiàn)某個特定功能的數(shù)據(jù)加工階段。本方法采用excel模板進(jìn)行etl定制,一個excel工作簿(workbook)對應(yīng)一個etljob,一個excel工作簿含有多個excel工作表(worksheet),其中一個excel工作表設(shè)置參數(shù),其它excel工作表對應(yīng)etlstage。
每個excel工作表模板分為左右兩邊,左邊是注釋,右邊是具體設(shè)置內(nèi)容。
1、參數(shù)設(shè)置
參數(shù)設(shè)置模板包含三種參數(shù)設(shè)置:
1)、輸入?yún)?shù)。此處設(shè)置etljob運(yùn)行時的外部輸入?yún)?shù),如標(biāo)識源數(shù)據(jù)的日期參數(shù),賬務(wù)數(shù)據(jù)日期(acdate)、上一個賬務(wù)數(shù)據(jù)日期(yedate)等。
2)、etljob參數(shù)。此處設(shè)置etljob內(nèi)部參數(shù),如數(shù)據(jù)記錄處理出錯是否繼續(xù)(record_error_continue),數(shù)據(jù)記錄結(jié)束字符(record_end_char)等參數(shù)。
3)、etlstage參數(shù)。此處設(shè)置etlstage之間傳遞的參數(shù)。
2、etlstage定制
etlstage模板采用統(tǒng)一的界面格式和規(guī)范化的描述性語言進(jìn)行etl的全過程定義。etlstage模板分為兩大類,一類是文件處理類模板,一類是數(shù)據(jù)處理類模板。
etlstage模板的界面要素主要包括了etlstage屬性、處理邏輯、調(diào)試設(shè)置三部分內(nèi)容。
1)、etlstage屬性
etlstage屬性包含如下關(guān)鍵屬性:
id:用于唯一標(biāo)識etljob中的每一個etlstage。
type:選擇本etlstage所屬的類別,不同類型的etlstage,對應(yīng)的加工處理邏輯不同。etlstage類別如下:
表1:etlstage類別說明表
from:源etlstageid,支持多個,作為本etlstage的輸入。
to:目標(biāo)etlstageid,支持多個,作為本etlstage的輸出。
description:對本etlstage的文字說明。
2)、處理邏輯
文件處理類模板和數(shù)據(jù)處理類模板的處理邏輯設(shè)置界面有較大的差異,而數(shù)據(jù)處理類模板較為統(tǒng)一,然后不同類型的etlstage,組合的etl算子有所不同,但界面基本上是一致的。
文件處理邏輯設(shè)置界面見圖5:
文件處理邏輯設(shè)置說明:
表2:文件處理邏輯設(shè)置說明表
數(shù)據(jù)處理邏輯設(shè)置界面見圖6。
數(shù)據(jù)處理邏輯設(shè)置說明:
表3:數(shù)據(jù)處理邏輯設(shè)置說明表
結(jié)果篩選:
設(shè)置數(shù)據(jù)加工結(jié)果集的篩選邏輯。
limit:選取結(jié)果集頭n條記錄。
logic:篩選邏輯,支持通過定義篩選條件對輸出的(多個)結(jié)果集進(jìn)行篩選,篩選條件支持函數(shù)與邏輯運(yùn)算。
3)、調(diào)試參數(shù)
設(shè)置數(shù)據(jù)加工出錯時記錄導(dǎo)出邏輯。
method:支持log/overwrite/append,出錯信息導(dǎo)出支持log、csv文件,其中l(wèi)og參數(shù)為日志輸出,無須填寫后續(xù)參數(shù)。不輸出則填寫"ignore"或者留白。
delimiter:分隔符,支持多字節(jié)。
quote:引號符,csv文件可在此處標(biāo)識雙引號。
limit:選取錯誤數(shù)據(jù)集頭n行記錄。
file:文件路徑與文件名。
根據(jù)文件處理類模板定制的讀文件范例見圖7。
根據(jù)數(shù)據(jù)處理類模板定制的范例見圖8、圖9。
3、數(shù)據(jù)加工流程定制
etljob是指一個獨(dú)立完整的數(shù)據(jù)加工過程;etlstage則是etljob內(nèi)部的為實現(xiàn)某個特定功能的數(shù)據(jù)加工階段。在每個etlstage模板中定義from和to,分別設(shè)置數(shù)據(jù)來源的etlstageid和數(shù)據(jù)輸出目標(biāo)的etlstageid。etljob根據(jù)from和to的定義來連接etlstage,并組合成etljob的內(nèi)部數(shù)據(jù)加工處理流程。from和to都可以將前后連接的etlstage設(shè)置為多對一或者一對多關(guān)系,這樣就完全滿足etljob內(nèi)部各種數(shù)據(jù)加工處理流程的定制需求。
圖10是一張etljob內(nèi)部數(shù)據(jù)加工處理流程示意圖。etlstageid1和etlstageid2作為etljob數(shù)據(jù)的最初來源;etlstageid1數(shù)據(jù)輸出目標(biāo)是etlstageid3;etlstageid2數(shù)據(jù)輸出目標(biāo)是etlstageid3和etlstageid4;etlstageid3的數(shù)據(jù)來源是etlstageid1和etlstageid2,數(shù)據(jù)輸出目標(biāo)是etlstageid5;etlstageid4的數(shù)據(jù)來源是etlstageid2,數(shù)據(jù)輸出目標(biāo)是etlstageid5;etlstageid5是etljob最后一個etlstage,也就是最終的數(shù)據(jù)輸出目標(biāo),數(shù)據(jù)來源分別是etlstageid3、etlstageid4。
(二)、元數(shù)據(jù)管理
元數(shù)據(jù)管理功能,是將使用本方法和excel模板設(shè)置的各種要素,如源數(shù)據(jù)結(jié)構(gòu)、目標(biāo)數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)加工處理邏輯、數(shù)據(jù)加工環(huán)節(jié)及數(shù)據(jù)加工處理流程等各種參數(shù)進(jìn)行管理。元數(shù)據(jù)一旦設(shè)置完成,etl系統(tǒng)自動流水線式運(yùn)行數(shù)據(jù)抽取、數(shù)據(jù)處理、數(shù)據(jù)整合、數(shù)據(jù)輸出等模塊,無需人工干預(yù)。源數(shù)據(jù)變更,只需修改相應(yīng)的元數(shù)據(jù),無需編程。
元數(shù)據(jù)管理功能包括元數(shù)據(jù)檢查和元數(shù)據(jù)導(dǎo)出功能,具體如下:
1、元數(shù)據(jù)檢查
本方法根據(jù)一系列的元數(shù)據(jù)規(guī)范對元數(shù)據(jù)進(jìn)行檢查,元數(shù)據(jù)包括:數(shù)據(jù)來源、數(shù)據(jù)字段、字段數(shù)據(jù)類型、字段長度、字段數(shù)據(jù)格式,包含各種數(shù)據(jù)轉(zhuǎn)換規(guī)則、表達(dá)式、etl算子的數(shù)據(jù)處理邏輯,設(shè)置etlstageid的from和to串接而成的數(shù)據(jù)加工處理流程,以及etlstageid和excelsheet名稱的對應(yīng)關(guān)系等。并將檢查結(jié)果輸出元數(shù)據(jù)檢查報告。
2、元數(shù)據(jù)導(dǎo)出
將excel模板中的元數(shù)據(jù)導(dǎo)出為元數(shù)據(jù)控制文件,作為etl系統(tǒng)的元數(shù)據(jù)輸入。元數(shù)據(jù)控制文件采用xml文件保存元數(shù)據(jù),使元數(shù)據(jù)管理變得簡單和通用。
以上所述僅為本申請的較佳實施例,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。