在目標服務器構建etl系統(tǒng)的處理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種在目標服務器構建ETL系統(tǒng)的處理方法及裝置。ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,臨時數據庫為用于臨時存儲數據的數據庫,源數據庫為用于存儲原始數據的數據庫,數據倉庫用于存儲經過ETL處理后的數據,臨時數據庫、源數據庫和數據倉庫均存儲在源服務器中,該方法包括:將源數據庫和數據倉庫分別從源服務器同步至目標服務器;在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼;根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫。通過本發(fā)明,解決了現有技術中在保證源服務器的ETL正常運行的情況下,無法在目標服務器中構建ETL系統(tǒng)的問題。
【專利說明】在目標服務器構建ETL系統(tǒng)的處理方法及裝置
【技術領域】
[0001]本發(fā)明涉及數據處理領域,具體而言,涉及一種在目標服務器構建ETL系統(tǒng)的處理方法及裝置。
【背景技術】
[0002]隨著大數據時代的來臨,數據庫的高可用性變得越來越重要。在大數據領域中,數據倉庫技術占據著重要地位,而數據倉庫技術的一大核心技術就是數據抽取、轉換和裝載(Extract Transform Load,簡稱為ETL)。ETL依據臨時數據庫對源數據進行抽取、清洗、轉換和裝載等工作,然后將處理好的數據存入被稱為“數據倉庫”的數據庫中。在實際生產環(huán)境中,ETL系統(tǒng)往往包含三種數據庫,即源數據庫,臨時數據庫,數據倉庫。源數據庫提供數據源;臨時數據庫用于存儲各類臨時數據;數據倉庫包含事實表和維度表,存儲經過處理的數據。
[0003]數據庫復制技術(Implicat1n)是一種常見的高可用性技術,它用于將發(fā)布者數據庫的數據同步到目標服務器上。該技術功能強大,比如可以實時同步,也可以進行負載均衡、沖突處理等。目前許多基于R印Iicat1n的高可用性方案,都是針對數據倉庫的,即對數據倉庫做同步,這樣,當發(fā)布者數據庫宕機的時候,目標服務器的數據倉庫依然可以訪問。在很多場景下,當發(fā)布者數據庫宕機的時候,不僅需要目標服務器中的數據倉庫可以被訪問,還希望在目標服務器中執(zhí)行ETL操作。單單使用Replicat1n技術并不能順利達到這個目的。因為在目標服務器中執(zhí)行ETL,需要把臨時數據庫表結構復制過去。若通過Replicat1n技術來同步臨時數據庫,就會影響發(fā)布者數據庫正常的ETL運行。因為,若一個數據表配置了 R印licat1n,就無法對它執(zhí)行清空操作。而在ETL執(zhí)行時,在臨時數據庫儲存數據前,會對該數據庫的表做一次清空操作以清空臟數據。所以,這種情況下,發(fā)布者數據庫的ETL會執(zhí)行出錯。若這些臨時數據庫通過其他方式移動到目標服務器上,又各有缺陷。通常,ETL系統(tǒng)包含三種數據庫,即源數據庫,臨時數據庫和數據倉庫。因此現有技術中無法在目標服務器中構建ETL系統(tǒng),更無法在目標服務器中執(zhí)行ETL。
[0004]針對現有技術中在保證源服務器的ETL正常運行的情況下,無法在目標服務器中構建ETL系統(tǒng)的問題,目前尚未提出有效的解決方案。
【發(fā)明內容】
[0005]本發(fā)明的主要目的在于提供一種在目標服務器構建ETL系統(tǒng)的處理方法及裝置,以解決現有技術中在保證源服務器的ETL正常運行的情況下,無法在目標服務器中構建ETL系統(tǒng)的問題。
[0006]為了實現上述目的,根據本發(fā)明的一個方面,提供了一種在目標服務器構建ETL系統(tǒng)的處理方法。
[0007]根據本發(fā)明的在目標服務器構建ETL系統(tǒng)的處理方法包括:該ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,臨時數據庫為用于臨時存儲數據的數據庫,源數據庫為用于存儲原始數據的數據庫,數據倉庫用于存儲經過ETL處理后的數據,臨時數據庫、源數據庫和數據倉庫均存儲在源服務器中,該方法包括:將源數據庫和數據倉庫分別從源服務器同步至目標服務器;在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼;以及根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫。
[0008]進一步地,根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫包括:在目標服務器上創(chuàng)建目標數據庫;以及在目標數據庫中執(zhí)行腳本代碼,得到臨時表;根據臨時表構成目標臨時數據庫。
[0009]進一步地,將源數據庫和數據倉庫分別從源服務器同步至目標服務器之前,該方法還包括:確定源數據庫和數據倉庫;以及分別對源數據庫和數據倉庫進行配置,得到配置源數據庫和配置數據倉庫,其中,配置源數據庫是用于將源數據庫預先進行配置執(zhí)行同步操作后的數據庫,配置數據倉庫是用于將數據倉庫預先進行配置執(zhí)行同步操作后的數據庫。
[0010]進一步地,分別對源數據庫和數據倉庫進行配置包括:分別獲取源數據庫和數據倉庫中已有的配置指令,其中,配置指令為用于指示對源數據庫和數據倉庫進行預先配置執(zhí)行同步操作的指令;以及通過配置指令分別對源數據庫和數據倉庫進行配置,或者,接收外部輸入的配置代碼,其中,配置代碼為用于對源數據庫和數據倉庫進行預先配置執(zhí)行同步操作的代碼;以及根據配置代碼生成的相應配置指令分別對源數據庫和數據倉庫進行配置。
[0011]進一步地,將源數據庫和數據倉庫分別從源服務器同步至目標服務器包括:分別針對源數據庫和數據倉庫獲取第一預設代理程序,其中,第一預設代理程序為用于生成數據庫快照的程序;根據第一預設代理程序分別生成與源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;分別針對源數據庫和數據倉庫獲取第二預設代理程序,其中,第二預設代理程序為用于同步源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;以及根據第二預設的代理程序分別將源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照同步至目標服務器。
[0012]為了實現上述目的,根據本發(fā)明的另一方面,提供了一種在目標服務器構建ETL系統(tǒng)的處理裝置。
[0013]根據本發(fā)明的在目標服務器構建ETL系統(tǒng)的處裝置包括:ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,臨時數據庫為用于臨時存儲數據的數據庫,源數據庫為用于存儲原始數據的數據庫,數據倉庫用于存儲經過ETL處理后的數據,臨時數據庫、源數據庫和數據倉庫均存儲在源服務器中,該裝置包括:同步單元,用于將源數據庫和數據倉庫分別從源服務器同步至目標服務器;獲取單元,用于在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼;以及創(chuàng)建單元,用于根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫。
[0014]進一步地,創(chuàng)建單元包括:創(chuàng)建模塊,用于在目標服務器上創(chuàng)建目標數據庫;以及執(zhí)行模塊,用于在目標數據庫中執(zhí)行腳本代碼,得到臨時表;組成模塊,用于臨時表構成目標臨時數據庫。
[0015]進一步地,該裝置還包括:確定單元,用于確定源數據庫和數據倉庫;以及配置單元,用于分別對源數據庫和數據倉庫進行配置,得到配置源數據庫和配置數據倉庫,其中,配置源數據庫是用于將源數據庫預先進行配置執(zhí)行同步操作后的數據庫,配置數據倉庫是用于將數據倉庫預先進行配置執(zhí)行同步操作后的數據庫。
[0016]進一步地,配置單元包括:第一獲取模塊,用于分別獲取源數據庫和數據倉庫中已有的配置指令,其中,配置指令為用于指示對源數據庫和數據倉庫進行預先配置執(zhí)行同步操作的指令;以及第一配置模塊,用于通過配置指令分別對源數據庫和數據倉庫進行配置,或者,接收模塊,用于接收外部輸入的配置代碼,其中,配置代碼為用于對源數據庫和數據倉庫進行預先配置執(zhí)行同步操作的代碼;以及第二配置模塊,用于配置代碼生成的相應配置指令分別對源數據庫和數據倉庫進行配置。
[0017]進一步地,同步單元包括:第二獲取模塊,用于分別針對源數據庫和數據倉庫獲取第一預設代理程序,其中,第一預設代理程序為用于生成數據庫快照的程序;生成模塊,用于第一預設代理程序分別生成與源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;第三獲取模塊,用于分別針對源數據庫和數據倉庫獲取第二預設代理程序,其中,第二預設代理程序為用于同步源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;以及同步模塊,用于根據第二預設的代理程序分別將源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照同步至目標服務器。
[0018]通過本發(fā)明,將源數據庫和數據倉庫分別從源服務器同步至目標服務器;在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼;根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫,解決了現有技術中在保證源服務器的ETL正常運行的情況下,無法在目標服務器中構建ETL系統(tǒng)的問題,進而達到了在目標服務器中構建ETL系統(tǒng)的效果。
【專利附圖】
【附圖說明】
[0019]構成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0020]圖1是根據本發(fā)明實施例的在目標服務器構建ETL系統(tǒng)的處理方法的流程圖;以及
[0021]圖2是根據本發(fā)明實施例的在目標服務器構建ETL系統(tǒng)的處理裝置的示意圖。
【具體實施方式】
[0022]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本發(fā)明。
[0023]為了使本【技術領域】的人員更好地理解本申請方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。
[0024]需要說明的是,本申請的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本申請的實施例。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0025]根據本發(fā)明的實施例,提供了一種在目標服務器構建ETL系統(tǒng)的處理方法。
[0026]圖1是根據本發(fā)明實施例的在目標服務器構建ETL系統(tǒng)的處理方法的示意圖。ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,臨時數據庫為用于臨時存儲數據的數據庫,源數據庫為用于存儲原始數據的數據庫,數據倉庫用于存儲經過ETL處理后的數據,臨時數據庫、源數據庫和數據倉庫均存儲在源服務器中,如圖1所示,該方法包括如下的步驟SlOl至步驟S103:
[0027]步驟S101,將源數據庫和數據倉庫分別從源服務器同步至目標服務器。
[0028]將源數據庫和數據倉庫分別從源服務器同步至目標服務器。
[0029]在本發(fā)明實施例提供的在目標服務器構建ETL系統(tǒng)的處理方法中,將源數據庫和數據倉庫分別從源服務器同步至目標服務器包括:分別針對源數據庫和數據倉庫獲取第一預設代理程序,其中,第一預設代理程序為用于生成數據庫快照的程序;根據第一預設代理程序分別生成與源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;分別針對源數據庫和數據倉庫獲取第二預設代理程序,其中,第二預設代理程序為用于同步源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;以及根據第二預設的代理程序分別將源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照同步至目標服務器。
[0030]具體地,根據源數據庫生成數據庫快照,其中,數據庫快照是源數據庫的只讀靜態(tài)視圖。優(yōu)選地,源據庫為SQL Server數據庫。生成數據庫快照之后,數據庫快照在事務上與源數據庫一致。在本發(fā)明實施例中的數據庫快照用于將源數據庫中的數據轉移至目標數據庫。在數據庫快照中包括用于執(zhí)行同步操作的腳本文件。獲取第一預設代理程序,其中,第一預設代理程序為用于生成數據庫快照的程序;根據第一預設代理程序生成數據庫快照。
[0031]優(yōu)選地,源數據庫為SQL Server數據庫,獲取用于生成數據庫快照的第一預設代理程序為SQL Server目錄下的snapshot, exe代理程序,根據SQL Server目錄下的snapshot, exe代理程序生成數據庫快照。在生成數據庫快照之后,讀取事務日志,其中,每次對數據庫的更改,系統(tǒng)都會記錄事務日志,replicat1n會把對數據庫的更改傳送到目標服務器,目標服務器利用這些事務日志來進行同步。運行系統(tǒng)自帶的logread.exe代理程序即可讀取事務日志。
[0032]獲取第二預設代理程序,其中,第二預設代理程序為用于同步數據庫快照的程序;根據第二預設代理程序將修改后的數據庫快照同步至目標數據庫。
[0033]優(yōu)選地,源數據庫為SQL Server數據庫,獲取用于同步數據庫快照的第二預設代理程序為SQL Server目錄下的Distrib.exe代理程序,根據SQL Server目錄下的Distrib.exe代理程序同步數據庫快照。
[0034]需要說明的是,上述同步源數據庫的方法也同樣適用于同步數據倉庫。
[0035]將源數據庫和數據倉庫分別從源服務器同步至目標服務器之前,該方法還包括:確定源數據庫和數據倉庫;以及分別對源數據庫和數據倉庫進行配置,得到配置源數據庫和配置數據倉庫,其中,配置源數據庫是用于將源數據庫預先進行配置執(zhí)行同步操作后的數據庫,配置數據倉庫是用于將數據倉庫預先進行配置執(zhí)行同步操作后的數據庫。
[0036]優(yōu)選地,為了提升對未進行配置的數據庫進行配置,在本發(fā)明實施例提供的數據庫批量同步處理方法中,該方法還包括:獲取數據庫中已有的配置指令,其中,配置指令為用于指示對未進行配置的數據庫進行預先配置執(zhí)行同步操作的指令;以及通過配置指令分別對未進行配置的數據庫進行配置,或者,接收外部輸入的配置代碼,其中,配置代碼為用于對未進行配置的數據庫進行預先配置執(zhí)行同步操作的代碼;以及根據配置代碼生成的相應配置指令分別對未進行配置的數據庫進行配置。
[0037]優(yōu)選地,待同步數據庫為SQL Server數據庫。若待同步數據庫未進行初始化,先進行初始化。然后調用sp_adddistributor和sp_addsitribut1ndb等等存儲過程,即對未進行配置的數據庫進行了配置。
[0038]需要說明的是,定期執(zhí)行數據同步,也可以通過SSMS的復制監(jiān)視器,打開SSMS,右擊replicat1n目錄,選擇Launch Replicat1n Monitor,選擇控制按鈕執(zhí)行復制操作。
[0039]步驟S102,在源服務器中獲取臨時數據庫中臨時表的腳本代碼。
[0040]在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼。
[0041]例如,在源服務器中獲取臨時數據庫中臨時表的腳本代碼的操作代碼為:
[0042]var dbCreateScripts = sourceDatabase.Script O
[0043]通過該步驟,在源服務器中獲取到臨時數據庫中臨時表的腳本代碼。
[0044]步驟S103,根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫。
[0045]根據上述在源服務器中獲取到臨時數據庫中臨時表的腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫。
[0046]具體地,根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫包括:在目標服務器上創(chuàng)建目標數據庫;以及在目標數據庫中執(zhí)行腳本代碼,得到臨時表;根據臨時表構成目標臨時數據庫。
[0047]通過上述步驟,在目標服務器上創(chuàng)建了臨時數據庫、將源服務器上的源數據庫和數據倉庫同步至目標服務器。因此實現了在目標服務器中構建ETL系統(tǒng)。
[0048]本發(fā)明實施例提供的在目標服務器構建ETL系統(tǒng)的處理方法,通過將源數據庫和數據倉庫分別從源服務器同步至目標服務器;在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼;根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫,解決了現有技術中在保證源服務器的ETL正常運行的情況下,無法在目標服務器中構建ETL系統(tǒng)的問題。進而達到了在目標服務器中構建ETL系統(tǒng)的效果。
[0049]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0050]本發(fā)明實施例還提供了一種在目標服務器構建ETL系統(tǒng)的處理裝置,需要說明的是,本發(fā)明實施例的在目標服務器構建ETL系統(tǒng)的處理裝置可以用于執(zhí)行本發(fā)明實施例所提供的用于在目標服務器構建ETL系統(tǒng)的處理方法。以下對本發(fā)明實施例提供的在目標服務器構建ETL系統(tǒng)的處理裝置進行介紹。
[0051]圖2是根據本發(fā)明實施例的在目標服務器構建ETL系統(tǒng)的處理裝置的示意圖。ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,臨時數據庫為用于臨時存儲數據的數據庫,源數據庫為用于存儲原始數據的數據庫,數據倉庫用于存儲經過ETL處理后的數據,臨時數據庫、源數據庫和數據倉庫均存儲在源服務器中,如圖2所示,裝置包括:同步單元10、獲取單元20和創(chuàng)建單元30。
[0052]同步單元10,用于將源數據庫和數據倉庫分別從源服務器同步至目標服務器。
[0053]具體地,該同步單元10包括:第二獲取模塊,用于分別針對源數據庫和數據倉庫獲取第一預設代理程序,其中,第一預設代理程序為用于生成數據庫快照的程序;生成模塊,用于第一預設代理程序分別生成與源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;第三獲取模塊,用于分別針對源數據庫和數據倉庫獲取第二預設代理程序,其中,第二預設代理程序為用于同步源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照;以及同步模塊,用于根據第二預設的代理程序分別將源數據庫相應的數據庫快照和數據倉庫相應的數據倉庫快照同步至目標服務器。
[0054]獲取單元20,用于在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼。
[0055]創(chuàng)建單元30,用于根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫。
[0056]具體地,創(chuàng)建單元30包括:創(chuàng)建模塊,用于在目標服務器上創(chuàng)建目標數據庫;以及執(zhí)行模塊,用于在目標數據庫中執(zhí)行腳本代碼,得到臨時表;組成模塊,用于臨時表構成目標臨時數據庫。
[0057]本發(fā)明實施例提供的在目標服務器構建ETL系統(tǒng)的處理裝置,通過同步單元10將源數據庫和數據倉庫分別從源服務器同步至目標服務器;獲取單元20在源服務器中獲取臨時數據庫中臨時表的腳本代碼,其中,臨時數據庫包括臨時表,腳本代碼為用于創(chuàng)建臨時表的代碼;創(chuàng)建單元30根據腳本代碼在目標服務器上創(chuàng)建目標臨時數據庫,解決了現有技術中在保證源服務器的ETL正常運行的情況下,無法在目標服務器中構建ETL系統(tǒng)的問題。進而達到了在目標服務器中構建ETL系統(tǒng)的效果。
[0058]優(yōu)選地,在本發(fā)明實施例提供的在目標服務器構建ETL系統(tǒng)的處理裝置中,該裝置還包括:確定單元,用于確定源數據庫和數據倉庫;以及配置單元,用于分別對源數據庫和數據倉庫進行配置,得到配置源數據庫和配置數據倉庫,其中,配置源數據庫是用于將源數據庫預先進行配置執(zhí)行同步操作后的數據庫,配置數據倉庫是用于將數據倉庫預先進行配置執(zhí)行同步操作后的數據庫。具體地,該配置單元包括:第一獲取模塊,用于分別獲取源數據庫和數據倉庫中已有的配置指令,其中,配置指令為用于指示對源數據庫和數據倉庫進行預先配置執(zhí)行同步操作的指令;以及第一配置模塊,用于通過配置指令分別對源數據庫和數據倉庫進行配置,或者,接收模塊,用于接收外部輸入的配置代碼,其中,配置代碼為用于對源數據庫和數據倉庫進行預先配置執(zhí)行同步操作的代碼;以及第二配置模塊,用于配置代碼生成的相應配置指令分別對源數據庫和數據倉庫進行配置。
[0059]顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
[0060]以上僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種在目標服務器構建ETL系統(tǒng)的處理方法,其特征在于,所述ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,所述臨時數據庫為用于臨時存儲數據的數據庫,所述源數據庫為用于存儲原始數據的數據庫,所述數據倉庫用于存儲經過ETL處理后的數據,所述臨時數據庫、所述源數據庫和所述數據倉庫均存儲在源服務器中,所述方法包括: 將所述源數據庫和所述數據倉庫分別從所述源服務器同步至所述目標服務器; 在所述源服務器中獲取所述臨時數據庫中臨時表的腳本代碼,其中,所述臨時數據庫包括所述臨時表,所述腳本代碼為用于創(chuàng)建所述臨時表的代碼;以及根據所述腳本代碼在所述目標服務器上創(chuàng)建目標臨時數據庫。
2.根據權利要求1所述的方法,其特征在于,根據所述腳本代碼在所述目標服務器上創(chuàng)建目標臨時數據庫包括: 在所述目標服務器上創(chuàng)建目標數據庫;以及 在所述目標數據庫中執(zhí)行所述腳本代碼,得到臨時表; 根據所述臨時表構成所述目標臨時數據庫。
3.根據權利要求1所述的方法,其特征在于,將所述源數據庫和所述數據倉庫分別從所述源服務器同步至所述目標服務器之前,所述方法還包括: 確定所述源數據庫和所述數據倉庫;以及 分別對所述源數據庫和所述數據倉庫進行配置,得到配置源數據庫和配置數據倉庫,其中,所述配置源數據庫是用于將所述源數據庫預先進行配置執(zhí)行同步操作后的數據庫,所述配置數據倉庫是用于將所述數據倉庫預先進行配置執(zhí)行同步操作后的數據庫。
4.根據權利要求3所述的方法,其特征在于,分別對所述源數據庫和所述數據倉庫進行配置包括: 分別獲取所述源數據庫和所述數據倉庫中已有的配置指令,其中,所述配置指令為用于指示對所述源數據庫和所述數據倉庫進行預先配置執(zhí)行同步操作的指令;以及通過所述配置指令分別對所述源數據庫和所述數據倉庫進行配置, 或者, 接收外部輸入的配置代碼,其中,所述配置代碼為用于對所述源數據庫和所述數據倉庫進行預先配置執(zhí)行同步操作的代碼;以及 根據所述配置代碼生成的相應配置指令分別對所述源數據庫和所述數據倉庫進行配置。
5.根據權利要求1所述的方法,其特征在于,將所述源數據庫和所述數據倉庫分別從所述源服務器同步至所述目標服務器包括: 分別針對所述源數據庫和所述數據倉庫獲取第一預設代理程序,其中,所述第一預設代理程序為用于生成數據庫快照的程序; 根據所述第一預設代理程序分別生成與所述源數據庫相應的數據庫快照和所述數據倉庫相應的數據倉庫快照; 分別針對所述源數據庫和所述數據倉庫獲取第二預設代理程序,其中,所述第二預設代理程序為用于同步所述源數據庫相應的數據庫快照和所述數據倉庫相應的數據倉庫快照;以及 根據所述第二預設的代理程序分別將所述源數據庫相應的數據庫快照和所述數據倉庫相應的數據倉庫快照同步至所述目標服務器。
6.一種在目標服務器構建ETL系統(tǒng)的處理裝置,其特征在于,所述ETL系統(tǒng)包括:臨時數據庫、源數據庫和數據倉庫,所述臨時數據庫為用于臨時存儲數據的數據庫,所述源數據庫為用于存儲原始數據的數據庫,所述數據倉庫用于存儲經過ETL處理后的數據,所述臨時數據庫、所述源數據庫和所述數據倉庫均存儲在源服務器中,所述裝置包括: 同步單元,用于將所述源數據庫和所述數據倉庫分別從所述源服務器同步至所述目標服務器; 獲取單元,用于在所述源服務器中獲取所述臨時數據庫中臨時表的腳本代碼,其中,所述臨時數據庫包括所述臨時表,所述腳本代碼為用于創(chuàng)建所述臨時表的代碼;以及創(chuàng)建單元,用于根據所述腳本代碼在所述目標服務器上創(chuàng)建目標臨時數據庫。
7.根據權利要求6所述的裝置,其特征在于,所述創(chuàng)建單元包括: 創(chuàng)建模塊,用于在所述目標服務器上創(chuàng)建目標數據庫;以及 執(zhí)行模塊,用于在所述目標數據庫中執(zhí)行所述腳本代碼,得到臨時表; 組成模塊,用于所述臨時表構成所述目標臨時數據庫。
8.根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 確定單元,用于確定所述源數據庫和所述數據倉庫;以及 配置單元,用于分別對所述源數據庫和所述數據倉庫進行配置,得到配置源數據庫和配置數據倉庫,其中,所述配置源數據庫是用于將所述源數據庫預先進行配置執(zhí)行同步操作后的數據庫,所述配置數據倉庫是用于將所述數據倉庫預先進行配置執(zhí)行同步操作后的數據庫。
9.根據權利要求8所述的裝置,其特征在于,所述配置單元包括: 第一獲取模塊,用于分別獲取所述源數據庫和所述數據倉庫中已有的配置指令,其中,所述配置指令為用于指示對所述源數據庫和所述數據倉庫進行預先配置執(zhí)行同步操作的指令;以及 第一配置模塊,用于通過所述配置指令分別對所述源數據庫和所述數據倉庫進行配置, 或者, 接收模塊,用于接收外部輸入的配置代碼,其中,所述配置代碼為用于對所述源數據庫和所述數據倉庫進行預先配置執(zhí)行同步操作的代碼;以及 第二配置模塊,用于所述配置代碼生成的相應配置指令分別對所述源數據庫和所述數據倉庫進行配置。
10.根據權利要求6所述的裝置,其特征在于,所述同步單元包括: 第二獲取模塊,用于分別針對所述源數據庫和所述數據倉庫獲取第一預設代理程序,其中,所述第一預設代理程序為用于生成數據庫快照的程序; 生成模塊,用于所述第一預設代理程序分別生成與所述源數據庫相應的數據庫快照和所述數據倉庫相應的數據倉庫快照; 第三獲取模塊,用于分別針對所述源數據庫和所述數據倉庫獲取第二預設代理程序,其中,所述第二預設代理程序為用于同步所述源數據庫相應的數據庫快照和所述數據倉庫相應的數據倉庫快照;以及 同步模塊,用于根據所述第二預設的代理程序分別將所述源數據庫相應的數據庫快照和所述數據倉庫相應的數據倉庫快照同步至所述目標服務器。
【文檔編號】G06F17/30GK104462344SQ201410736286
【公開日】2015年3月25日 申請日期:2014年12月4日 優(yōu)先權日:2014年12月4日
【發(fā)明者】儲雨知 申請人:北京國雙科技有限公司