一種數(shù)據(jù)庫(kù)數(shù)據(jù)推送方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)數(shù)據(jù)推送方法和裝置。
【背景技術(shù)】
[0002] 目前,銀行等機(jī)構(gòu)在每次日終切換后,需將各個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)數(shù)據(jù)歸集到相應(yīng)的 數(shù)據(jù)集成平臺(tái)進(jìn)行歸檔,具體地,例如每次日終切換后,需將包含合約表,利率表、匯率表等 多種類型數(shù)據(jù)表的金融數(shù)據(jù)庫(kù)P8的數(shù)據(jù)推送至數(shù)據(jù)集成平臺(tái)P9進(jìn)行歸檔等。
[0003] 銀行各系統(tǒng)的數(shù)據(jù)庫(kù)往往包含諸多數(shù)據(jù)表,如P8可同時(shí)包含一定數(shù)目的合約表、 一定數(shù)目的利率表及一定數(shù)目的匯率表等多個(gè)數(shù)據(jù)表,在向數(shù)據(jù)集成平臺(tái)推送數(shù)據(jù)時(shí),不 同的數(shù)據(jù)表往往具有不同的推送需求,如需使用不同的卸數(shù)方式和文件生成規(guī)則等,仍以 P8為例,對(duì)于卸數(shù)方式來(lái)說(shuō),某些表需發(fā)送當(dāng)天增量數(shù)據(jù)給P9,某些表需發(fā)送全量數(shù)據(jù)給 P9,某些表要求寫(xiě)入文件(在將表數(shù)據(jù)寫(xiě)入文件后推送文件至P9)的字段順序和原表字段順 序一致,而某些表則要求寫(xiě)入文件的字段順序做一定調(diào)整,某些表要求采用字段A做篩選, 某些表要求采用字段B做篩選等等;對(duì)于文件生成規(guī)則來(lái)說(shuō),有些表要求生成DAT文件,有些 表則要求不生成DAT文件等。
[0004] 基于此特點(diǎn),現(xiàn)有技術(shù)在實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)向數(shù)據(jù)集成平臺(tái)的推送時(shí),預(yù)先針對(duì)數(shù) 據(jù)庫(kù)中的每個(gè)表,分別實(shí)現(xiàn)不同的需求代碼,如分別實(shí)現(xiàn)不同的卸數(shù)方式和文件生成規(guī)則 等,即現(xiàn)有技術(shù)針對(duì)每個(gè)數(shù)據(jù)表需分別進(jìn)行相應(yīng)的開(kāi)發(fā)工作,從而最終為開(kāi)發(fā)人員帶來(lái)了 巨大的工作量。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)庫(kù)數(shù)據(jù)推送方法和裝置,旨在通過(guò)提 供一種統(tǒng)一、通用的數(shù)據(jù)推送需求模板,來(lái)減少現(xiàn)有技術(shù)中開(kāi)發(fā)人員針對(duì)各數(shù)據(jù)表分別進(jìn) 行開(kāi)發(fā)工作的巨大工作量。
[0006] 為此,本發(fā)明公開(kāi)如下技術(shù)方案:
[0007] -種數(shù)據(jù)庫(kù)數(shù)據(jù)推送方法,包括:
[0008] 確定目標(biāo)數(shù)據(jù)庫(kù)中當(dāng)前待處理的目標(biāo)數(shù)據(jù)表;
[0009] 獲取所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)推送需求信息;其中,所述數(shù)據(jù)推送需求信息為預(yù)先 基于數(shù)據(jù)推送需求模板所配置的信息;所述數(shù)據(jù)推送需求模板預(yù)先集成有:所述目標(biāo)數(shù)據(jù) 庫(kù)中各數(shù)據(jù)表的不同數(shù)據(jù)推送需求所對(duì)應(yīng)的各個(gè)屬性配置項(xiàng);
[0010] 基于所述數(shù)據(jù)推送需求信息,對(duì)所述目標(biāo)數(shù)據(jù)表進(jìn)行相應(yīng)的數(shù)據(jù)推送處理,以實(shí) 現(xiàn)將所述目標(biāo)數(shù)據(jù)表的相應(yīng)數(shù)據(jù)推送至目標(biāo)位置。
[0011]上述方法,優(yōu)選的,所述確定目標(biāo)數(shù)據(jù)庫(kù)中當(dāng)前待處理的目標(biāo)數(shù)據(jù)表包括:
[0012] 基于多線程并發(fā)處理的方式,確定目標(biāo)數(shù)據(jù)庫(kù)中當(dāng)前待處理的多個(gè)目標(biāo)數(shù)據(jù)表。
[0013] 上述方法,優(yōu)選的,所述獲取所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)推送需求信息包括:
[0014] 在相對(duì)應(yīng)的線程中,讀取每個(gè)所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)推送需求信息。
[0015] 上述方法,優(yōu)選的,所述數(shù)據(jù)推送需求信息包括卸數(shù)方式和文件生成規(guī)則,所述目 標(biāo)位置為預(yù)設(shè)的數(shù)據(jù)集成平臺(tái),則所述基于所述數(shù)據(jù)推送需求信息,對(duì)所述目標(biāo)數(shù)據(jù)表進(jìn) 行相應(yīng)的數(shù)據(jù)推送處理包括:
[0016] 在相對(duì)應(yīng)的線程中,基于相對(duì)應(yīng)的卸數(shù)方式從每個(gè)所述目標(biāo)數(shù)據(jù)表中讀取出待推 送的目標(biāo)數(shù)據(jù);
[0017] 在相對(duì)應(yīng)的線程中,基于相對(duì)應(yīng)的文件生成規(guī)則,對(duì)每個(gè)所述目標(biāo)數(shù)據(jù)表的目標(biāo) 數(shù)據(jù)進(jìn)行相應(yīng)的寫(xiě)文件處理,生成每個(gè)所述目標(biāo)數(shù)據(jù)表的推送文件;
[0018] 在為所述目標(biāo)數(shù)據(jù)庫(kù)的各數(shù)據(jù)表生成相對(duì)應(yīng)的推送文件后,將各個(gè)所述推送文件 發(fā)送至所述數(shù)據(jù)集成平臺(tái)。
[0019]上述方法,優(yōu)選的,所述推送文件包括數(shù)據(jù)文件、表結(jié)構(gòu)文件和控制文件,則所述 對(duì)每個(gè)所述目標(biāo)數(shù)據(jù)表的目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)的寫(xiě)文件處理包括:
[0020] 基于數(shù)據(jù)庫(kù)緩存技術(shù),將每個(gè)所述目標(biāo)數(shù)據(jù)表的目標(biāo)數(shù)據(jù)寫(xiě)入相應(yīng)的數(shù)據(jù)文件 中;
[0021] 為每個(gè)所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)文件寫(xiě)相應(yīng)的表結(jié)構(gòu)文件和控制文件;其中,所述 表結(jié)構(gòu)文件包括所述數(shù)據(jù)文件的文件名稱、所述數(shù)據(jù)文件所包括的各字段的字段名稱及字 段類型;所述控制文件包括所述數(shù)據(jù)文件的大小、生成時(shí)間及所述數(shù)據(jù)文件包括的記錄數(shù)。
[0022] 上述方法,優(yōu)選的,所述將各個(gè)所述推送文件發(fā)送至所述數(shù)據(jù)集成平臺(tái)包括:
[0023] 將各個(gè)所述推送文件進(jìn)行分組、打包,得到相應(yīng)個(gè)數(shù)的推送文件包;
[0024] 基于多線程并發(fā)處理的方式,將各個(gè)所述推送文件包發(fā)送至所述數(shù)據(jù)集成平臺(tái)進(jìn) 行歸檔。
[0025] 上述方法,優(yōu)選的,還包括:
[0026] 在以所述推送文件的開(kāi)始發(fā)送時(shí)刻為起始時(shí)刻等待預(yù)設(shè)時(shí)長(zhǎng)后,檢測(cè)各推送文件 的發(fā)送過(guò)程是否完成,如果完成,則結(jié)束;如果未完成,則報(bào)錯(cuò)。
[0027] 一種數(shù)據(jù)庫(kù)數(shù)據(jù)推送裝置,包括:
[0028] 確定模塊,用于確定目標(biāo)數(shù)據(jù)庫(kù)中當(dāng)前待處理的目標(biāo)數(shù)據(jù)表;
[0029] 獲取模塊,用于獲取所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)推送需求信息;其中,所述數(shù)據(jù)推送需 求信息為預(yù)先基于數(shù)據(jù)推送需求模板所配置的信息,所述數(shù)據(jù)推送需求模板集成有:所述 目標(biāo)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表的不同數(shù)據(jù)推送需求所對(duì)應(yīng)的各個(gè)屬性配置項(xiàng);
[0030] 推送處理模塊,用于基于所述數(shù)據(jù)推送需求信息,對(duì)所述目標(biāo)數(shù)據(jù)表進(jìn)行相應(yīng)的 數(shù)據(jù)推送處理,以實(shí)現(xiàn)將所述目標(biāo)數(shù)據(jù)表的相應(yīng)數(shù)據(jù)推送至目標(biāo)位置。
[0031 ]上述裝置,優(yōu)選的,所述確定模塊包括:
[0032]確定單元,用于基于多線程并發(fā)處理的方式,確定目標(biāo)數(shù)據(jù)庫(kù)中當(dāng)前待處理的多 個(gè)目標(biāo)數(shù)據(jù)表。
[0033] 上述裝置,優(yōu)選的,所述獲取模塊包括:
[0034] 第一讀取單元,用于在相對(duì)應(yīng)的線程中,讀取每個(gè)所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)推送需 求信息。
[0035] 上述裝置,優(yōu)選的,所述數(shù)據(jù)推送需求信息包括卸數(shù)方式和文件生成規(guī)則,所述目 標(biāo)位置為預(yù)設(shè)的數(shù)據(jù)集成平臺(tái),則所述推送處理模塊包括:
[0036] 第二讀取單元,用于在相對(duì)應(yīng)的線程中,基于相對(duì)應(yīng)的卸數(shù)方式從每個(gè)所述目標(biāo) 數(shù)據(jù)表中讀取出待推送的目標(biāo)數(shù)據(jù);
[0037] 寫(xiě)文件單元,用于在相對(duì)應(yīng)的線程中,基于相對(duì)應(yīng)的文件生成規(guī)則,對(duì)每個(gè)所述目 標(biāo)數(shù)據(jù)表的目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)的寫(xiě)文件處理,生成每個(gè)所述目標(biāo)數(shù)據(jù)表的推送文件;
[0038] 文件發(fā)送單元,用于在為所述目標(biāo)數(shù)據(jù)庫(kù)的各數(shù)據(jù)表生成相對(duì)應(yīng)的推送文件后, 將各個(gè)所述推送文件發(fā)送至所述數(shù)據(jù)集成平臺(tái)。
[0039] 上述裝置,優(yōu)選的,所述推送文件包括數(shù)據(jù)文件、表結(jié)構(gòu)文件和控制文件,則所述 寫(xiě)文件單元包括:
[0040] 第一寫(xiě)文件子單元,用于基于數(shù)據(jù)庫(kù)緩存技術(shù),將每個(gè)所述目標(biāo)數(shù)據(jù)表的目標(biāo)數(shù) 據(jù)寫(xiě)入相應(yīng)的數(shù)據(jù)文件中;
[0041 ]第二寫(xiě)文件子單元,用于為每個(gè)所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)文件寫(xiě)相應(yīng)的表結(jié)構(gòu)文件 和控制文件;其中,所述表結(jié)構(gòu)文件包括所述數(shù)據(jù)文件的文件名稱、所述數(shù)據(jù)文件所包括的 各字段的字段名