国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)倉庫中寬表的更新方法和更新系統(tǒng)的制作方法

      文檔序號:6470079閱讀:2526來源:國知局
      專利名稱:數(shù)據(jù)倉庫中寬表的更新方法和更新系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及數(shù)據(jù)處理技術,尤其涉及數(shù)據(jù)倉庫中寬表的更新方法和更新系統(tǒng)。
      背景技術
      數(shù)據(jù)倉庫是在企業(yè)管理和決策中面向主題的、集成的、與時間相關的、 不可修改的數(shù)據(jù)集合。也就是說,對所有的應用系統(tǒng),例如客戶關系管理
      (CRM, Customer Relationship Management)系統(tǒng)、財務系統(tǒng)等,才安主題進4亍 集成,并記錄整個歷史變化情況。隨著企業(yè)信息化程度的不斷提高,企業(yè)內(nèi) 部積累了大量的業(yè)務數(shù)據(jù),數(shù)據(jù)倉庫用于對這些相互獨立、分散的數(shù)據(jù)進行 統(tǒng)一處理,以滿足企業(yè)高層決策與分析需要。
      參照圖1,其為數(shù)據(jù)倉庫系統(tǒng)的體系結構框圖。整個數(shù)據(jù)倉庫系統(tǒng)是一個 包含四個層次的體系結構,包括數(shù)據(jù)源101、數(shù)據(jù)倉庫102、聯(lián)機分析處理 (OLAP, on-line analytical processing )系統(tǒng)103及前端工具104,其中
      數(shù)據(jù)源101,是數(shù)據(jù)倉庫系統(tǒng)的基礎,通常包括企業(yè)內(nèi)部信息和外部信息。 內(nèi)部信息包括各種業(yè)務處理數(shù)據(jù)和各類文檔數(shù)據(jù),外部信息包括各類法律法 規(guī)、市場信息和竟爭對手的信息等。例如,CRM系統(tǒng),財務系統(tǒng)。
      數(shù)據(jù)倉庫102,是以數(shù)據(jù)表的結構存儲所述數(shù)據(jù)源101的數(shù)據(jù),每個數(shù)據(jù) 表對應一個數(shù)據(jù)對象, 一個數(shù)據(jù)源可以對應多個數(shù)據(jù)對像。
      OLAP系統(tǒng)103,用于對分析需要的數(shù)據(jù)進行有效集成,按多維模型予以 組織,以便進行多角度、多層次的分析,并發(fā)現(xiàn)趨勢。
      前端工具104,主要包括各種報表工具、查詢工具、數(shù)據(jù)分析工具、數(shù)據(jù) 挖掘工具以及各種基于數(shù)據(jù)倉庫的應用開發(fā)工具,實現(xiàn)對凌t據(jù)倉庫102的訪 問。其中,數(shù)據(jù)分析工具主要針對OLAP服務器,報表工具、數(shù)據(jù)挖掘工具 主要針對數(shù)據(jù)倉庫。
      數(shù)據(jù)倉庫102中通常設定一寬表,用于盡可能地保存各種數(shù)據(jù)記錄,以 便用戶通過訪問該寬表就能直接得到想要的數(shù)據(jù)。通常寬表中每一用戶代表一條記錄, 一個字段代表一個屬性。確定用戶和屬性即可獲知其在寬表中的
      準確位置。為了保持數(shù)據(jù)倉庫102中的寬表中數(shù)據(jù)的及時性、準確性,通常 需要定期根據(jù)數(shù)據(jù)源101中的數(shù)據(jù)來更新寬表中的數(shù)據(jù),我們將這個過程稱 之為數(shù)據(jù)倉庫102中寬表數(shù)據(jù)的更新過程?,F(xiàn)有的寬表數(shù)據(jù)的更新過程通常 釆用同類型小批量地增量更新寬表的方式。以下就以一個具體示例來說明現(xiàn) 有技術中如何更新寬表數(shù)據(jù)的。
      以網(wǎng)上交易為例,支付平臺的數(shù)據(jù)源101中實時保存用戶的信息(包括 用戶注冊信息、用戶支付信息、用戶登錄信息等)、交易信息(包括每一筆的 交易信息、每家商戶的交易信息、交易金額等)等。在支付平臺的數(shù)據(jù)倉庫 102中設置有一寬表,該寬表中包括有許多字段,將字段按其屬性劃分,可以 分為用戶屬性、賬戶屬性、產(chǎn)品交易屬性、各種指標屬性等。若支付平臺設 置以天為周期來依據(jù)數(shù)據(jù)源101中的新增數(shù)據(jù)更新寬表中對應數(shù)據(jù),則現(xiàn)有 技術中,是在每天固定設定的時間上直接將數(shù)據(jù)源101中的數(shù)據(jù)更新至寬表 中,由于數(shù)據(jù)較多,字段又多,多釆用同類型小批量地增量更新該寬表。比 如,當天新開設的用戶信息增添到寬表的對應位置中,當天某種商品的交易 信息增添至對應位置,諸如此類,通過上述方式來更新寬表。
      上述更新寬表數(shù)據(jù)的方法存在以下缺陷
      首先,寬表是整個數(shù)據(jù)倉庫中最重要的基礎表,以同類型小批量增量更 新寬表的方式更新時間長,特別是在更新的這段時間內(nèi)基礎表處于不穩(wěn)定狀 態(tài),上層程序若在這段時間訪問寬表,容易造成訪問到的數(shù)據(jù)出錯,或者容 易造成寬表的數(shù)據(jù)錯誤。也就是說,現(xiàn)有的更新方式存在寬表在一段時間內(nèi) 不穩(wěn)定,容易出現(xiàn)更新數(shù)據(jù)或讀取數(shù)據(jù)錯誤的技術問題。
      其次,更新寬表中的數(shù)據(jù)時,先將數(shù)據(jù)中的數(shù)值置零,然后再小批量地 更新,對于需要每日累計加總的數(shù)據(jù),往往直接統(tǒng)計所有的數(shù)據(jù)數(shù)值。也就 是說,現(xiàn)有的更新寬表中數(shù)據(jù)數(shù)值時,為了保證其準確性,通常的做法是將 現(xiàn)有數(shù)據(jù)又重新進行計算,比如,統(tǒng)計A商品到目前為止的銷售量,先將寬 表中該銷售量字段置0,然后將A商品到目前為止的銷售量重新進行相加計 算,隨后將計算值放置到寬表對應的字段中,這種方式每次都需要重新統(tǒng)計所有的數(shù)據(jù),處理器的消耗非常大。
      再次,對于需要獲得用戶首次交易時間上,往往是將每日的首次交易時
      間放置到一個中間表里,然后通過min()函數(shù)獲得用戶的首次交易時間;對于 需要獲得用戶最近一次交易時間上,往往是將每日的最后 一次交易時間放到 一個中間表里,然后通過max()函數(shù)獲得用戶的最近一次交易時間;這種做法 往往是對每一個需要處理的時間設計一張中間表,中間表也會累計得越來越 耗費空間,特別不利于維護。
      最后,對于寬表的數(shù)據(jù)恢復方式上,通常是重新對海量數(shù)據(jù)進行匯總統(tǒng) 計,再對其進行覆蓋式地恢復,其恢復成本^f艮高。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種數(shù)據(jù)倉庫中寬表的更新方法和更新系統(tǒng),以 解決現(xiàn)有技術中更新寬表持續(xù)時間長,更新時容易造成寬表不穩(wěn)定的技術問 題。
      為了達到上述目的,本發(fā)明提供了一種數(shù)據(jù)倉庫中寬表的更新方法,用 于根據(jù)數(shù)據(jù)源中的數(shù)據(jù)定期更新數(shù)據(jù)倉庫中寬表的當前數(shù)據(jù),包括以下步驟
      (1) 將寬表中的所有字段分成若干份,為每一份字段設置一子表;
      (2) 每日完成寬表的更新,每一次更新步驟為
      (2-l)利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保存每一子 表中的數(shù)據(jù);
      (2-2)將每一子表中的數(shù)據(jù)匯集,根據(jù)字段統(tǒng)一對寬表中的數(shù)據(jù)記錄進行集 中更新。
      步驟(l)還包括預先設定前一 日寬表備份數(shù)據(jù)存儲單元和前兩日寬表備 份數(shù)據(jù)存儲單元;步驟(2)寬表更新之前還包括將前一日寬表備份數(shù)據(jù)存儲 單元中的數(shù)據(jù)覆蓋存儲至前兩日寬表備份數(shù)據(jù)存儲單元,將當前寬表中的數(shù) 據(jù)覆蓋存儲至前一 日寬表備份數(shù)據(jù)存儲單元。當需要對寬表中所有當日數(shù)據(jù) 進行恢復時,從前一日寬表備份數(shù)據(jù)單元中獲得前一日寬表所有數(shù)據(jù);根據(jù) 前一 日寬表所有數(shù)據(jù)對寬表所有當日數(shù)據(jù)進行更新步驟將今日已更新的每
      6一子表中的數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。
      步驟(2-2)進一步還包括對寬表中需每日累計加總的記錄數(shù)據(jù)的更新步 驟將寬表中對應字段保存的累計記錄數(shù)據(jù),加上當日統(tǒng)計的數(shù)據(jù),獲得累 積至當日的數(shù)據(jù),并將該數(shù)據(jù)更新至寬表對應字段的記錄數(shù)據(jù)中。
      步驟(l)劃分的字段中包括用戶的首次交易時間,則將該字段設置一子表; 步驟(2-2)進一步包括判斷該用戶當日有沒有發(fā)生交易,如果未發(fā)生交易, 則保留該字段中的記錄數(shù)據(jù),如果發(fā)生交易,則進一步判斷該對應字段中的 記錄數(shù)據(jù)是否為空,如果為空,則用當日的首次交易時間更新該用戶當日的 首次交易時間,如果不為空,則不進行更新。
      步驟(l)劃分的字段中包括處理用戶的最近一次交易時間,則該字段設置 一子表;步驟(2-2)進一步包括先判斷該用戶當日有沒有發(fā)生交易,如果沒 有發(fā)生交易,則保留該用戶記錄對應字段中的數(shù)據(jù),如果當日發(fā)生了交易, 則用當日的最后一交易時間更新該用戶記錄對應字段中的數(shù)據(jù)。
      當需對寬表中每日累計加總的記錄數(shù)據(jù)進行恢復時,將當日寬表中對應 字段中的記錄數(shù)據(jù)減去當日已更新的子表中的對應字段的記錄數(shù)據(jù),得到累 積至前一日的數(shù)據(jù);
      完成對每日累計加總數(shù)據(jù)的更新步驟將今日已更新的每一子表中對應 字段數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。
      一種數(shù)據(jù)倉庫中寬表的更新系統(tǒng),包括
      數(shù)據(jù)庫服務器至少包括數(shù)據(jù)源和數(shù)據(jù)倉庫,所述數(shù)據(jù)源用于實時存儲 用戶進行商務處理的數(shù)據(jù);數(shù)據(jù)倉庫用于存儲包括寬表當前數(shù)據(jù)、子表數(shù)據(jù)、 前一 日寬表數(shù)據(jù)、前兩日寬表數(shù)據(jù)在內(nèi)的數(shù)據(jù);
      處理器至少包括子表更新單元和寬表更新單元,所述子表更新單元用 于利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保存每一子表中的 數(shù)據(jù);所述寬表更新單元用于并將每一子表中的數(shù)據(jù)匯集,統(tǒng)一對寬表中對 應字段的當前數(shù)據(jù)進行集中更新。
      與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點第一,本發(fā)明在進行寬表當前數(shù)據(jù)更新時,先利用實時保存數(shù)據(jù)交易信息 的數(shù)據(jù)源來每日定期更新并保存每一子表中的數(shù)據(jù);然后將每一子表中的數(shù) 據(jù)匯集,統(tǒng)一對寬表中對應字段的當前數(shù)據(jù)進行集中更新。本發(fā)明是通過軟 件來實現(xiàn)上述功能的,也就是說,先分模塊用小程序?qū)γ恳蛔颖磉M行更新, 然后將小模塊的數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。這種處理模式不僅增 強了程序的可讀性,而且這種寬表處理方式直觀,可讀性強,維護的成本低, CPU消耗成本相對較低。
      第二,這種寬表處理方式為寬表的構建奠定了一個可以擴展的基礎,構 架清晰,讓人一目了然。也就是說,當對寬表需要增設字段時,按照本發(fā)明 的處理模式,是具有很強的擴展性的,只需要對程序中相應的小程序進行更 新就行,不需要重新編寫更新程序。
      第三,每日保留截止到前一日的總數(shù)據(jù),只將當日的數(shù)據(jù)統(tǒng)計出來,然 后用累計至前一日的數(shù)據(jù)加上當日統(tǒng)計的數(shù)據(jù)就獲得了累積至當日的數(shù)據(jù)。 這種處理方式克服了每次數(shù)據(jù)統(tǒng)計時需要將所有數(shù)據(jù)進行重新計算,降低了
      CPU占用時間,提高了 CPU的處理效率。
      第四,對于處理用戶的首次交易時間時,先判斷用戶當日有沒有發(fā)生交 易,如果沒有發(fā)生交易,則保留前一日的首次交易時間(保留至前一日的首 次交易時間可能為空);如果發(fā)生了交易,則判斷保留至前一日的首次交易時 間是否為空,如果為空,則用當日的首次交易時間進行更新,如果不為空, 則不進行更新。這種處理方式能夠避免現(xiàn)有技術中每需要處理時間即設計一 張中間表,降低了存儲空間占用的空間,更有利于對數(shù)據(jù)倉庫的維護。
      第五,對于處理用戶的最近一次交易時間時,先判斷用戶當日有沒有發(fā) 生交易,如果沒有發(fā)生交易,則保留前一日的最近一次交易時間(保留至前 一日的最近一次交易時間可能為空);如果當日發(fā)生了交易,則用當日的最近 交易時間進行更新。同種,這種處理方式能夠避免現(xiàn)有技術中每需要處理時 間即設計一張中間表,降低了存儲空間占用的空間,更有利于對數(shù)據(jù)倉庫的 維護。
      第六,在需要對當日數(shù)據(jù)進行恢復時,直接調(diào)用前一日的寬表,然后重新執(zhí)行當日的更新步驟(即刷新程序),則更為方便快捷地完成數(shù)據(jù)恢復。
      第七、對于局部恢復數(shù)字型數(shù)據(jù)時,新技術的做法是用累計至今日的匯 總統(tǒng)計數(shù)據(jù)減去今日統(tǒng)計出來的數(shù)字數(shù)據(jù),得到累積至前一日的數(shù)據(jù),然后 直接重新運行今日的刷新程序,大大降低了恢復的成本。


      圖1為現(xiàn)有的數(shù)據(jù)倉庫系統(tǒng)的體系結構框圖; 圖2為本發(fā)明凄t據(jù)倉庫中寬表的更新系統(tǒng)的結構示意圖; 圖3為本發(fā)明倉庫中寬表的更新方法的流程示意圖。
      具體實施例方式
      請參閱圖2,其為本發(fā)明數(shù)據(jù)倉庫中寬表的更新系統(tǒng)的結構示意圖。它包 括數(shù)據(jù)庫服務器11和處理器12,其中
      數(shù)據(jù)庫服務器11:至少包括數(shù)據(jù)源111和數(shù)據(jù)倉庫112,數(shù)據(jù)源111用于 實時存儲用戶進行商務處理的數(shù)據(jù);數(shù)據(jù)倉庫112用于存儲包括寬表當前數(shù) 據(jù)、子表數(shù)據(jù)、前一日寬表數(shù)據(jù)、前兩日寬表數(shù)據(jù)在內(nèi)的數(shù)據(jù)。
      處理器12:至少包括子表更新單元121和寬表更新單元122,所述子表 更新單元121用于利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保 存每一子表中的數(shù)據(jù);所述寬表更新單元122用于并將每一子表中的數(shù)據(jù)匯 集,統(tǒng)一對寬表中對應字段的當前數(shù)據(jù)進行集中更新。
      通常情況下,本發(fā)明無需對現(xiàn)有的硬件做改動,只需要在其上做編程, 通過軟件來完成更新功能。
      請參閱圖3,其為本發(fā)明數(shù)據(jù)倉庫中寬表的更新方法的流程圖。它用于根 據(jù)數(shù)據(jù)源中的數(shù)據(jù)定期更新數(shù)據(jù)倉庫中寬表的當前數(shù)據(jù)。數(shù)據(jù)倉庫中通常設 定該寬表,用于盡可能地保存各種數(shù)據(jù)記錄,以便用戶通過訪問該寬表就能 直接得到想要的數(shù)據(jù)。在本實施例中,每個用戶在該寬表中有一條記錄,表 明該用戶的交易信息等。商戶在本實例中也是作為一個用戶,即用戶作為賣 家的情況。后續(xù)的數(shù)據(jù)統(tǒng)計可以通過訪問該寬表中對應的記錄獲知規(guī)定用戶 的交易信息,并可對寬表中的數(shù)據(jù)進行統(tǒng)計來獲得總體的一些交易信息。由
      9于數(shù)據(jù)源中實時在更新數(shù)據(jù),其包括交易數(shù)據(jù)及用戶注冊數(shù)據(jù)等,因此需要 定期對該寬表進行更新。
      數(shù)據(jù)更新的方法包括以下步驟
      S110:將寬表中的所有字段分成若干份,為每一份字段設置一子表。
      本發(fā)明可以將寬表的字段預先分成若干份,再將每一份設置成一子表。 比如,可以按照屬性進行分,組成用戶基礎表l (如包括用戶的注冊時間、用 戶的注冊時間分段、用戶的注冊來源網(wǎng)站、用戶的激活狀態(tài)、用戶的注冊方 式(手機,email)、用戶的生日等字段)、用戶基礎表2 (包括用戶今日登陸網(wǎng)
      站時間字段)、用戶基礎表3 (包括用戶今日訪問時間).....指標基礎表1 (包
      括今日賬戶資金變動時間字段)、指標基礎表2 (今日的交易付款方式、交易 來源)、指標基礎表3….指標基礎表N、交易基礎表(包括作為買家的用戶今 曰成功購買的總交易金額和筆數(shù)、用戶今日成功提現(xiàn)的總次數(shù)等字段)。
      一般是按照數(shù)據(jù)源的情況來設定數(shù)據(jù)存儲的路線,以便能將數(shù)據(jù)源中的 數(shù)據(jù)存儲到各個子表中。對寬表中所有字段的劃分可以按照編程人員的任何 考量來設定。
      比如,寬表中包括以下字段
      1.1用戶的基礎信息
      l丄l用戶的注冊時間 l丄2用戶的注冊時間分段、 l丄3用戶的注冊來源網(wǎng)站
      U.4用戶的激活狀態(tài)
      l丄5用戶的激活時間
      l丄6用戶的激活時間分段
      l丄7用戶的注冊方式(手機,email)
      l丄8用戶的生曰
      1.1.9用戶的最近一次登陸網(wǎng)站時間 1丄10用戶的性別
      等等;
      1.2 用戶使用網(wǎng)絡產(chǎn)品的信息
      1.2.1用戶的網(wǎng)絡安全認證狀態(tài)
      1.2.2用戶的通過網(wǎng)絡安全認證的時間
      1.2.3用戶的綁定數(shù)字證書狀態(tài)
      1.2.4用戶的綁定數(shù)字證書的時間
      1.2.5用戶的綁定手機狀態(tài)
      1.2.6用戶的綁定手機時間
      1.2.7用戶簽約支付銀行卡的狀態(tài)
      1.2.8用戶簽約支付銀行卡的時間
      1.2.9用戶簽約支付銀行卡的銀行類別1.2.10用戶使用支付銀行卡的次數(shù) 1.2.11用戶成功使用簽約支付銀行卡的金額 1.2.12用戶網(wǎng)絡帳戶當前積分余額 等等;
      1.3 用戶的網(wǎng)上資金帳戶的資金信息
      1.3.1首次賬戶資金變動時間
      1.3.2最后一次帳戶資金變動時間
      1.3.3首次賬戶資金變動類型(充值,收款)
      1.3.4最近一次成功充值時間
      1.3.5首次付款的交易金額
      1.3.6最近一次成功付款的時間
      1.3.7最近一次成功提現(xiàn)時間
      1.3.8用戶成功提現(xiàn)的總次數(shù)
      1.3.9用戶帳戶資金變動總次數(shù)楚楚.
      寸寸;
      1.4 用戶的網(wǎng)上購物信息
      1.4.1作為買家首次創(chuàng)建交易的時間 1.4.2作為買家首次創(chuàng)建交易的金額 1.4.3作為買家首次創(chuàng)建交易的交易來源 1.4.4作為買家首次創(chuàng)建交易的交易類型 1.4.5作為買家首次成功交易的時間 1.4.6作為買家首次成功交易的金額 1.4.7作為買家首次成功交易的交易來源 1.4.8作為買家首次成功交易的交易類型 1.4.9作為買家最近一次創(chuàng)建交易的時間 1.4.10作為買家最近一次創(chuàng)建交易的金額 1.4.11作為買家最近一次成功交易的時間 1.4.12作為買家最近一次成功交易的交易來源 1.4.13作為買家最近一次成功交易的交易類型 1.4.14作為買家發(fā)起購買的總交易金額和筆數(shù) 1.4.15作為買家成功購買的總交易金額和筆數(shù)
      在上述實例中,申請人可以按照標題分成四個子表。事實上,申請
      人分成子表的個數(shù)及如何來劃分字段份,并不影響本發(fā)明的發(fā)明核心。
      S120:每日完成寬表的更新,每一次更新步驟為
      S210:利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保存每一子 表中的數(shù)據(jù)。
      存入對應的子表中。數(shù)據(jù)源中每日新增的用戶,在各個子表中增添該些用戶 信息記錄。數(shù)據(jù)源中原有的用戶進行了交易,則將今天的交易信息統(tǒng)計后更 新子表中對應字段中的數(shù)據(jù)。
      對子表中的記錄數(shù)據(jù)的更新預先設定更新程序,通常包括以下幾種更新方
      式添加方式數(shù)據(jù)源中新增的用戶數(shù)據(jù),直接增加到各個子表中的數(shù)據(jù)記錄。
      統(tǒng)計方式將數(shù)據(jù)源中的新增數(shù)據(jù)進行計算后,更新至各個子表中對應字 段的數(shù)據(jù)記錄。比如,數(shù)據(jù)源中該用戶作為買家發(fā)生了交易記錄,則將今曰 的交易金額進行統(tǒng)計,后再修改如交易基礎表中作為買家成功購買的今曰總 交易金額和筆數(shù)字段中的記錄。
      S220:將每一子表中的數(shù)據(jù)匯集,統(tǒng)一對寬表中對應字段的當前數(shù)據(jù)進行 集中更新。
      將更新數(shù)據(jù)的操作方式預先設定一程序來實現(xiàn),如
      merge into pub. PAY—MKT—USEI!—INFO—DIMT0 a using TMP—MKT—USER—INFG b on (a. userid = b. userid) when matched then
      EMAIL
      既RE(;ISTER REGISTER—印OM REGISTER—METHOD = n、
      (;mt—卜二齒,ed gmt_last—login GMT—buy—戸irst—cre八t「' BUY—F工RgT—CKEXTE—TYPE buy—first—create—PKOM buy—nRST—CREATtl—AMT GMT—BUY—liST—CREATE GMT—BliY一MRS亍—PAY BUY—FIRgT—PAY—TYPE BUY—FIRST—PAY—FROM BUY—FIRST—PAY—細、 GMT—BUY—IJST—PAY BUY—LAS亍一PAY一AMT GMT—ACCOST一戸IRST CHANGE ACCENT—卩I RgT—CH/^GE—TYPE gmt—las亍一witi函aw GMT—LAST—DEPOSIT gmt—account—last—change FIR豆T—EBANK GMT—CERTIFY (;MT—birthday ot亍一國D一STATUS BUY—§—CNT buy—S—amt
      buy—fp—cnt buy—fp—amt buy一s—Fay—cnt buy—s—pay—amt buy_ff—pay—cnt buy—fp—pay—amt buy—s—5k—crt buy—s—ok—amt buy—f卩—or—cnt buy—fp—ok—amt dep5si亍一or—cnt deposit—ok—amt withdraw—olcnt
      epost—cn亍 epost—amt account—change—cnt IS—FIRS亍—USE—KT
      city—ID
      appl y—card—ban t; ype gmt—apply—card sign—card—bank—status si gn—card—bank—type gmt—sign—card gmL—active—card
      =nv.L(b. name, a. NAME), =nvl.(b. EMAIL, a. EMAIL), =nvl (b. GMT—KE(;JSTEK, a. GMT—REGISTER), =nvl(a甲REGISTER—FROM, h. R豆GISTER一FROM), 1 (a. REGISTERJlETll0D, b. REGISTER—METHOD), =nvl(b. ENABT上D一S'rATUS, a. ENABLED—STATUS), =nvl (b. (;MT—CNASlKI)' a. GMT—C順BIJ3Dy, =nvl(b. GMT—LAST—LOGIN, a. (',M'I'—LAST—LOG IN), =nvl (a. GMT—BUY—l,'IRST_CI(E/VTE, b. GM亍一BUY—FIRST—CI化ATt), =nvl (a. BUY—FIRST—CRE^r卜:—TYPE, b. BUY—FIRST—CREATE—TYPE), =nvl (a. BUY」'、IRST—Cl!EATf;—[ ROM, b. BUY—FIRST—CREATE_FROM), =nvl(a. BUY—FIRST—CREATELAMT, b. BKYj^IRST—5REATrL^IT), =nv 1 (b. GMT—BUY—lIST_CI E^T:, a. GM乙B[JY一LAS亍—CREAT丘), =nvl (a. GMT—buy—FIRS亍J)AY, b. GMT—BUY—F了RST JAY), =nvl(a. buy—firj^t—payjtypk' bURST—pXy—type), =nvl (a. BLIY_FfRST—PAY—F如M, b. BUY—FWST—PAY—l',RO'M), =nvl(a. BUY—FIRST—PAY_AMT, h. BUY—戸H:ST—FAY—AMT), =nv 1 (b. GMT—BUY—IJSTJ)ay, a. GMT—BfJY—LAS亍—P/\7), =nvl(b. buy—LAS亍—PAY_AMT, a. bu —LA^T—PA —AMT), =nv丄(a. GMT—ACCOST—fmS丁—UMN(;巨,b. GSfl」A5c0lWr—FIRST—CHANGE), =nvl (a. ACd]unt_"R5T—cii/\i^(;lLTYPE, b.八5cO訓'J:TrST—ciiange」l'Yre), =nvl (b. GMT—LAS亍—WITHDRAW' a. fJMT—LAST—WITHDRAW), 二 nvl(b. GMT—LAST—DEPOSIT, a. (;MT—[AST JEPOSIT), =nvl(b. gmt—account—last—change, a. gmt—account—last—change), =nvl(a. FIR^T—EBANK, b, F^RST—「細K), =nvl (b. GMT—CERTIFY, a. GMT—CE豆TIFY), =nvl (b. GMT—B工in'HDAY, a. (;M亍J3IRTHDAY), =nv] (b.CJ]R亍—BIND—STATUS, a. CERT—B1ND_STATUS), =twl.(a. buyj—cnt, 0) + nv丄(b. bu —S一c5t, 0), =nvl(a. BUY—S一AMT, 0) + nv] (b. BUY一S—AMT, 0), =nvl(a. BUY—F卩—CNT, ()) + nv I (b. bu7—卩P一CNT, O)' =nvl (a. BUY—FP—AMT, 0) + nvl (b. BUYJ P_AMT, 0>, =nv] (a. BUY—S—PAY—CNT, 0) + nvl(b. SjY—S—PAY—CNT' 0), =nvl(a. BUY—'S—PAY—AMT, ()) + nvl (b. BUY—S—PAY—AM丁, 0), =nvl(a. BUYJ^—PAV—ont' 0) + nvl(b. BuV—Fp—I^Y—cnt, 0), =nvl(a. BUY—卜,P—PAY_AMT, 0) + nvl (b. BUY—FP—PAY—AMT, 0), =nvl(a.BUY—S—5K_CRT, 0) + nvl (b. BUY—S—ok—CNT' 0), 二 nv丄(a. BUY—S—OK—AMT, 0) + nvl(b. BUY—S—OK—AMT' 0), =nvl(a. BUY—F卩一OR—CNT, 0) + nvl(b. BUY—Fl3—5K—CNT, 0), =nvl(a. BUY—FP—OK—AMT' 0) + nvl(b. BUY—FP—OK—AMT, 0), 二 nvL(a. DEP5Sff—or—CNT, 0) + nv(b. DEPOSIT—5k—CNT, 0), =nvl (a. DEPOSIT—OK—AMT, 0) + nv]. (b. DEPOS〖T—OK—AMT, 0), 二 nvl(a. withdraw—OR—CNT, 0) + nvl(b. WITHDRAW—5k—CNT, O)' =nvl(a. EPOST—CN亍,5)十nvl(b. EPOST—CNT, 0), =nvl(a. ETOST_AM'I', 0) + nvl(b. EPOST—AMT, 0), nv(a. account—change—cnt, 0) + nvl(b. account—change—cnt, 0), =nvl(a. IS—"JHRST—U^E—KT,b. IS—FIRST—USE—KT), — 二 nvl(b. MO&LE—PHONE, a. MOBIti—PHON巨), =nW (b. BANK—'liPE, a. BANK—'ITPEL =nvl(b. CITY—113, a. CI'I'Y—
      =nv.(b. apply—card—bank—type, a. apply—card—bank—type)' =nvl(b. gmt—apply—card, a. gmt—apply—card), =nv] (b. 'sign—card_bank—-status, a. sign—card—bank—status), =nvl(b. sign—card—bank—type, a. sign—card—bank—type), =nvl (b. gmt—'s丄gn—card, a. gml_sign—card), =nvl(h. gmt—active—card, a. gmt—actjve—card),
      12—use_card—last use_s—card—cnt use—s—card一amt bind—mobile—status trad£—M0BIli_PH0NE gender
      YAHOO—CP—TEMPLATE—ID update—dXte matched then
      nvl(b. ap—account_balance, a. ap—account—balance), nvl(a. gmt—use_card—first, b. gmt—use—card—first), nvl(b. gmt—use—card—last, a. gmt_use_card—last), nvl(a. use—s—card—cnt, 0) + nvl(b. use_s—card—cnt, 0), nvl(a, use—s_card—amt, 0) + nvl(b. use—s—card_amt,0), nvl(b. bind—mobile—status, a. bind—mobile—status), nvl(b. TRAD巨—M0BIli—PH0NE, a. TRADf—MOBIli—PHONE), nvl (b. gender, a. gender),
      =nvl (a.YAHOO—CP—TEMPLATE—ID, b. YAH00_CP—TEMPLATE—ID), sysdEite
      when not
      INSERT (
      a. USERID, a. NAME, a. GMT隨STER, s
      l EMAIL, REGISTER—FliOM,
      REGISTER—METHOD, a. ENABLED—STATUS, GMT—ENABLED, a. GMT—LAST—LOGIN, a. GMT—BUY—FIRST—CREATE, a. BUY—FIRST—CREATE—TYPE, a. BUY—F:IRST一CJ^八T「—FROM, a. BUY—FIRST—CREATE—AMT, a, GMT—BUY—LXST—CREATE, a. GMT—BUY—FII^T—PAY, a. BUY—FIRST—PAY」r7PB, a. BUY—FIRgT—pav—from, a. BUY—FlRST—pay jmt, a. gmt—5UY—last—pXy, a. BUY—LAST—卩AY—冗MT, a. GMT—ACCOUNT—FII^T—CHANGE, a. ACCOUNT—FIRST—CHANGE—TYPE, a. GMT—LAST—WITHDRAW, a. GM亍—LAST—DEPOSIT, a. gmt—account—last—change' a. FlRST一 a. GMT—CERTIFY, a. GMT—BIRTHMy, a. CERT—BIND—STA亍US, a. BUY—S—CNT, a. BUY—S—AMT, a. BUY—FP—CN亍, a. BUY—F戸—AMT, a. BU —g—PAY—CNT, a. BUY—S—PAY—AMT, a. BUY—FP—PAY—CNT, a. BlJY—F —PAY—AMT, a.百UY—5—OK—CNT, a. BUY_S—5k—AiJT, a. BUY—FF—OR—CN亍,a. BUY—FP—OR—A&r, a. DEP5slT—CNT, a. DiPO&T—OK—AMT, a. W丄'「fiDR^—OK—CNT,
      a. epost—cNt, a. epost—amt, a. account—change—en t, a. l5」7irst—us'i;kt, a. mobile—pho
      a. BANK—TYPE, a. CITY—ID, a. apply—card—bank—type,
      a. gmt—apply—card, a. sign—card_bank—status, a. sign—card—bank一type,
      a. gmt_sign—card, a. gmt—active—card, a. ap一account一balance'
      a. gmt—use—card—first, a. gmt—use_carcJ—last, a. use—s_card—cnt,
      a. usc二s—c^rd—amt' a. bind—mobile—stags' a. TRA犯Jl5B丄le—卩HON卜:,
      a. gen^fer,a. Y^HOO—CP—TEMP[ATE—ID, a. INS—DATE, a. UPDATE—DATE) V八L鵬(
      b. USER1D, b. NAME, b. EMAIL,
      b. GMT—REGISTER, b. REGISTER—FROM, b. REGISTER—METHOD, b. ENABLED—STATUS,
      b. GMT—ENABLED, b. GMTJJVST—[OGIN, b. GMT—BUY—FIRST_CREATE,
      b. BUY—FIRST—CREAT卜:」r7PE, BUY_F.l.RST_Ci^:A'「iLFROM, b. BUY_FIRST—CREATE—AMT,
      b. GMT—BUY_iIST—CREXtE, b. GMT—BUY—FII^T—PAY, b. BUY—F] RST—PAY一T PE,
      b. BUY—Fli^t—PA —FROM, b. BUY—卩IRS亍—PAY—冗MT, b. GMT—BUY—LASt_I^Y,
      b. BUY—LAST—F/W一^1t, b. GMT—AMOUNT—F_LI^T_CHANGE, 5. ACCOUNT—FlKST—CllANGt:一TYPE,
      h. GMT—LASTJVI1、fiDKAW, b. GM亍—LAST—D巨POS丄T, b. gmt—account—last—change, b. FIRST—
      b. GMT—CERT了FY, b. GMT—BIRTHDAY, CERT—BIND—STA亍US,
      h. BUY一S—CNT, b. BUY一S—AMT, b. BUY—Fl)—CN亍,
      h. BUY—F卩—AMT, b. BU —PAY—CNT, BUY—S—PAY—履T,
      b. BUY—FP二PAY—CNT, b. B[iy—F卩—PAY—AMT, 百UY—5—0k_CNT,
      b. BUY一s—5K—A^T, b. BUY—FF—OR—cn亍,b. BUY一FP—OR—八5t'
      b. DI;P5s了Tjk一CNT, b. D反P05lTJ)K—AMT, h. WITHDRAW—OK—CNT,
      b. EPOST—c5t, b. EPOSTJVMT, b. account—change—cnt' iS—FIRST—USR—KT, b. MOBILE—PHO b. BANK—亍YPR, b. CITY—15, b. apply—card—bank—type,
      b. gmt—apply—card, b. sign—card—bank—status, b. ,sjgn—card—bank—type, b. gmt—sign—card, b. gmt—active—card, b.鄰一account一balance, b. gmt—use—card—first, R gmt—use—card一last, b. use—s—card—cnt, b. use:s一c:rd—aiiit, b. bind—mobile—status, b. TRADE—m5b化E一PH0NE, b. gen3e7, b. Y5H00_CP—TEMP[ATE—ID, sy'sdate, sysdate):
      以用戶為處理單元,以字段為依據(jù)來及時更新寬表中的記錄。 本實例主要是按照以下的更新規(guī)定進行更新。
      字段的類型是字符型的,比如,用戶的注冊來源網(wǎng)站、用戶的激活狀態(tài)、 用戶的注冊方式(手機,email)、用戶的生日等字段,通常是該用戶是新增的 會員時,將子表中的數(shù)據(jù)直接依次添加到寬表對應字段下的記錄中。
      字段類型是時間型的, 一部分是按照字段直接將子表中的數(shù)值進行添加, 還有一些需要按照預先設定的程序進行添加,比如
      步驟SllO中劃分的字段中包括處理用戶的最近一次交易時間,則該字段 設置一子表;步驟S220進一步包括先判斷該用戶當日有沒有發(fā)生交易,如果沒有發(fā)生交易,則保留該字段中的數(shù)據(jù),如果當日發(fā)生了交易,則用當日的最后一交易時間更新該字段中的數(shù)據(jù)。再比如
      步驟S110中劃分的字段中包括用戶的首次交易時間,則該字段設置一子
      表;
      步驟S220進一步包括判斷該用戶當日有沒有發(fā)生交易,如果未發(fā)生交易,則保留該字段中的數(shù)據(jù),如果發(fā)生交易,則進一步判斷該字段中的數(shù)據(jù)是否為空,如果為空,則用當日的首次交易時間進行更新,如果不為空,則不進行更新。
      字段類型是數(shù)值型的,特別是需要對數(shù)值型進行統(tǒng)計時,對寬表中每日累計加總數(shù)據(jù)的更新步驟將寬表中對應字段保存的累計數(shù)據(jù),加上當曰統(tǒng)計的數(shù)據(jù),獲得累積至當日的數(shù)據(jù),并將該數(shù)據(jù)更新至寬表對應字段。
      預先設定前一日寬表備份數(shù)據(jù)存儲單元和前兩日寬表備份數(shù)據(jù)存儲單元;步驟S210寬表更新之前還包括將前一 日寬表備份數(shù)據(jù)存儲單元中的數(shù)據(jù)覆蓋存儲至前兩日寬表備份數(shù)據(jù)存儲單元,將當前寬表中的數(shù)據(jù)復制覆蓋至前一 日寬表備份數(shù)據(jù)存儲單元。
      當需要對寬表當日數(shù)據(jù)進行恢復時,從前一日寬表備份數(shù)據(jù)單元中獲得前一日寬表數(shù)據(jù);
      根據(jù)前一 日寬表數(shù)據(jù)對寬表當日數(shù)據(jù)進行更新步驟將今日已更新的每一子表中的數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。
      當需要對每日累計加總數(shù)據(jù)的恢復時,將當日寬表中對應字段中的數(shù)據(jù)減去當日已更新的子表中的對應字段的數(shù)據(jù),得到累積至前一日的數(shù)據(jù);
      完成對每日累計加總數(shù)據(jù)的更新步驟將今日已更新的每一子表中對應字段數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。
      以上公開的僅為本發(fā)明的幾個具體實施例,但本發(fā)明并非局限于此,任何本領域的技術人員能思之的變化,都應落在本發(fā)明的保護范圍內(nèi)。
      權利要求
      1、一種數(shù)據(jù)倉庫中寬表的更新方法,用于根據(jù)數(shù)據(jù)源中的數(shù)據(jù)定期更新數(shù)據(jù)倉庫中寬表的當前數(shù)據(jù),其特征在于,包括以下步驟(1)將寬表中的所有字段分成若干份,為每一份字段設置一子表;(2)每日完成寬表的更新,每一次更新步驟為(2-1)利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保存每一子表中的數(shù)據(jù);(2-2)將每一子表中的數(shù)據(jù)匯集,根據(jù)字段統(tǒng)一對寬表中的數(shù)據(jù)記錄進行集中更新。
      2、如權利要求1所述的更新方法,其特征在于,步驟(l)還包括預先設定前一日寬表備份數(shù)據(jù)存儲單元和前兩日寬表備份 數(shù)據(jù)存儲單元;步驟(2)寬表更新之前還包括將前一 日寬表備份數(shù)據(jù)存儲單元中的數(shù)據(jù) 覆蓋存儲至前兩日寬表備份數(shù)據(jù)存儲單元,將當前寬表中的數(shù)據(jù)覆蓋存儲至 前一 日寬表備份數(shù)據(jù)存儲單元。
      3、 如權利要求1或2所述的更新方法,其特征在于,步驟(2-2)進一步還 包括對寬表中需每日累計加總的記錄數(shù)據(jù)的更新步驟將寬表中對應字段保 存的累計記錄數(shù)據(jù),加上當日統(tǒng)計的數(shù)據(jù),獲得累積至當日的數(shù)據(jù),并將該 數(shù)據(jù)更新至寬表對應字段的記錄數(shù)據(jù)中。
      4、 如權利要求1或2所述的更新方法,其特征在于,步驟(l)劃分的字段中包括用戶的首次交易時間,則將該字段設置一子表;步驟(2-2)進一步包括判斷該用戶當日有沒有發(fā)生交易,如果未發(fā)生交 易,則保留該字段中的記錄數(shù)據(jù),如果發(fā)生交易,則進一步判斷該對應字段 中的記錄數(shù)據(jù)是否為空,如果為空,則用當日的首次交易時間更新該用戶當 日的首次交易時間,如果不為空,則不進行更新。
      5、 如權利要求1或2所述的更新方法,其特征在于, 步驟(l)劃分的字段中包括處理用戶的最近一次交易時間,則該字段設置一子表;步驟(2-2)進一步包括先判斷該用戶當日有沒有發(fā)生交易,如果沒有發(fā) 生交易,則保留該用戶記錄對應字段中的數(shù)據(jù),如果當日發(fā)生了交易,則用 當日的最后一交易時間更新該用戶記錄對應字段中的數(shù)據(jù)。
      6、 如權利要求1所述的更新方法,其特征在于,還包括當需要對寬表中所有當日數(shù)據(jù)進行恢復時,從前一日寬表備份數(shù)據(jù)單元 中獲得前一 日寬表所有數(shù)據(jù);根據(jù)前一 日寬表所有數(shù)據(jù)對寬表所有當日數(shù)據(jù)進行更新步驟將今日已 更新的每一子表中的數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。
      7、 如權利要求l所述的方法,其特征在于,還包括當需對寬表中每日累計加總的記錄數(shù)據(jù)進行恢復時,將當日寬表中對應 字段中的記錄數(shù)據(jù)減去當日已更新的子表中的對應字段的記錄數(shù)據(jù),得到累 積至前一日的數(shù)據(jù);完成對每日累計加總數(shù)據(jù)的更新步驟將今日已更新的每一子表中對應 字段數(shù)據(jù)匯集,統(tǒng)一對寬表進行集中更新。
      8、 一種數(shù)據(jù)倉庫中寬表的更新系統(tǒng),其特征在于,包括數(shù)據(jù)庫服務器至少包括數(shù)據(jù)源和數(shù)據(jù)倉庫,所述數(shù)據(jù)源用于實時存儲 用戶進行商務處理的數(shù)據(jù);數(shù)據(jù)倉庫用于存儲包括寬表當前數(shù)據(jù)、子表數(shù)據(jù)、 前一 日寬表數(shù)據(jù)、前兩日寬表數(shù)據(jù)在內(nèi)的數(shù)據(jù);處理器至少包括子表更新單元和寬表更新單元,所述子表更新單元用 于利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保存每一子表中的 數(shù)據(jù);所述寬表更新單元用于并將每一子表中的數(shù)據(jù)匯集,統(tǒng)一對寬表中對 應字段的當前數(shù)據(jù)進行集中更新。
      全文摘要
      一種數(shù)據(jù)倉庫中寬表的更新方法,用于根據(jù)數(shù)據(jù)源中的數(shù)據(jù)定期更新數(shù)據(jù)倉庫中寬表的當前數(shù)據(jù),包括以下步驟(1)將寬表中的所有字段分成若干份,為每一份字段設置一子表;(2)每日完成寬表的更新,每一次更新步驟為(2-1)利用實時保存數(shù)據(jù)交易信息的數(shù)據(jù)源來每日定期更新并保存每一子表中的數(shù)據(jù);(2-2)將每一子表中的數(shù)據(jù)匯集,根據(jù)字段統(tǒng)一對寬表中的數(shù)據(jù)記錄進行集中更新。本發(fā)明更新方法方式直觀,可讀性強,維護的成本低,并且降低了存儲空間占用的空間,更有利于對數(shù)據(jù)倉庫的維護。
      文檔編號G06F17/30GK101661491SQ20081021408
      公開日2010年3月3日 申請日期2008年8月31日 優(yōu)先權日2008年8月31日
      發(fā)明者黃鳳霞 申請人:阿里巴巴集團控股有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1