專利名稱:分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及數(shù)據(jù)存儲領(lǐng)域,尤其涉及一種分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法及裝
置。
背景技術(shù):
數(shù)據(jù)庫(Data-Base,DB)是按照某種數(shù)據(jù)模型組織的數(shù)據(jù)集合,該數(shù)據(jù)集合的數(shù) 據(jù)結(jié)構(gòu)獨立于使用它的應(yīng)用程序;數(shù)據(jù)庫是面向事務(wù)設(shè)計的,是生產(chǎn)系統(tǒng)的數(shù)據(jù)平臺,一 般存儲在線交易數(shù)據(jù)。數(shù)據(jù)倉庫(Data Warehouse, DW)是集成的(Integrated)、相對穩(wěn) 定的(Non-volatile)、反映歷史變化(Time Variant)的數(shù)據(jù)集合;數(shù)據(jù)倉庫是面向主題 (Subject Oriented)設(shè)計的,是分析系統(tǒng)的數(shù)據(jù)平臺,一般存儲歷史數(shù)據(jù)。生產(chǎn)系統(tǒng)的數(shù)據(jù)庫在訪問量和存儲的數(shù)據(jù)量越來越大的情況下,采取了將現(xiàn)有集 中式數(shù)據(jù)庫升級為分布式數(shù)據(jù)庫的解決方案。集中式數(shù)據(jù)庫是指數(shù)據(jù)庫軟件部署在一臺 存儲服務(wù)器中,相應(yīng)的,數(shù)據(jù)存儲在集中式數(shù)據(jù)庫的一個表中(本申請文件中,將集中式數(shù) 據(jù)庫中的一個表稱為大表);分布式數(shù)據(jù)庫是指數(shù)據(jù)庫軟件部署在多臺獨立的存儲服務(wù)器 中,相應(yīng)的,集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)按照特定的分表規(guī)則劃分到分布式數(shù) 據(jù)庫的多個表中(本申請文件中,將分布式數(shù)據(jù)庫中的多個表稱為分表),也就是說分布式 數(shù)據(jù)庫將一個邏輯表中的數(shù)據(jù)分布到多個物理表中。生產(chǎn)系統(tǒng)通過采用分布式數(shù)據(jù)庫降低了對單臺存儲服務(wù)器的軟硬件要求,但是在 數(shù)據(jù)倉庫的ETL(Extraction-Transformation-Loading,數(shù)據(jù)抽取、轉(zhuǎn)換和裝載)過程中, 數(shù)據(jù)庫中的數(shù)據(jù)同步到數(shù)據(jù)倉庫的流程會發(fā)生巨大的變化。ETL是數(shù)據(jù)倉庫中的重要環(huán) 節(jié),負責將分布式、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽取到臨時中間層,進行清洗、轉(zhuǎn)換、集成,最后裝 載到數(shù)據(jù)倉庫中,成為聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。常用的ETL工具包括Informatica、 Datastage、0WB、DTS等。在采用集中式數(shù)據(jù)庫的情況下,只需將集中式數(shù)據(jù)庫的大表中的數(shù) 據(jù)同步到數(shù)據(jù)倉庫的一個表中即可,而在采用分布式數(shù)據(jù)庫的情況下,針對每一個分表在 數(shù)據(jù)倉庫中建立對應(yīng)的表(本申請文件中,將數(shù)據(jù)倉庫中為各分表對應(yīng)建立的表稱為映射 表),首先將生產(chǎn)系統(tǒng)中各分表的數(shù)據(jù)導(dǎo)出為文本,然后導(dǎo)入到數(shù)據(jù)倉庫對應(yīng)的映射表中, 最后將數(shù)據(jù)倉庫各映射表中的數(shù)據(jù)合并到一個表中(本申請文件中,將數(shù)據(jù)倉庫中數(shù)據(jù)合 并到的表稱為匯總表)。在分布式數(shù)據(jù)庫的規(guī)模較大,也就是分表的數(shù)量較多的情況下,例如有的大表會 分成1024個分表,將導(dǎo)致數(shù)據(jù)倉庫中表的數(shù)量暴漲,使得數(shù)據(jù)倉庫中表的維護數(shù)量和難度 比較大,而且在同步流程中需要對數(shù)據(jù)倉庫中所有的映射表進行合并操作,過程繁雜,使得 同步流程耗費的時間較長,極易出錯??梢?,現(xiàn)有分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方案,數(shù)據(jù) 倉庫中表的維護數(shù)量和難度較大,同步流程復(fù)雜,耗費時間長,可靠性低,成為數(shù)據(jù)倉庫的 ETL過程的瓶頸。申請內(nèi)容本申請?zhí)峁┮环N分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法及裝置,用以解決現(xiàn)有技術(shù)提供的方案中,數(shù)據(jù)倉庫中表的維護數(shù)量和難度較大,同步流程復(fù)雜,耗費時間長,可靠性低 的問題。本申請?zhí)峁┑姆植际綌?shù)據(jù)同步到數(shù)據(jù)倉庫的方法,所述方法包括 將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,并對應(yīng)生成文本文件;將各文本文件中的文本導(dǎo)入到數(shù)據(jù)倉庫的增量表中;根據(jù)特定的分表規(guī)則將增量表中的全部增量數(shù)據(jù)合并到數(shù)據(jù)倉庫的匯總表中,所 述分表規(guī)則是指將集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)劃分到分布式數(shù)據(jù)庫的多個分 表中時所遵循的規(guī)則。本申請?zhí)峁┑姆植际綌?shù)據(jù)同步到數(shù)據(jù)倉庫的裝置,所述裝置包括導(dǎo)出單元、導(dǎo)入 單元和匯總單元,其中所述導(dǎo)出單元,用于將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,并 對應(yīng)生成文本文件;所述導(dǎo)入單元,用于將各文本文件中的文本導(dǎo)入到數(shù)據(jù)倉庫的增量表中;所述匯總單元,用于根據(jù)特定的分表規(guī)則將增量表中的全部增量數(shù)據(jù)合并到數(shù)據(jù) 倉庫的匯總表中,所述分表規(guī)則是指將集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)劃分到分布 式數(shù)據(jù)庫的多個分表中時所遵循的規(guī)則。本申請?zhí)峁┑姆植际綌?shù)據(jù)同步到數(shù)據(jù)倉庫的方法及裝置,數(shù)據(jù)倉庫的ETL過程 中,將每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,再將文本直接導(dǎo)入到增量表中,最后將增量表 中的全部增量數(shù)據(jù)合并到匯總表,徹底摒棄了在數(shù)據(jù)倉庫中為全部分表建立對應(yīng)數(shù)量的映 射表的同步流程,同步任務(wù)只需在數(shù)據(jù)倉庫中新建兩個表(增量表和匯總表)即完成數(shù)據(jù) 同步,省略了同步流程中的冗余操作,降低了耗費的時間,提升了同步效率和可靠性。本申請的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優(yōu)點可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
圖1為本申請實施例中分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法流程圖;圖2為本申請實施例中分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的示意圖;圖3為本申請實施例中分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的裝置框圖。
具體實施例方式本申請實施例為了解決現(xiàn)有ETL過程中分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方案中存 在的問題,提供了一種分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方案。假設(shè)分布式數(shù)據(jù)庫中將一個 大表按照特定的分表規(guī)則劃分為1024個分表,按照現(xiàn)有方案,需要在數(shù)據(jù)倉庫中對應(yīng)建立 1024個映射表,并且需要將各映射表中的數(shù)據(jù)合并到匯總表中,使得表的維護數(shù)量和難度 較大,同步流程復(fù)雜,耗費時間長,可靠性低。針對上述問題,本申請實施中提出只在數(shù)據(jù) 倉庫中建立兩個表,分別稱為增量表和匯總表,將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù) 據(jù)導(dǎo)出為文本,并對應(yīng)生成文本文件,將各文本文件中的文本導(dǎo)入到數(shù)據(jù)倉庫的增量表中, 根據(jù)該特定的分表規(guī)則將增量表中的全部增量數(shù)據(jù)合并到數(shù)據(jù)倉庫的匯總表中,從而省略同步流程中的冗余操作,降低耗費的時間,提升同步效率和可靠性。 以下結(jié)合說明書附圖對本申請的優(yōu)選實施例進行說明,應(yīng)當理解,此處所描述的 優(yōu)選實施例僅用于說明和解釋本申請,并不用于限定本申請,并且在不沖突的情況下,本申 請中的實施例及實施例中的特征可以相互組合。如圖1所示,本申請實施例首先提供了一種分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法, 包括如下步驟S101、將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,并對應(yīng)生成文本 文件。在分布式數(shù)據(jù)庫的每一個分表中,數(shù)據(jù)以記錄的方式進行存儲,集中式數(shù)據(jù)庫的 大表中存儲的全部數(shù)據(jù)按照特定的分表規(guī)則劃分到分布式數(shù)據(jù)庫的多個分表中,具體實施 中,需要確保每個數(shù)據(jù)是可以唯一標識的,即由全局唯一的數(shù)據(jù)標識(key)進行區(qū)分?;?于此,分布式數(shù)據(jù)庫的每一個分表中的每一條記錄除了包括自動生成的數(shù)據(jù)編號、以及數(shù) 據(jù)之外,還包括根據(jù)該數(shù)據(jù)在大表中的位置和分表規(guī)則為該數(shù)據(jù)分配的全局唯一的數(shù)據(jù)標 識。將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本時,為了提升導(dǎo)出速度, 可以采用并行導(dǎo)出的方式,當然也可以采用串行導(dǎo)出的方式。具體實施中,將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本時,還攜帶 各增量數(shù)據(jù)的全局唯一的數(shù)據(jù)標識,便于后續(xù)將增量數(shù)據(jù)匯總到匯總表中。舉例說明如何將集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)按照特定的分表規(guī)則劃 分到分布式數(shù)據(jù)庫的多個分表中。假設(shè)集中式數(shù)據(jù)庫的某大表中存儲有如下記錄,各條記 錄的數(shù)據(jù)及數(shù)據(jù)格式如表1所示表 1
數(shù)據(jù)編號 用戶名賬戶余額 ~ AAA100 元
~~2BBB150 元
~~3CCC200 元
~DDD300 元將大表按照特定的分表規(guī)則(例如按照數(shù)據(jù)編號的奇偶性進行劃分的規(guī)則)將大 表中存儲的全部數(shù)據(jù)劃分到兩個分表中,則兩個分表中存儲的各條記錄以及存儲格式分別 如表2和表3所示。其中,全局唯一的數(shù)據(jù)標識Al可以表示是奇數(shù)表中的第1條記錄,根 據(jù)分表規(guī)則,可以確定對應(yīng)的數(shù)據(jù)在大表中的位置(數(shù)據(jù)編號為1);全局唯一的數(shù)據(jù)標識 A2可以表示是奇數(shù)表中的第2條記錄,根據(jù)分表規(guī)則,可以確定對應(yīng)的數(shù)據(jù)在大表中的位 置(數(shù)據(jù)編號為3);全局唯一的數(shù)據(jù)標識Bl可以表示是偶數(shù)表中的第1條記錄,根據(jù)分表 規(guī)則,可以確定對應(yīng)的數(shù)據(jù)在大表中的位置(數(shù)據(jù)編號為2);全局唯一的數(shù)據(jù)標識B2可以 表示是偶數(shù)表中的第2條記錄,根據(jù)分表規(guī)則,可以確定對應(yīng)的數(shù)據(jù)在大表中的位置(數(shù)據(jù)編號為4)。表權(quán)利要求
1.一種分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法,其特征在于,所述方法包括將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,并對應(yīng)生成文本文件;將各文本文件中的文本導(dǎo)入到數(shù)據(jù)倉庫的增量表中;根據(jù)特定的分表規(guī)則將增量表中的全部增量數(shù)據(jù)合并到數(shù)據(jù)倉庫的匯總表中,所述分 表規(guī)則是指將集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)劃分到分布式數(shù)據(jù)庫的多個分表中 時所遵循的規(guī)則。
2.如權(quán)利要求1所述的方法,其特征在于,所述分布式數(shù)據(jù)庫的每一個分表中的每一 條記錄包括數(shù)據(jù)、以及根據(jù)該數(shù)據(jù)在大表中的位置和所述分表規(guī)則為該數(shù)據(jù)分配的全局唯 一的數(shù)據(jù)標識;以及將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本時,還攜帶各增量數(shù)據(jù)的全局 唯一的數(shù)據(jù)標識。
3.如權(quán)利要求2所述的方法,其特征在于,所述分布式數(shù)據(jù)庫的每一個分表中的每一 條記錄還包括修改時間;以及所述增量數(shù)據(jù)是指修改時間在上一次的增量數(shù)據(jù)導(dǎo)出時間點到本次的增量數(shù)據(jù)導(dǎo)出 時間點之間的時間段內(nèi)的各條記錄所包括的數(shù)據(jù)。
4.如權(quán)利要求2所述的方法,其特征在于,所述分布式數(shù)據(jù)庫的每一個分表中的每一 條記錄還包括修改標志位,在每一次增量數(shù)據(jù)導(dǎo)出之后,將各分表中每一條記錄的修改標 志位初始化設(shè)置為初始值,當任一記錄的數(shù)據(jù)內(nèi)容被修改時,將該條記錄的修改標志位設(shè) 置為設(shè)定值;以及所述增量數(shù)據(jù)是指修改標志位為設(shè)定值的各條記錄所包括的數(shù)據(jù)。
5.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)分表規(guī)則將增量表中的全部增量 數(shù)據(jù)合并到數(shù)據(jù)倉庫的匯總表中,具體包括根據(jù)所述分表規(guī)則、以及增量表中每一個增量數(shù)據(jù)對應(yīng)的全局唯一的數(shù)據(jù)標識,確定 每一個增量數(shù)據(jù)在大表中的位置;根據(jù)每一個增量數(shù)據(jù)在大表中的位置,將各增量數(shù)據(jù)合并到所述匯總表的對應(yīng)位置處。
6.如權(quán)利要求1所述的方法,其特征在于,將每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本之 后,將導(dǎo)出的文本中所包括的設(shè)定的分隔符替換為空格。
7.一種分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的裝置,其特征在于,所述裝置包括導(dǎo)出單元、導(dǎo)入 單元和匯總單元,其中所述導(dǎo)出單元,用于將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,并對應(yīng) 生成文本文件;所述導(dǎo)入單元,用于將各文本文件中的文本導(dǎo)入到數(shù)據(jù)倉庫的增量表中;所述匯總單元,用于根據(jù)特定的分表規(guī)則將增量表中的全部增量數(shù)據(jù)合并到數(shù)據(jù)倉庫 的匯總表中,所述分表規(guī)則是指將集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)劃分到分布式數(shù) 據(jù)庫的多個分表中時所遵循的規(guī)則。
8.如權(quán)利要求7所述的裝置,其特征在于,所述導(dǎo)出單元,具體用于將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本時, 還攜帶各增量數(shù)據(jù)的全局唯一的數(shù)據(jù)標識,所述分布式數(shù)據(jù)庫的每一個分表中的每一條記錄包括數(shù)據(jù)、以及根據(jù)該數(shù)據(jù)在大表中的位置和所述分表規(guī)則為該數(shù)據(jù)分配的全局唯一的 數(shù)據(jù)標識。
9.如權(quán)利要求8所述的裝置,其特征在于,所述導(dǎo)出單元,具體用于將修改時間在上一次的增量數(shù)據(jù)導(dǎo)出時間點到本次的增量數(shù) 據(jù)導(dǎo)出時間點之間的時間段內(nèi)的各條記錄所包括的數(shù)據(jù)確定為數(shù)據(jù)增量,所述分布式數(shù)據(jù) 庫的每一個分表中的每一條記錄還包括修改時間。
10.如權(quán)利要求8所述的方法,其特征在于,所述裝置還包括設(shè)置單元,其中所述設(shè)置單元,用于在導(dǎo)出單元每一次導(dǎo)出增量數(shù)據(jù)之后,將各分表中每一條記錄的 修改標志位初始化設(shè)置為初始值,當任一記錄的數(shù)據(jù)內(nèi)容被修改時,將該條記錄的修改標 志位設(shè)置為設(shè)定值,所述分布式數(shù)據(jù)庫的每一個分表中的每一條記錄還包括修改標志位;所述導(dǎo)出單元,具體用于將修改標志位為設(shè)定值的各條記錄所包括的數(shù)據(jù)確定為增量 數(shù)據(jù)。
11.如權(quán)利要求8所述的裝置,其特征在于,所述匯總單元具體包括確定子單元和合并 子單元,其中所述確定子單元,用于根據(jù)所述分表規(guī)則、以及增量表中每一個增量數(shù)據(jù)對應(yīng)的全局 唯一的數(shù)據(jù)標識,確定每一個增量數(shù)據(jù)在大表中的位置;所述合并子單元,用于根據(jù)每一個增量數(shù)據(jù)在大表中的位置,將各增量數(shù)據(jù)合并到所 述匯總表的對應(yīng)位置處。
12.如權(quán)利要求7所述的裝置,其特征在于,所述導(dǎo)入單元,還用于在導(dǎo)出單元將每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本之后,將導(dǎo) 出的文本中所包括的設(shè)定的分隔符替換為空格。
全文摘要
本發(fā)明公開了一種分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法及裝置,用以解決現(xiàn)有技術(shù)提供的方案中,數(shù)據(jù)倉庫中表的維護數(shù)量和難度較大,同步流程復(fù)雜,耗費時間長,可靠性低的問題。分布式數(shù)據(jù)同步到數(shù)據(jù)倉庫的方法,包括將分布式數(shù)據(jù)庫的每一個分表中的增量數(shù)據(jù)導(dǎo)出為文本,并對應(yīng)生成文本文件;將各文本文件中的文本導(dǎo)入到數(shù)據(jù)倉庫的增量表中;根據(jù)特定的分表規(guī)則將增量表中的全部增量數(shù)據(jù)合并到數(shù)據(jù)倉庫的匯總表中,所述分表規(guī)則是指將集中式數(shù)據(jù)庫的大表中存儲的全部數(shù)據(jù)劃分到分布式數(shù)據(jù)庫的多個分表中時所遵循的規(guī)則。
文檔編號G06F17/30GK102096685SQ20091025247
公開日2011年6月15日 申請日期2009年12月11日 優(yōu)先權(quán)日2009年12月11日
發(fā)明者李學升 申請人:阿里巴巴集團控股有限公司