本申請涉及通信
技術(shù)領(lǐng)域:
:,特別涉及一種數(shù)據(jù)表生成方法。本申請同時還涉及一種數(shù)據(jù)表生成設(shè)備。
背景技術(shù):
::數(shù)據(jù)倉庫(DataWarehouse,又稱為DW或DWH)是為企業(yè)所有級別的決策制定過程提供所有類型數(shù)據(jù)支持的戰(zhàn)略集合。數(shù)據(jù)倉庫是一個提供用戶用于決策支持的當(dāng)前和歷史數(shù)據(jù)的環(huán)境,這些數(shù)據(jù)在傳統(tǒng)的操作型數(shù)據(jù)庫中很難或不能得到。數(shù)據(jù)倉庫技術(shù)是為了有效的把操作形數(shù)據(jù)集成到統(tǒng)一的環(huán)境中以提供決策型數(shù)據(jù)訪問的各種技術(shù)和模塊的總稱,其最終的目的是為了讓用戶更快更方便查詢所需要的信息,以及提供決策支持。基礎(chǔ)層(又稱為ODS層)是數(shù)倉建設(shè)過程中將從業(yè)務(wù)系統(tǒng)庫抽取過來的數(shù)據(jù)建立的一層貼源的數(shù)據(jù)層,從而方便后續(xù)數(shù)據(jù)整合。在目前的數(shù)據(jù)倉庫建設(shè)過程中,ODS層與表相關(guān)的建設(shè)是基礎(chǔ)層建設(shè)的重要組成部分,需要將通過同步中心引入的增量數(shù)據(jù)合并為一份全量數(shù)據(jù),從而為后續(xù)的保留歷史、數(shù)據(jù)整合、數(shù)據(jù)分析、數(shù)據(jù)應(yīng)用等功能提供支持。目前,建立基礎(chǔ)層相關(guān)的表需要在生產(chǎn)建表語句之后編寫腳本以及配置調(diào)度信息,之后才能將腳本以及任務(wù)發(fā)布并執(zhí)行。發(fā)明人在實現(xiàn)本申請的過程中發(fā)現(xiàn),現(xiàn)有的任務(wù)腳本種類以及數(shù)量繁多,技術(shù)人員在采用腳本時非常容易遺漏或出錯;而且現(xiàn)有的數(shù)據(jù)表生成都是非?;A(chǔ)且需要人工完成的工作,不僅消耗開發(fā)資源大,而且人工開發(fā)效率比較低下。由此可見,如何結(jié)合現(xiàn)有的數(shù)據(jù)倉庫建設(shè)過程自動生成與ODS層所關(guān)聯(lián)的表,從而減少人力消耗以及提高數(shù)據(jù)倉庫建設(shè)效率,成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。技術(shù)實現(xiàn)要素:本申請?zhí)峁┝艘环N數(shù)據(jù)表生成方法,用以針對現(xiàn)有的數(shù)據(jù)庫高效準(zhǔn)確地建立基礎(chǔ)層的數(shù)據(jù)表,從而減少人力消耗以及提高數(shù)據(jù)倉庫建設(shè)效率。該方法包括:根據(jù)增量表的結(jié)構(gòu)元數(shù)據(jù)信息以及預(yù)設(shè)的任務(wù)模板生成當(dāng)前的數(shù)據(jù)表任務(wù);根據(jù)所述任務(wù)模板對所述數(shù)據(jù)表任務(wù)的調(diào)度信息進(jìn)行配置;根據(jù)所述數(shù)據(jù)表任務(wù)以及所述調(diào)度信息執(zhí)行建表語句以及初始化腳本,以生成數(shù)據(jù)表。相應(yīng)地,本申請還提出了一種數(shù)據(jù)表生成設(shè)備,包括:生成模塊,用于根據(jù)增量表的結(jié)構(gòu)元數(shù)據(jù)信息以及預(yù)設(shè)的任務(wù)模板生成當(dāng)前的數(shù)據(jù)表任務(wù);配置模塊,用于根據(jù)所述任務(wù)模板對所述數(shù)據(jù)表任務(wù)的調(diào)度信息進(jìn)行配置;執(zhí)行模塊,用于根據(jù)所述數(shù)據(jù)表任務(wù)以及所述調(diào)度信息執(zhí)行建表語句以及初始化腳本,以生成數(shù)據(jù)表。通過應(yīng)用本申請的技術(shù)方案,首先根據(jù)增量表的結(jié)構(gòu)元數(shù)據(jù)信息以及預(yù)設(shè)的任務(wù)模板生成當(dāng)前的數(shù)據(jù)表任務(wù),在根據(jù)任務(wù)模板對數(shù)據(jù)表任務(wù)的調(diào)度信息進(jìn)行配置之后,即可根據(jù)數(shù)據(jù)表任務(wù)以及調(diào)度信息執(zhí)行建表語句以及初始化腳本,從而能夠快速準(zhǔn)確地的完成數(shù)據(jù)表的生成工作,從而減少人力消 耗以及提高數(shù)據(jù)倉庫建設(shè)效率。附圖說明圖1為本申請?zhí)岢龅囊环N數(shù)據(jù)表生成方法的流程示意圖;圖2為本申請具體實施例提出的一種數(shù)據(jù)表生成方法的流程示意圖;圖3為本申請?zhí)岢龅囊环N數(shù)據(jù)表生成設(shè)備的結(jié)構(gòu)示意圖。具體實施方式為便于對本申請的技術(shù)方案進(jìn)行清除的闡述,在介紹本申請的技術(shù)方案之前,首先針對目前數(shù)據(jù)倉庫中的一些內(nèi)容進(jìn)行介紹:(1)表表是數(shù)據(jù)倉庫最重要的組成部分。一個表記錄由key,度量,屬性數(shù)據(jù)組成(例如員工表由員工號(key),員工姓名,年齡等等員工屬性數(shù)據(jù)組成)。在本申請的技術(shù)方案中,數(shù)據(jù)倉庫的建設(shè)存在以下兩種類型的表:增量表:為了提高性能,對于大數(shù)據(jù)量表根據(jù)記錄變更時間戳字段(一般是gmt_modify)采用增量同步,增量表每個快照保留一份增量數(shù)據(jù),表命名方式為tablename_{yyyymmdd}_delta或tablename_delta(分區(qū)字段dt=y(tǒng)yyymmdd);全量表:每個快照均會保留一份全量表,該全量表可以是從生產(chǎn)庫全量同步過來,也可以是將從生產(chǎn)庫同步過來的增量數(shù)據(jù)跟全量表的昨日快照數(shù)據(jù)進(jìn)行fullouterjoin后,保留一份最新全量,全量表的結(jié)構(gòu)跟增量表一致,表命名方式為tablename_{yyyymmdd}或tablename(分區(qū)字段dt=y(tǒng)yyymmdd)。(2)視圖視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。需要說明的是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。(3)元數(shù)據(jù)元數(shù)據(jù)為描述數(shù)據(jù)的數(shù)據(jù),本質(zhì)為對數(shù)據(jù)及信息資源的描述性信息,包括業(yè)務(wù)表結(jié)構(gòu)信息、數(shù)據(jù)倉庫表結(jié)構(gòu)信息等。其中在數(shù)據(jù)倉庫建設(shè)中較為重要的有調(diào)度元數(shù)據(jù)、SQL執(zhí)行日志元數(shù)據(jù)、表結(jié)構(gòu)元數(shù)據(jù)、同步中心元數(shù)據(jù)、定時任務(wù)元數(shù)據(jù)等。(4)Merge任務(wù)Merge任務(wù)為數(shù)據(jù)倉庫建設(shè)中所不可或缺的方式,其作用在于將增量表的數(shù)據(jù)跟全量表的昨日快照數(shù)據(jù)進(jìn)行合并,生成一份最新的全量快照表數(shù)據(jù)。(5)同步中心同步中心為將生產(chǎn)數(shù)據(jù)同步到數(shù)據(jù)倉庫或?qū)?shù)據(jù)倉庫數(shù)據(jù)回流給生產(chǎn)系統(tǒng)的裝置或設(shè)備?;谏鲜鰞?nèi)容以及本申請的
背景技術(shù):
:,在數(shù)據(jù)倉庫建設(shè)或重構(gòu)過程中,按照數(shù)據(jù)模型建設(shè)架構(gòu)需要建立基礎(chǔ)層,有些從生產(chǎn)庫同步過來的增量數(shù)據(jù)表需要在數(shù)據(jù)倉庫的ODS層合并一份全量表,以保留一份最新全量快照數(shù)據(jù),而這個過程涉及生成全量表建表語句、merge任務(wù)腳本、調(diào)度依賴、數(shù)據(jù)初始化、發(fā)布等操作。而本申請的技術(shù)方案則旨在通過merge任務(wù)實現(xiàn)批量生成基礎(chǔ)層數(shù)據(jù)表(全量表),從而在保障工作質(zhì)量的前提下,降低數(shù)據(jù)倉庫建設(shè)的復(fù)雜度、提升開發(fā)效率。如圖1所示,為本申請?zhí)岢龅囊环N數(shù)據(jù)表生成方法的流程示意圖,包括以下步驟:S101,根據(jù)增量表的結(jié)構(gòu)元數(shù)據(jù)信息以及預(yù)設(shè)的任務(wù)模板生成當(dāng)前的數(shù)據(jù)表任務(wù)。如
背景技術(shù):
:所述,現(xiàn)有數(shù)據(jù)庫中基礎(chǔ)層的全量表建設(shè)需求多且配置繁瑣,因此在本申請在優(yōu)選的實施例中針對類型為基礎(chǔ)層全量表的數(shù)據(jù)表進(jìn)行生成處理。為了后續(xù)能夠快速地進(jìn)行數(shù)據(jù)表的生產(chǎn)操作,技術(shù)人員可以在該步驟 之前進(jìn)行統(tǒng)一數(shù)據(jù)表生成的初始化操作,即根據(jù)所述結(jié)構(gòu)元數(shù)據(jù)信息生成與所述數(shù)據(jù)表對應(yīng)的建表語句以及所述數(shù)據(jù)初始化腳本。在具體的應(yīng)用場景中,增量數(shù)據(jù)表命名方式為:ods_{源系統(tǒng)表名}_delta;而全量數(shù)據(jù)表的命名方式為:ods_{源系統(tǒng)表名}。由于現(xiàn)有的基礎(chǔ)層全量表大部分通過全量表merge任務(wù)來實現(xiàn),因此在本申請的一個優(yōu)選實施例中,技術(shù)人員可以將任務(wù)模板具體設(shè)置為merge任務(wù)模板,并在該步驟中根據(jù)增量表結(jié)構(gòu)元數(shù)據(jù)信息和批量merge任務(wù)模板成merge任務(wù)代碼,隨后將merge任務(wù)代碼作為所述數(shù)據(jù)表任務(wù)上傳至預(yù)設(shè)的代碼庫。在具體的應(yīng)用場景中,批量生成基礎(chǔ)層全量表merge任務(wù)模板格式如下表1所示:表1此外,由于數(shù)據(jù)倉庫ODS層全量表的建立方法和裝置是一個高度集成的方案,其中有涉及元數(shù)據(jù)、在云端代碼庫、調(diào)度依賴、數(shù)據(jù)merge任務(wù)、數(shù) 據(jù)初始化、發(fā)布上線等一系列過程。因此為了進(jìn)一步地提高自動化水平以及處理效率,可以在根據(jù)增量表的結(jié)構(gòu)元數(shù)據(jù)信息以及預(yù)設(shè)的任務(wù)模板生成當(dāng)前的數(shù)據(jù)表任務(wù)之前針對增量表的結(jié)構(gòu)元數(shù)據(jù)信息進(jìn)行預(yù)處理。具體地,在本申請的一個優(yōu)選實施例中,在該步驟之前將增量表同步至數(shù)據(jù)倉庫,并獲取增量表的結(jié)構(gòu)元數(shù)據(jù)信息,以此建立能夠提供數(shù)據(jù)倉庫的表結(jié)構(gòu)信息的元數(shù)據(jù)服務(wù),便于后續(xù)的處理。如圖2所示,為本申請具體實施例所提出的數(shù)據(jù)表生成方法的流程示意圖,該圖中除了包含上文所介紹的同步中心模塊、元數(shù)據(jù)模塊之外,還涉及到以下模塊:中間層:數(shù)據(jù)倉庫建設(shè)中利用同步過來的基礎(chǔ)層數(shù)據(jù)進(jìn)行整合沉淀的一個數(shù)據(jù)層,目的在于方便后續(xù)應(yīng)用使用業(yè)務(wù)數(shù)據(jù);在云端:數(shù)據(jù)倉庫開發(fā)的集成開發(fā)環(huán)境,通過在云端可以進(jìn)行數(shù)據(jù)同步配置、模型設(shè)計、ETL開發(fā)、單元測試、任務(wù)發(fā)布、運維等操作。調(diào)度:將數(shù)據(jù)倉庫任務(wù)根據(jù)配置進(jìn)行自動調(diào)起執(zhí)行的系統(tǒng)。基于上述模塊,該具體實施例在前期執(zhí)行以下步驟:步驟1:由同步中心同步增量數(shù)據(jù)至數(shù)據(jù)倉庫;步驟2.1:元數(shù)據(jù)模塊根據(jù)增量表結(jié)構(gòu)信息生成全量表建表語句,并將其發(fā)送至在云端模塊;步驟2.2:元數(shù)據(jù)模塊根據(jù)模板和增量表結(jié)構(gòu)生成Merge任務(wù)。在上述步驟中,增量數(shù)據(jù)表的命名格式為:ods_{源系統(tǒng)表名}_delta;全量數(shù)據(jù)表的命名格式為:ods_{源系統(tǒng)表名}。各個模塊以此對表進(jìn)行建立以及查詢。在同步中心同步的過程中,同步任務(wù)的命名格式為:imp_{ODPS的表名};合并任務(wù)的命名格式為:mrg_{ODPS的表名}。由于元數(shù)據(jù)模塊能夠提供數(shù)據(jù)倉庫的表結(jié)構(gòu)信息,而在云端代碼庫模塊能夠根據(jù)增量表結(jié)構(gòu)元數(shù)據(jù)信息和批量merge任務(wù)模板,生成merge任務(wù)代 碼并通過在云端代碼庫服務(wù)提交代碼庫保存,因此在根據(jù)批量生成基礎(chǔ)層全量表merge任務(wù)模板維護(hù)好信息后,即可將通過Excel文件上傳至專用于數(shù)據(jù)表生成的系統(tǒng),并通過調(diào)用元數(shù)據(jù)模塊并根據(jù)增量表的結(jié)構(gòu)信息生成基礎(chǔ)層全量表的建表語句和數(shù)據(jù)初始化腳本、調(diào)用在云端代碼庫模塊生成Merge任務(wù)。S102,根據(jù)所述任務(wù)模板對所述數(shù)據(jù)表任務(wù)的調(diào)度信息進(jìn)行配置。通過S101以及S102的處理即完成了針對數(shù)據(jù)表生成的前期準(zhǔn)備,該步驟主要用于針對具體生成所需要的節(jié)點、腳本等內(nèi)容進(jìn)行配置。為了實現(xiàn)針對數(shù)據(jù)表生成的調(diào)度配置服務(wù),在本申請優(yōu)選的實施例中,本步驟根據(jù)所述merge任務(wù)模板生成與所述數(shù)據(jù)表任務(wù)對應(yīng)的前置依賴節(jié)點、任務(wù)輸出名、調(diào)度任務(wù)基線、調(diào)度任務(wù)owner。在圖2的具體實施例中,在通過步驟2.2接收了Merge任務(wù)之后,在云端模塊在步驟2.3中根據(jù)模板配置調(diào)度信息為Merge任務(wù)配置相關(guān)信息,并調(diào)用調(diào)度配置服務(wù)生成調(diào)度依賴和merge任務(wù)輸出名稱。以表1所示的內(nèi)容為例,該具體實施例中根據(jù)批量merge任務(wù)模板,調(diào)用調(diào)度配置服務(wù)生成merge任務(wù)的前置依賴節(jié)點、任務(wù)輸出名、調(diào)度任務(wù)基線、調(diào)度任務(wù)owner。S103,根據(jù)所述數(shù)據(jù)表任務(wù)以及所述調(diào)度信息執(zhí)行建表語句以及初始化腳本,以生成數(shù)據(jù)表。在通過S101生成了數(shù)據(jù)表任務(wù)以及通過S102配置完畢調(diào)度信息之后,調(diào)度模塊在步驟3中指示系統(tǒng)將建表語句、初始化腳本、merge任務(wù)打包并發(fā)布到線上。隨后在云端模塊通過步驟4.1指示系統(tǒng)執(zhí)行建表語句,在系統(tǒng)執(zhí)行建表語句和初始化腳本之后,在云端模塊通過步驟4.2進(jìn)行初始化數(shù)據(jù)處理。通過以上流程,實現(xiàn)了數(shù)據(jù)表的快速生成以及創(chuàng)建,替代了傳統(tǒng)的手工 準(zhǔn)備建表語句、手工編寫基礎(chǔ)層全量表merge任務(wù)、手工配置調(diào)度依賴、手工編寫數(shù)據(jù)初始化腳本、手工打包、手工發(fā)布、手工執(zhí)行建表語句和初始化腳本的等需要人工完成的工作,實現(xiàn)了數(shù)據(jù)表的自動生成,提高了數(shù)據(jù)倉庫的工作效率。為達(dá)到以上技術(shù)目的,本申請還提出了一種數(shù)據(jù)表生成設(shè)備,如圖2所示,包括:生成模塊210,用于根據(jù)增量表的結(jié)構(gòu)元數(shù)據(jù)信息以及預(yù)設(shè)的任務(wù)模板生成當(dāng)前的數(shù)據(jù)表任務(wù);配置模塊220,用于根據(jù)所述任務(wù)模板對所述數(shù)據(jù)表任務(wù)的調(diào)度信息進(jìn)行配置;執(zhí)行模塊230,用于根據(jù)所述數(shù)據(jù)表任務(wù)以及所述調(diào)度信息執(zhí)行建表語句以及初始化腳本,以生成數(shù)據(jù)表。在具體的應(yīng)用場景中,所述數(shù)據(jù)表具體為基礎(chǔ)層全量表,還包括:初始化模塊,用于根據(jù)所述結(jié)構(gòu)元數(shù)據(jù)信息生成與所述數(shù)據(jù)表對應(yīng)的建表語句以及所述數(shù)據(jù)初始化腳本。在具體的應(yīng)用場景中,還包括:同步模塊,用于將所述增量表同步至數(shù)據(jù)倉庫,并獲取所述增量表的所述結(jié)構(gòu)元數(shù)據(jù)信息。在具體的應(yīng)用場景中,所述生成模塊具體用于:根據(jù)增量表結(jié)構(gòu)元數(shù)據(jù)信息和批量merge任務(wù)模板成merge任務(wù)代碼,并將所述merge任務(wù)代碼作為所述數(shù)據(jù)表任務(wù)上傳至預(yù)設(shè)的代碼庫。在具體的應(yīng)用場景中,所述配置模塊具體用于:根據(jù)所述merge任務(wù)模板生成與所述數(shù)據(jù)表任務(wù)對應(yīng)的前置依賴節(jié)點、任務(wù)輸出名、調(diào)度任務(wù)基線、調(diào)度任務(wù)owner。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施場景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施場景的示意圖,附圖中的模塊或流程并不一定是實施本申請所必須的。本領(lǐng)域技術(shù)人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進(jìn)行分布于實施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施場景的一個或多個裝置中。上述實施場景的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。上述本申請序號僅僅為了描述,不代表實施場景的優(yōu)劣。以上公開的僅為本申請的幾個具體實施場景,但是,本申請并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本申請的保護(hù)范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3