本申請涉及通信
技術(shù)領(lǐng)域:
,特別涉及一種數(shù)據(jù)建模方法。本申請同時還涉及一種數(shù)據(jù)建模設(shè)備。
背景技術(shù):
:隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫已經(jīng)在信息
技術(shù)領(lǐng)域:
有了廣泛的應(yīng)用。在社會生活的各個部門幾乎都有各種各樣的數(shù)據(jù)庫保存著與人們的生活息息相關(guān)的各種數(shù)據(jù)。為了對數(shù)據(jù)進(jìn)行統(tǒng)一的管理以提供更好的服務(wù),數(shù)據(jù)倉庫應(yīng)運(yùn)而生。數(shù)據(jù)倉庫是一個面向主題的(SubjectOriented)、集成的(Integrated)、相對穩(wěn)定的(Non-Volatile)、反映歷史變化(TimeVariant)的數(shù)據(jù)集合,用于支持管理決策(DecisionMakingSupport),出于分析性報告和決策支持目的而創(chuàng)建。為需要業(yè)務(wù)智能的企業(yè),提供指導(dǎo)業(yè)務(wù)流程改進(jìn)、監(jiān)視時間、成本、質(zhì)量以及控制。數(shù)據(jù)建模是建設(shè)數(shù)據(jù)倉庫的重要過程之一,數(shù)據(jù)建模指的是對現(xiàn)實(shí)世界各類數(shù)據(jù)的抽象組織,確定數(shù)據(jù)倉庫需管轄的范圍、數(shù)據(jù)的組織形式等直至轉(zhuǎn)化成現(xiàn)實(shí)的數(shù)據(jù)倉庫。通過將數(shù)據(jù)倉庫模型建設(shè)進(jìn)行工具化處理,可以解決業(yè)界長期以來經(jīng)驗(yàn)建模和人肉建模的問題,同時在集團(tuán)內(nèi)部可以更好地服務(wù)集團(tuán)數(shù)據(jù)公共層建設(shè)和優(yōu)化。在進(jìn)行數(shù)據(jù)建模的過程中,對于業(yè)務(wù)不了解的數(shù)據(jù)模型師一般首先會進(jìn)行下游使用情況調(diào)研,隨后再根據(jù)調(diào)研結(jié)果進(jìn)行數(shù)據(jù)建模。由于對下游使用情況調(diào)研需要耗費(fèi)大量的人力,因此該方式效率低且調(diào)研不充分,從而導(dǎo)致事倍功半。而對于業(yè)務(wù)了解的數(shù)據(jù)模型師一般采用基于經(jīng)驗(yàn)的建模方式。然而該方式由于沒有數(shù)據(jù)化的指導(dǎo),因此無法保證建模的準(zhǔn)確度。由此可見,如何在保證準(zhǔn)確性的前提下快速進(jìn)行數(shù)據(jù)建模處理,成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。技術(shù)實(shí)現(xiàn)要素:本申請?zhí)峁┝艘环N數(shù)據(jù)建模方法,用以提高數(shù)據(jù)建模的準(zhǔn)確定以及建模效率。該方法包括:根據(jù)各來源表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的主表;根據(jù)所述主表的業(yè)務(wù)含義確定通過所述數(shù)據(jù)建模生成的目標(biāo)表的類型;根據(jù)所述主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表;從所述主表以及所述從表中選擇用于數(shù)據(jù)建模的字段;根據(jù)所述主表、所述從表以及所述字段進(jìn)行數(shù)據(jù)建模,生成所述目標(biāo)表。優(yōu)選地,根據(jù)所述主表的業(yè)務(wù)含義確定通過所述數(shù)據(jù)建模生成的目標(biāo)表的類型,具體為:若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述事實(shí)表,根據(jù)所述主表的元數(shù)據(jù)確定所述事實(shí)表的具體類型,所述具體類型包括:事務(wù)型事實(shí)表、周期快照事實(shí)表以及累積快照事實(shí)表;若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述維表,根據(jù)所述主表的元數(shù)據(jù)確定所述維表是否需要進(jìn)行拆分以及拆分方式,所述拆分方式包括:水平拆分以及垂直拆分。優(yōu)選地,所述元數(shù)據(jù)包括下游使用信息,根據(jù)所述主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表,具體為:根據(jù)所述下游使用信息獲取與所述主表具有關(guān)聯(lián)的數(shù)據(jù)表;獲取所述主表與各所述數(shù)據(jù)表之間的關(guān)聯(lián)信息,并將與預(yù)設(shè)的選擇策略匹配的關(guān)聯(lián)信息對應(yīng)的數(shù)據(jù)表作為所述從表。優(yōu)選地,從所述主表以及所述從表中選擇用于數(shù)據(jù)建模的字段,具體為:根據(jù)所述元數(shù)據(jù)分別獲取所述主表以及所述從表的字段使用情況信息;根據(jù)所述字段使用情況信息選取所述字段;其中,所述字段使用情況信息至少包括:字段查詢次數(shù)、過濾條件次數(shù)、關(guān)聯(lián)次數(shù)、聚合統(tǒng)計次數(shù)、空值占比、枚舉值占比。優(yōu)選地,在根據(jù)所述主表、所述從表以及所述字段進(jìn)行數(shù)據(jù)建模之前,還包括:當(dāng)所述目標(biāo)表為所述事務(wù)型事實(shí)表時,根據(jù)所述下游使用信息對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),確定生成單事件事實(shí)表或多事件事實(shí)表;當(dāng)所述目標(biāo)表為所述累積快照事實(shí)表,按照所述事務(wù)型事實(shí)表對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),并將當(dāng)前用于所述數(shù)據(jù)建模的其他事實(shí)表的業(yè)務(wù)過程進(jìn)行打標(biāo);當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述水平拆分時,根據(jù)所述主表的字段使用情況信息將所述主表水平拆分為多個維表;當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述垂直拆分時,根據(jù)所述主表與各所述從表之間的關(guān)聯(lián)信息,將業(yè)務(wù)變化高于預(yù)設(shè)閾值的從表與所述主表通過所述數(shù)據(jù)建模生成核心維表,以及將業(yè)務(wù)變化不高于預(yù)設(shè)閾值的從表通過所述數(shù)據(jù)建模生成自定義維表。相應(yīng)地,本申請還提出了一種數(shù)據(jù)建模設(shè)備,包括:第一確定模塊,根據(jù)各來源表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的主表;第二確定模塊,根據(jù)所述主表的業(yè)務(wù)含義確定通過所述數(shù)據(jù)建模生成的目標(biāo)表的類型;第三確定模塊,根據(jù)所述主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表;選擇模塊,從所述主表以及所述從表中選擇用于數(shù)據(jù)建模的字段;建模模塊,對所述主表、所述從表以及所述字段進(jìn)行數(shù)據(jù)建模,生成所 述目標(biāo)表。優(yōu)選地,所述第二確定模塊具體用于:若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述事實(shí)表,根據(jù)所述主表的元數(shù)據(jù)確定所述事實(shí)表的具體類型,所述具體類型包括:事務(wù)型事實(shí)表、周期快照事實(shí)表以及累積快照事實(shí)表;若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述維表,根據(jù)所述主表的元數(shù)據(jù)確定所述維表是否需要進(jìn)行拆分以及拆分方式,所述拆分方式包括:水平拆分以及垂直拆分。優(yōu)選地,所述元數(shù)據(jù)包括下游使用信息,所述第三確定模塊具體用于:根據(jù)所述下游使用信息獲取與所述主表具有關(guān)聯(lián)的數(shù)據(jù)表;獲取所述主表與各所述數(shù)據(jù)表之間的關(guān)聯(lián)信息,并將與預(yù)設(shè)的選擇策略匹配的關(guān)聯(lián)信息對應(yīng)的數(shù)據(jù)表作為所述從表。優(yōu)選地,所述選擇模塊具體用于:根據(jù)所述元數(shù)據(jù)分別獲取所述主表以及所述從表的字段使用情況信息;根據(jù)所述字段使用情況信息選取所述字段;其中,所述字段使用情況信息至少包括:字段查詢次數(shù)、過濾條件次數(shù)、關(guān)聯(lián)次數(shù)、聚合統(tǒng)計次數(shù)、空值占比、枚舉值占比。優(yōu)選地,還包括處理模塊,其中:當(dāng)所述目標(biāo)表為所述事務(wù)型事實(shí)表時,所述處理模塊根據(jù)所述下游使用信息對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),確定生成單事件事實(shí)表或多事件事實(shí)表;當(dāng)所述目標(biāo)表為所述累積快照事實(shí)表,所述處理模塊按照所述事務(wù)型事實(shí)表對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),并將當(dāng)前用于所述數(shù)據(jù)建模的其他事實(shí)表的業(yè)務(wù)過程進(jìn)行打標(biāo);當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述水平拆分時,所述處理 模塊根據(jù)所述主表的字段使用情況信息將所述主表水平拆分為多個維表;當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述垂直拆分時,根據(jù)所述主表與各所述從表之間的關(guān)聯(lián)信息,所述處理模塊將業(yè)務(wù)變化高于預(yù)設(shè)閾值的從表與所述主表通過所述數(shù)據(jù)建模生成核心維表,以及將業(yè)務(wù)變化不高于預(yù)設(shè)閾值的從表通過所述數(shù)據(jù)建模生成自定義維表。由此可見,通過應(yīng)用本申請的技術(shù)方案,在根據(jù)各來源表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的主表以及根據(jù)主表的業(yè)務(wù)含義確定通過數(shù)據(jù)建模生成的目標(biāo)表的類型后,根據(jù)主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表,并從主表以及從表中選擇用于數(shù)據(jù)建模的字段,最后根據(jù)主表、從表以及字段進(jìn)行數(shù)據(jù)建模,生成所述目標(biāo)表。從而能夠基于數(shù)據(jù)表的元數(shù)據(jù)準(zhǔn)確地進(jìn)行數(shù)據(jù)建模,保證了數(shù)據(jù)建模結(jié)果的準(zhǔn)確性以及效率。附圖說明圖1為本申請?zhí)岢龅囊环N數(shù)據(jù)建模方法的流程示意圖;圖2為本申請具體實(shí)施例中來源表與目標(biāo)表的關(guān)系示意圖;圖3為本申請具體實(shí)施例中主要模塊示意圖;圖4為本申請具體實(shí)施例中元數(shù)據(jù)加工模塊的結(jié)構(gòu)示意圖;圖5為本申請具體實(shí)施例中進(jìn)行數(shù)據(jù)建模的流程示意圖;圖6為本申請?zhí)岢龅囊环N數(shù)據(jù)建模設(shè)備的結(jié)構(gòu)示意圖。具體實(shí)施方式在現(xiàn)有的數(shù)據(jù)倉庫建模領(lǐng)域中,數(shù)據(jù)倉庫模型設(shè)計主要包括“Inmon的第三范式建?!币约啊癒imball的維度建模”這兩個流派。這兩種模型設(shè)計理論和方法針對某個具體的數(shù)據(jù)倉庫的模型設(shè)計的產(chǎn)出結(jié)果最終都可以通過ER圖或類ER圖的方式來展現(xiàn),此外還存在DMDWDesigner該用于數(shù)據(jù)倉庫建模的 獨(dú)立工具產(chǎn)品。這些技術(shù)均可在確定了主表以及從表的情況下執(zhí)行數(shù)據(jù)建模的過程,然而正如
背景技術(shù):
所述,這些建模方式?jīng)]有融入數(shù)據(jù)倉庫建模的理論和方法,而且在建模過程沒有數(shù)據(jù)化的指導(dǎo)(主要是經(jīng)驗(yàn)建模的方式),導(dǎo)致了數(shù)據(jù)建模結(jié)果的不準(zhǔn)確。有鑒于以上技術(shù)問題,本申請?zhí)岢隽艘环N數(shù)據(jù)建模方法,如圖1所示,該方法包括如下步驟:S101,根據(jù)各來源表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的主表。主從表是一種數(shù)據(jù)關(guān)系模型,主表為在數(shù)據(jù)庫中建立的表格,其中存在主鍵(primarykey)用于與其它表相關(guān)聯(lián),并且作為在主表中的唯一性標(biāo)識。從表則是以主表的主鍵(primarykey)值為外鍵(ForeignKey)的表,可以通過外鍵與主表進(jìn)行關(guān)聯(lián)查詢。從表與主表通過外鍵進(jìn)行關(guān)聯(lián)查詢。其中,從表數(shù)據(jù)依賴于主表,一般最后查詢數(shù)據(jù)時把主表與從表進(jìn)行關(guān)聯(lián)查詢。主表可用于存儲主要信息,如客戶資料(客戶編號,客戶名稱,客戶公司,客戶單位等),從表用來存儲客戶擴(kuò)展信息(客戶訂單信息,客戶地址信息,客戶聯(lián)系方式信息等)。在本申請的技術(shù)方案中,由于需要針對多個數(shù)據(jù)表通過數(shù)據(jù)建模的方式生成目標(biāo)表,因此首先需要在多個當(dāng)前的數(shù)據(jù)表(又稱為來源表)中選擇主表。舉例來說,目標(biāo)表可能來源于1~m張表,即來源表1、來源表2、......、來源表m,假設(shè)來源表1是我們選擇的主表,那其他來源表(來源表2、......、來源表m)即是我們選擇的從表,一般來說,數(shù)據(jù)建模過程中所涉及的主表只有一張,具體過程如圖2所示。S102,根據(jù)所述主表的業(yè)務(wù)含義確定通過所述數(shù)據(jù)建模生成的目標(biāo)表的類型。本步驟用于確定目標(biāo)表的類型,從大體上來說,目標(biāo)表的類型包括事實(shí) 表以及維表兩類。其各自特點(diǎn)如下:(1)事實(shí)表每個數(shù)據(jù)倉庫都包含一個或者多個事實(shí)數(shù)據(jù)表。事實(shí)數(shù)據(jù)表可能包含業(yè)務(wù)銷售數(shù)據(jù),如現(xiàn)金登記事務(wù)所產(chǎn)生的數(shù)據(jù),事實(shí)數(shù)據(jù)表通常包含大量的行。事實(shí)數(shù)據(jù)表的主要特點(diǎn)是包含數(shù)字?jǐn)?shù)據(jù)(事實(shí)),并且這些數(shù)字信息可以匯總,以提供有關(guān)單位作為歷史的數(shù)據(jù),每個事實(shí)數(shù)據(jù)表包含一個由多個部分組成的索引,該索引包含作為外鍵的相關(guān)性維度表的主鍵。事實(shí)數(shù)據(jù)表不包含描述性的信息,也不包含除數(shù)字度量字段及使事實(shí)與維度表中對應(yīng)項(xiàng)的相關(guān)索引字段之外的任何數(shù)據(jù)。包含在事實(shí)數(shù)據(jù)表中的“度量值”有兩種:一種是可以累計的度量值,另一種是非累計的度量值。最有用的度量值是可累計的度量值,其累計起來的數(shù)字是非常有意義的。用戶可以通過累計度量值獲得匯總信息,例如,可以匯總具體時間段內(nèi)一組商店的特定商品的銷售情況。非累計的度量值也可以用于事實(shí)數(shù)據(jù)表,例如在一座大廈的不同位置測量溫度時,如果將大廈中所有不同位置的溫度累加是沒有意義的,但是求平均值是有意義的。一個事實(shí)數(shù)據(jù)表都要和一個或多個維度表相關(guān)聯(lián),用戶在利用事實(shí)數(shù)據(jù)表創(chuàng)建多維數(shù)據(jù)集時,可以使用一個或多個維度表。(2)維度表維度表可以看作是用戶來分析數(shù)據(jù)的窗口,維度表中包含事實(shí)數(shù)據(jù)表中事實(shí)記錄的特性,有些特性提供描述性信息,有些特性指定如何匯總事實(shí)數(shù)據(jù)表數(shù)據(jù),以便為分析者提供有用的信息,維度表包含幫助匯總數(shù)據(jù)的特性的層次結(jié)構(gòu)。例如包含產(chǎn)品信息的維度表通常包含將產(chǎn)品分為食品、飲料、非消費(fèi)品等若干類的層次結(jié)構(gòu),這些產(chǎn)品中的每一類進(jìn)一步多次細(xì)分,直到各產(chǎn)品達(dá)到最低級別。在維度表中,每個表都包含獨(dú)立于其他維度表的事實(shí)特性,例如,客戶 維度表包含有關(guān)客戶的數(shù)據(jù)。維度表中的列字段可以將信息分為不同層次的結(jié)構(gòu)級。基于上述描述,若需要在該步驟中進(jìn)行更加細(xì)致的劃分,那么在目標(biāo)表是事實(shí)表的情況下,還可進(jìn)一步確定是事物型事實(shí)表、周期快照事實(shí)表還是累積快照事實(shí)表;如果目標(biāo)表是維表,可進(jìn)一步確定是水平拆分成并列的多張維表,還是垂直拆分成核心和自定義維表,還是不做拆分。在本申請的優(yōu)選實(shí)施例中,處理方式如下:(1)若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述事實(shí)表,根據(jù)所述主表的元數(shù)據(jù)確定所述事實(shí)表的具體類型,所述具體類型包括:事務(wù)型事實(shí)表、周期快照事實(shí)表以及累積快照事實(shí)表;(2)若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述維表,根據(jù)所述主表的元數(shù)據(jù)確定所述維表是否需要進(jìn)行拆分以及拆分方式,所述拆分方式包括:水平拆分以及垂直拆分。S103,根據(jù)所述主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表。由于數(shù)據(jù)建模的目的在于將具有關(guān)聯(lián)的數(shù)據(jù)表進(jìn)行聚合以及關(guān)聯(lián),因此在本申請的優(yōu)選實(shí)施例中,將主要基于元數(shù)據(jù)中的下游使用信息進(jìn)行從表的選擇,具體地,首先根據(jù)所述下游使用信息獲取與所述主表具有關(guān)聯(lián)的數(shù)據(jù)表,隨后獲取所述主表與各所述數(shù)據(jù)表之間的關(guān)聯(lián)信息,并將與預(yù)設(shè)的選擇策略匹配的關(guān)聯(lián)信息對應(yīng)的數(shù)據(jù)表作為所述從表。S104,從所述主表以及所述從表中選擇用于數(shù)據(jù)建模的字段?;赟103中所選的從表,該步驟通過主表以及從表中各個字段的信息選擇需要用于數(shù)據(jù)建模的字段。在本申請的優(yōu)選實(shí)施例中,首先根據(jù)所述元數(shù)據(jù)分別獲取所述主表以及所述從表的字段使用情況信息,隨后再根據(jù)所述字 段使用情況信息選取所述字段。基于數(shù)據(jù)建模中可能需要考慮使用的因素,字段使用情況信息至少應(yīng)包括:字段查詢次數(shù)、過濾條件次數(shù)、關(guān)聯(lián)次數(shù)、聚合統(tǒng)計次數(shù)、空值占比、枚舉值占比。在此基礎(chǔ)上技術(shù)人員可進(jìn)行進(jìn)一步的拓展,這些都屬于本申請的保護(hù)范圍。S105,根據(jù)所述主表、所述從表以及所述字段進(jìn)行數(shù)據(jù)建模,生成所述目標(biāo)表。如之前所述,目標(biāo)表是事實(shí)表還是維表一般根據(jù)主表的業(yè)務(wù)含義確定,舉例來說,假設(shè)主表的業(yè)務(wù)含義是某事件(例如某人在某時間于某地點(diǎn)發(fā)生了什么事件),則目標(biāo)表一般為事實(shí)表;如主表的業(yè)務(wù)含義是某實(shí)體(例如商品、買家等),則目標(biāo)表一般為維表。。相應(yīng)地,確定目標(biāo)表是事實(shí)表之后,那么需要確定目標(biāo)表是事物型事實(shí)表、周期快照事實(shí)表還是累積快照事實(shí)表。而在確定目標(biāo)表是維表之后,那么需要確定是否對主表進(jìn)行拆分;是水平拆分成并列的多張維表,還是垂直拆分成核心和自定義維表,還是不做拆分?;谏鲜銮闆r,在最終進(jìn)行該步驟之前,本申請的優(yōu)選實(shí)施例針對不同的情況提出了相應(yīng)的處理方式,具體如下:(1)當(dāng)所述目標(biāo)表為所述事務(wù)型事實(shí)表時,根據(jù)所述下游使用信息對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),確定生成單事件事實(shí)表或多事件事實(shí)表;(2)當(dāng)所述目標(biāo)表為所述累積快照事實(shí)表,按照所述事務(wù)型事實(shí)表對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),并將當(dāng)前用于所述數(shù)據(jù)建模的其他事實(shí)表的業(yè)務(wù)過程進(jìn)行打標(biāo)。在本申請的具體實(shí)施例中,對于事務(wù)型事實(shí)表,需要對主表的業(yè)務(wù)過程打標(biāo),確定生成單事件事實(shí)表或多事件事實(shí)表。其中業(yè)務(wù)過程一般都是源系 統(tǒng)的自然業(yè)務(wù)活動,比如交易,一般會經(jīng)過如下業(yè)務(wù)過程,下單、支付、交易完成等。業(yè)務(wù)過程打標(biāo)一般依據(jù)的元數(shù)據(jù)是字段下游使用情況,主要是字段的過濾條件次數(shù);業(yè)務(wù)過程字段一般都是時間字段,下游使用時作為過濾條件較多的,則本申請主要關(guān)注的業(yè)務(wù)過程。對于周期快照事實(shí)表,需要對主表的業(yè)務(wù)過程打標(biāo),標(biāo)示此次建模的業(yè)務(wù)過程之后,進(jìn)入下一步的處理。對于累積快照事實(shí)表,首先按照事務(wù)型事實(shí)表對主表進(jìn)行業(yè)務(wù)過程打標(biāo);然后引入本次建模所涉及的其他事實(shí)表,同樣根據(jù)元數(shù)據(jù)對引入的其它事實(shí)表打標(biāo);對所有涉及的業(yè)務(wù)過程打標(biāo)完成后,進(jìn)入下一步建模。(3)當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述水平拆分時,根據(jù)所述主表的字段使用情況信息將所述主表水平拆分為多個維表;(4)當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述垂直拆分時,根據(jù)所述主表與各所述從表之間的關(guān)聯(lián)信息,將業(yè)務(wù)變化高于預(yù)設(shè)閾值的從表與所述主表通過所述數(shù)據(jù)建模生成核心維表,以及將業(yè)務(wù)變化不高于預(yù)設(shè)閾值的從表通過所述數(shù)據(jù)建模生成自定義維表。水平拆分一般依據(jù)的元數(shù)據(jù)是字段下游使用情況,主要是字段的過濾條件次數(shù)。如多個BU共用商品表,不同BU使用時,都對BU字段進(jìn)行過濾,僅關(guān)系自己BU的商品,因此本具體實(shí)施例根據(jù)BU做水平拆分,每個BU拆分得到一張維表。垂直拆分一般依據(jù)的元數(shù)據(jù)是主表、從表的關(guān)聯(lián)情況情況及主從表的產(chǎn)出時間;同時會考慮業(yè)務(wù)的變化情況,將業(yè)務(wù)經(jīng)常變化的從表建模至自定義維表,減少目標(biāo)核心維表的經(jīng)常變更。例如,根據(jù)元數(shù)據(jù),被關(guān)聯(lián)表1、被關(guān)聯(lián)表2、被關(guān)聯(lián)表3和主表關(guān)聯(lián)次數(shù)大于某閾值,該具體實(shí)施例將這三張表和主表一起放到目標(biāo)表;但主表、被關(guān)聯(lián)表1在凌晨1點(diǎn)產(chǎn)出,而被關(guān)聯(lián)表2、被 關(guān)聯(lián)表3在凌晨3點(diǎn)產(chǎn)出,為了讓使用主表和被關(guān)聯(lián)表1的下游盡快使用數(shù)據(jù),本具體實(shí)施例將主表和被關(guān)聯(lián)表1建模得到核心維表,將主表、被關(guān)聯(lián)表2和被關(guān)聯(lián)表3建模得到自定義維表。在通過上述步驟完成數(shù)據(jù)建模前的準(zhǔn)備處理之后,即可通過既有的建模工具進(jìn)行數(shù)據(jù)建模并生成目標(biāo)表。例如國外的ERWin、ER/Studio、PowerDesigner都是可用于操作型系統(tǒng)(OLTP)或分析型系統(tǒng)(OLAP系統(tǒng),數(shù)據(jù)倉庫即是OLAP系統(tǒng))的ER圖設(shè)計工具,以及國內(nèi)的DMDWDesigner數(shù)據(jù)倉庫建模工具等,在能夠完成目標(biāo)表生成目的的前提下,具體的數(shù)據(jù)建模工具的不同并不影響本申請的保護(hù)范圍。為了進(jìn)一步闡述本申請的技術(shù)思想,現(xiàn)結(jié)合圖3及圖4所示的具體的應(yīng)用場景,對本申請的技術(shù)方案進(jìn)行說明。圖3為本申請具體實(shí)施例中的主體模塊,其中包括元數(shù)據(jù)加工模塊以及模型建設(shè)模塊,圖4為圖3中元數(shù)據(jù)加工模塊的進(jìn)一步劃分。其中,表的下游使用情況元數(shù)據(jù)主要包括,查詢次數(shù)、調(diào)度系統(tǒng)查詢次數(shù)、Join次數(shù)、調(diào)度系統(tǒng)Join次數(shù)、聚合次數(shù)、天網(wǎng)聚合次數(shù)、直接下游數(shù)、全部下游數(shù)等。如下表1所示:序號項(xiàng)目名表名查詢次數(shù)天網(wǎng)查詢次數(shù)JOIN次數(shù)直接下游個數(shù)全部下游數(shù)1AA1835.3430.91765571214962BB1343.7160.4127290705013CC1797.4212.71262341173124DD1229.2155.21142061607435EE1113.261.76593144155表1表的Join關(guān)系元數(shù)據(jù)主要包括,Join主表、Join從表、Join類型、Join次數(shù)、Join邏輯等,具體如下表2所示:序號項(xiàng)目名被關(guān)聯(lián)表中文名關(guān)聯(lián)次數(shù)關(guān)聯(lián)邏輯1FF1表10當(dāng)前主表2GG1表214xx.url_item=t1.item_id3HH1表36xx.url=t2.id4II1表44xx.cookieuid=t3.user_id5JJ1表54xx.visitor_id=t4.inf_user_id表2表的字段下游使用情況元數(shù)據(jù)主要包括,表的字段被下游使用的where次數(shù)、select次數(shù)、join次數(shù)、groupby次數(shù)及對應(yīng)的在調(diào)度系統(tǒng)中的次數(shù)等,如下表3所示:表3基于上述元數(shù)據(jù)表,該具體實(shí)施例的具體流程示意圖如圖5所示,主要包括以下步驟:步驟a)選擇主表:可以參考元數(shù)據(jù),選擇沒有中間層表,但下游使用情況較多的ods層表。步驟b)確定目標(biāo)表:對于事實(shí)表,通過業(yè)務(wù)過程打標(biāo),確定生成單事件事實(shí)表或多事件事實(shí)表;對于維表,確定是否進(jìn)行水平拆分或垂直拆分。步驟c)選擇從表:通過元數(shù)據(jù)展示主表的下游使用情況,比如主表和哪些表做了關(guān)聯(lián)、關(guān)聯(lián)次數(shù)、關(guān)聯(lián)類型等;此處以根據(jù)關(guān)聯(lián)次數(shù)大于某個閾值選擇從表進(jìn)行說明。步驟d)選擇主表和從表的字段:通過元數(shù)據(jù)展示主表和從表的字段使用情況和dataprofile。如字段查詢次數(shù)、過濾條件次數(shù)、join次數(shù)、聚合統(tǒng)計次數(shù)、空值占比、枚舉值占比等。該具體實(shí)施例通過這些數(shù)據(jù)指導(dǎo)選取字段。步驟e)生成目標(biāo)模型:目標(biāo)模型主要包括兩部分,第一部分是目標(biāo)模型的ER圖,即目標(biāo)模型由哪些表關(guān)聯(lián)得到并且取了這些表的哪些字段;另一部分是模型的另一種展示,即模型映射關(guān)系,包括目標(biāo)表名稱及注釋、字段名稱及類型、來源表、來源表的字段及類型、轉(zhuǎn)換邏輯等。通過應(yīng)用上述實(shí)施例的方案,融合了數(shù)據(jù)倉庫建模的理論和方法,同時采用元數(shù)據(jù)驅(qū)動的方式,將建模數(shù)據(jù)化,通過數(shù)據(jù)化指導(dǎo)的方式進(jìn)行建模,提供建模的準(zhǔn)確度和效率。為達(dá)到以上技術(shù)目的,本申請還提出了一種數(shù)據(jù)建模設(shè)備,如圖6所示,包括:第一確定模塊610,根據(jù)各來源表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的主表;第二確定模塊620,根據(jù)所述主表的業(yè)務(wù)含義確定通過所述數(shù)據(jù)建模生成的目標(biāo)表的類型;第三確定模塊630,根據(jù)所述主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表;選擇模塊640,從所述主表以及所述從表中選擇用于數(shù)據(jù)建模的字段;建模模塊650,根據(jù)所述主表、所述從表以及所述字段進(jìn)行數(shù)據(jù)建模,生成所述目標(biāo)表。在具體的應(yīng)用場景中,所述第二確定模塊具體用于:若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述事實(shí)表,根據(jù) 所述主表的元數(shù)據(jù)確定所述事實(shí)表的具體類型,所述具體類型包括:事務(wù)型事實(shí)表、周期快照事實(shí)表以及累積快照事實(shí)表;若根據(jù)所述主表的業(yè)務(wù)含義確定所述目標(biāo)表的類型為所述維表,根據(jù)所述主表的元數(shù)據(jù)確定所述維表是否需要進(jìn)行拆分以及拆分方式,所述拆分方式包括:水平拆分以及垂直拆分。在具體的應(yīng)用場景中,所述元數(shù)據(jù)包括下游使用信息,所述第三確定模塊具體用于:根據(jù)所述下游使用信息獲取與所述主表具有關(guān)聯(lián)的數(shù)據(jù)表;獲取所述主表與各所述數(shù)據(jù)表之間的關(guān)聯(lián)信息,并將與預(yù)設(shè)的選擇策略匹配的關(guān)聯(lián)信息對應(yīng)的數(shù)據(jù)表作為所述從表。在具體的應(yīng)用場景中,所述選擇模塊具體用于:根據(jù)所述元數(shù)據(jù)分別獲取所述主表以及所述從表的字段使用情況信息;根據(jù)所述字段使用情況信息選取所述字段;其中,所述字段使用情況信息至少包括:字段查詢次數(shù)、過濾條件次數(shù)、關(guān)聯(lián)次數(shù)、聚合統(tǒng)計次數(shù)、空值占比、枚舉值占比。在具體的應(yīng)用場景中,還包括處理模塊,其中:當(dāng)所述目標(biāo)表為所述事務(wù)型事實(shí)表時,所述處理模塊根據(jù)所述下游使用信息對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),確定生成單事件事實(shí)表或多事件事實(shí)表;當(dāng)所述目標(biāo)表為所述累積快照事實(shí)表,所述處理模塊按照所述事務(wù)型事實(shí)表對所述主表的業(yè)務(wù)過程進(jìn)行打標(biāo),并將當(dāng)前用于所述數(shù)據(jù)建模的其他事實(shí)表的業(yè)務(wù)過程進(jìn)行打標(biāo);當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述水平拆分時,所述處理模塊根據(jù)所述主表的字段使用情況信息將所述主表水平拆分為多個維表;當(dāng)所述目標(biāo)表為所述維表且所述拆分方式為所述垂直拆分時,根據(jù)所述 主表與各所述從表之間的關(guān)聯(lián)信息,所述處理模塊將業(yè)務(wù)變化高于預(yù)設(shè)閾值的從表與所述主表通過所述數(shù)據(jù)建模生成核心維表,以及將業(yè)務(wù)變化不高于預(yù)設(shè)閾值的從表通過所述數(shù)據(jù)建模生成自定義維表。通過應(yīng)用本申請的技術(shù)方案,在根據(jù)各來源表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的主表以及根據(jù)主表的業(yè)務(wù)含義確定通過數(shù)據(jù)建模生成的目標(biāo)表的類型后,根據(jù)主表的元數(shù)據(jù)確定用于數(shù)據(jù)建模的從表,并從主表以及從表中選擇用于數(shù)據(jù)建模的字段,最后根據(jù)主表、從表以及字段進(jìn)行數(shù)據(jù)建模,生成所述目標(biāo)表。從而能夠基于數(shù)據(jù)表的元數(shù)據(jù)準(zhǔn)確地進(jìn)行數(shù)據(jù)建模,保證了數(shù)據(jù)建模結(jié)果的準(zhǔn)確性以及效率。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施場景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實(shí)施場景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本申請所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施場景中的裝置中的模塊可以按照實(shí)施場景描述進(jìn)行分布于實(shí)施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場景的一個或多個裝置中。上述實(shí)施場景的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。上述本申請序號僅僅為了描述,不代表實(shí)施場景的優(yōu)劣。以上公開的僅為本申請的幾個具體實(shí)施場景,但是,本申請并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本申請的保護(hù)范圍。當(dāng)前第1頁1 2 3