亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        海量數(shù)據(jù)上傳的技術(shù)研究與實(shí)現(xiàn)

        2016-12-12 02:13:32伍運(yùn)珍劉順坤
        廣東通信技術(shù) 2016年11期
        關(guān)鍵詞:數(shù)據(jù)庫

        [伍運(yùn)珍 劉順坤]

        海量數(shù)據(jù)上傳的技術(shù)研究與實(shí)現(xiàn)

        [伍運(yùn)珍 劉順坤]

        首先介紹海量數(shù)據(jù)上傳的背景、上傳的流程,然后比較不同的數(shù)據(jù)上傳方式,主要包括Dblink方式和GoldenGate方式,最后闡述可以保證數(shù)據(jù)讀寫效率的關(guān)鍵技術(shù),包括動(dòng)態(tài)分區(qū)管理技術(shù)、并行度優(yōu)化技術(shù)以及管道通信技術(shù)。

        海量數(shù)據(jù) 創(chuàng)新應(yīng)用 動(dòng)態(tài)分區(qū) 并行度優(yōu)化 管道通信

        伍運(yùn)珍

        計(jì)算機(jī)工程師,碩士,現(xiàn)任職于中國電信股份有限公司廣東研究院,長(zhǎng)期從事電信IT支撐系統(tǒng)的設(shè)計(jì)與研發(fā)工作。

        劉順坤

        資深軟件工程師,本科,現(xiàn)任職于亞信科技(中國)有限公司,長(zhǎng)期從事電信IT支撐系統(tǒng)的設(shè)計(jì)與研發(fā)工作。

        1 引言

        移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)發(fā)展的趨勢(shì)及特點(diǎn)要求提供更為及時(shí)、更為豐富的服務(wù),只有服務(wù)能夠得到快速響應(yīng),才有好的客戶感知。當(dāng)前,中國電信的數(shù)據(jù)分散在各省IT系統(tǒng),要提供統(tǒng)一的對(duì)外服務(wù),首先需要通過統(tǒng)一平臺(tái)與各省的接口獲取數(shù)據(jù),然后才能對(duì)外提供服務(wù)。這樣的方案流程長(zhǎng),時(shí)效性低,因此,將各省的海量數(shù)據(jù)集中存儲(chǔ)到全國統(tǒng)一的數(shù)據(jù)平臺(tái),然后通過統(tǒng)一平臺(tái)對(duì)外提供服務(wù)是高效、快捷的方式。

        數(shù)據(jù)集中存儲(chǔ),需要各省將數(shù)據(jù)上傳到統(tǒng)一平臺(tái),那么數(shù)據(jù)該如何上傳?對(duì)于海量數(shù)據(jù),上傳的流程和方式的選擇非常重要;數(shù)據(jù)上傳后如何更快地刪除舊數(shù)據(jù)、寫入新數(shù)據(jù)?對(duì)于耗時(shí)的數(shù)據(jù)庫操作,如何避免因超時(shí)被斷開連接?本文針對(duì)海量數(shù)據(jù)的上傳以及上傳后的入庫中遇到的各種問題進(jìn)行了分析和研究。

        2 海量數(shù)據(jù)上傳的流程

        分布在各省的數(shù)據(jù)上傳到統(tǒng)一平臺(tái),但是各省的數(shù)據(jù)不一定與統(tǒng)一平臺(tái)的主數(shù)據(jù)和元數(shù)據(jù)一致,而數(shù)據(jù)要可用,主數(shù)據(jù)必須一致,因此統(tǒng)一平臺(tái)必須先定義好元數(shù)據(jù)和主數(shù)據(jù),各省進(jìn)行數(shù)據(jù)轉(zhuǎn)換后再上傳。各地?cái)?shù)據(jù)在轉(zhuǎn)換過程中,由于源數(shù)據(jù)本身有問題或者轉(zhuǎn)換程序的不完備,會(huì)出現(xiàn)一些不符合要求的數(shù)據(jù),不同省的數(shù)據(jù),也可能存在著數(shù)據(jù)沖突,因此,統(tǒng)一數(shù)據(jù)平臺(tái)的數(shù)據(jù)要真正可用,需要將數(shù)據(jù)進(jìn)行清洗之后再進(jìn)入統(tǒng)一平臺(tái)的數(shù)據(jù)庫。

        基于上述考慮,海量數(shù)據(jù)的上傳流程中應(yīng)通過中間表來進(jìn)行,各省數(shù)據(jù)在上傳前,先轉(zhuǎn)換到本地中間表,然后再從本地中間表上傳到統(tǒng)一數(shù)據(jù)平臺(tái)的中間表,最后,統(tǒng)一平臺(tái)再進(jìn)行數(shù)據(jù)入庫。流程如圖1。

        圖1 海量數(shù)據(jù)上傳流程

        (1)在各省數(shù)據(jù)庫中,通過配置生成需增量上傳的關(guān)鍵信息ID表(如客戶ID、資產(chǎn)ID等),統(tǒng)一平臺(tái)和各地約定每個(gè)批次數(shù)據(jù)提取間隔時(shí)間以及批次生成規(guī)則,如5分鐘生成一個(gè)批次,各省根據(jù)關(guān)鍵信息ID表,采用程序(或存儲(chǔ)過程)方式從各數(shù)據(jù)庫表中獲取相關(guān)信息,將本批次數(shù)據(jù)入增量上傳信息中間表,在本批次各個(gè)對(duì)象都入到增量上傳信息中間表后,在批次結(jié)束表中插入相應(yīng)的批次信息以及本批次業(yè)務(wù)對(duì)象信息;

        (2)各省根據(jù)數(shù)據(jù)入庫先后順序,將省增量上傳信息中間表和批次結(jié)束表的內(nèi)容復(fù)制到統(tǒng)一平臺(tái)中間表中;

        (3)統(tǒng)一平臺(tái)從批次結(jié)束表獲取已同步的批次號(hào),然后根據(jù)批次對(duì)平臺(tái)側(cè)中間表數(shù)據(jù)進(jìn)行校驗(yàn)并入庫到統(tǒng)一庫的數(shù)據(jù)表中,統(tǒng)一平臺(tái)生成每個(gè)批次的校驗(yàn)應(yīng)答數(shù)據(jù),各省遠(yuǎn)程獲取校驗(yàn)應(yīng)答信息進(jìn)行處理。

        3 海量數(shù)據(jù)上傳方式

        各省的中間表數(shù)據(jù)上傳到統(tǒng)一平臺(tái)的中間表,常規(guī)有3種方式:第一,程序接口的方式;第二,Dblink方式;第三,GoldenGate方式。對(duì)于海量數(shù)據(jù),如果通過接口方式上傳,接口壓力會(huì)非常大,因此,一般采用Dblink方式以及GoldenGate方式。下面我們先介紹下這兩種方式,然后再對(duì)這兩種方式進(jìn)行比較。

        3.1 DBlink方式

        DBlink 即DATABASE LINK,如果有兩臺(tái)不同的數(shù)據(jù)庫服務(wù)器,需要從一臺(tái)數(shù)據(jù)庫服務(wù)器的一個(gè)用戶讀取另一臺(tái)數(shù)據(jù)庫服務(wù)器下的某個(gè)用戶的數(shù)據(jù),這種情況就可以使用dblink。dblink和數(shù)據(jù)庫中的view類似,建dblink的時(shí)候需要知道待讀取數(shù)據(jù)庫的ip地址,ssid以及數(shù)據(jù)庫用戶名和密碼。

        3.2 GoldenGate方式

        GoldenGate軟件是一種基于日志的結(jié)構(gòu)化數(shù)據(jù)復(fù)制軟件,它通過解析源數(shù)據(jù)庫在線日志或歸檔日志獲得數(shù)據(jù)的增量變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫,從而實(shí)現(xiàn)源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫同步。

        GoldenGate 可以在異構(gòu)的IT基礎(chǔ)結(jié)構(gòu)(包括幾乎所有常用操作系統(tǒng)平臺(tái)和數(shù)據(jù)庫平臺(tái))之間實(shí)現(xiàn)大量數(shù)據(jù)亞秒級(jí)的實(shí)時(shí)復(fù)制,適合在應(yīng)急系統(tǒng)、在線報(bào)表、實(shí)時(shí)數(shù)據(jù)倉庫供應(yīng)、交易跟蹤、數(shù)據(jù)同步、集中分發(fā)、容災(zāi)等多個(gè)場(chǎng)景下應(yīng)用。同時(shí),GoldenGate可以實(shí)現(xiàn)一對(duì)一、廣播(一對(duì)多)、聚合(多對(duì)一)、雙向、點(diǎn)對(duì)點(diǎn)、級(jí)聯(lián)等多種靈活的拓?fù)浣Y(jié)構(gòu)。

        GoldenGate的工作詳細(xì)過程如下:

        (1)捕獲進(jìn)程:GoldenGate利用捕捉進(jìn)程(Capture Process)在源系統(tǒng)端讀取Online Redo Log或Archive Log,然后進(jìn)行解析,只提取其中數(shù)據(jù)的變化如增、刪、改操作,并將相關(guān)信息轉(zhuǎn)換為GoldenGate TDM自定義的中間格式存放在隊(duì)列文件中。

        (2)傳送文件:利用傳送進(jìn)程將隊(duì)列文件通過TCP/IP傳送到目標(biāo)系統(tǒng)。捕捉進(jìn)程在每次讀完log中的數(shù)據(jù)變化并在數(shù)據(jù)傳送到目標(biāo)系統(tǒng)后,會(huì)寫檢查點(diǎn),記錄當(dāng)前完成捕捉的log位置,檢查點(diǎn)的存在可以使捕捉進(jìn)程在中止并恢復(fù)后可從檢查點(diǎn)位置繼續(xù)復(fù)制。目標(biāo)系統(tǒng)接受數(shù)據(jù)變化并緩存到GoldenGate TDM隊(duì)列當(dāng)中,隊(duì)列為一系列臨時(shí)存儲(chǔ)數(shù)據(jù)變化的文件,等待投遞進(jìn)程讀取數(shù)據(jù)。

        (3)投遞數(shù)據(jù):GoldenGate TDM投遞進(jìn)程從隊(duì)列中讀取數(shù)據(jù)變化并創(chuàng)建對(duì)應(yīng)的SQL語句,通過數(shù)據(jù)庫的本地接口執(zhí)行,提交數(shù)據(jù)庫成功后更新自己的檢查點(diǎn),記錄已經(jīng)完成復(fù)制的位置,數(shù)據(jù)的復(fù)制過程最終完成。

        3.3 兩種上傳方式比較

        表1 兩種上傳方式比較

        從表1的比較可以看出:對(duì)于新增數(shù)據(jù)的導(dǎo)出,使用goldgate,需要的開發(fā)量(包括線程、時(shí)序的控制、數(shù)據(jù)轉(zhuǎn)換)較小,流程相對(duì)簡(jiǎn)單,且及時(shí)性較強(qiáng);對(duì)于存量數(shù)據(jù)的導(dǎo)出,goldengate方式耗時(shí)較少;對(duì)于海量數(shù)據(jù)的上傳,goldengate的準(zhǔn)確性較高;對(duì)原系統(tǒng)的影響、主數(shù)據(jù)的變更實(shí)現(xiàn)方式,兩者基本一致;因此,在海量數(shù)據(jù)的上傳中我們采用Goldengate方式。

        4 數(shù)據(jù)入庫應(yīng)用的關(guān)鍵技術(shù)

        使用Goldengate將海量數(shù)據(jù)從各省中間表上傳到統(tǒng)一平臺(tái)的中間表后,需要將中間表的數(shù)據(jù)入庫到統(tǒng)一平臺(tái)的數(shù)據(jù)庫中,新數(shù)據(jù)的入庫及舊數(shù)據(jù)的刪除過程中,也應(yīng)用了一些關(guān)鍵的技術(shù)。為了提高數(shù)據(jù)入庫的效率,在實(shí)際的運(yùn)營中,我們采用了3種技術(shù):動(dòng)態(tài)分區(qū)管理技術(shù)、并行度優(yōu)化管理技術(shù)及運(yùn)用管道通信技術(shù)。

        4.1 動(dòng)態(tài)分區(qū)管理技術(shù)

        各省上傳的數(shù)據(jù)是海量的,而存儲(chǔ)空間卻總是有限的,已上傳并存入中間表的數(shù)據(jù)在寫入統(tǒng)一平臺(tái)的數(shù)據(jù)庫后,仍會(huì)保留一段時(shí)間以便稽核,但到了一段時(shí)限,中間表中的這些數(shù)據(jù)保留的意義不大,需要清理這些數(shù)據(jù)來釋放存儲(chǔ)空間。清理過往的海量數(shù)據(jù),如果采用常規(guī)的delete的方式,效率會(huì)非常低,所以為了保證數(shù)據(jù)清理的效率,數(shù)據(jù)入庫和清理數(shù)據(jù)時(shí),可以采用效率更高的動(dòng)態(tài)分區(qū)的方式。

        使用動(dòng)態(tài)分區(qū)的方法如圖2。

        (1)利用分區(qū)模板指定HASH分區(qū)數(shù)及存儲(chǔ)表空間。在制定分區(qū)數(shù)及存儲(chǔ)表空間時(shí),可參考過往的各省的數(shù)據(jù)量的大小及發(fā)展趨勢(shì)。

        圖2 動(dòng)態(tài)分區(qū)管理技術(shù)

        (2)數(shù)據(jù)的上傳會(huì)生成批次,當(dāng)有新批次的數(shù)據(jù)入庫時(shí),首先根據(jù)分區(qū)模板,創(chuàng)建以批次號(hào)為分區(qū)ID的分區(qū),將數(shù)據(jù)入庫。

        (3)如果是已有批次號(hào)的數(shù)據(jù)入庫時(shí),首先判斷該批次對(duì)應(yīng)的分區(qū)是否存在,若存在,則通過drop清空數(shù)據(jù);創(chuàng)建新批次,進(jìn)行數(shù)據(jù)入庫。

        (4)當(dāng)需要?jiǎng)h除數(shù)據(jù)的時(shí)候,用drop 分區(qū)的方式來替代常規(guī)的delete,可以快速地刪除元數(shù)據(jù)和數(shù)據(jù)。

        如A省每個(gè)月上傳當(dāng)月數(shù)據(jù),根據(jù)該省的數(shù)據(jù)情況制定分區(qū)模板。1月,A省上傳了全量數(shù)據(jù)到P201601分區(qū)中,2月,A省也上傳了全量數(shù)據(jù)到P260102分區(qū)中,3月,存儲(chǔ)空間不夠,需要?jiǎng)h除1月的數(shù)據(jù),就可以直接drop分區(qū)ID為P201601的分區(qū)。drop分區(qū)的效率比delete的數(shù)據(jù)效率高百倍以上,同時(shí)避免delete操作產(chǎn)生高水位表,影響數(shù)據(jù)庫性能。

        4.2 并行度優(yōu)化管理技術(shù)

        在海量數(shù)據(jù)的上傳和清理中,采用動(dòng)態(tài)分區(qū)的方式來保證數(shù)據(jù)清理的效率。大數(shù)據(jù)量表均采用HASH分區(qū),而在對(duì)分區(qū)內(nèi)的數(shù)據(jù)進(jìn)行操作時(shí),可以通過在SQL語句中增加并行度參數(shù)((/*+append parallel(4)*/)),利用oracle并發(fā)處理機(jī)制,來提高數(shù)據(jù)入庫和查詢的性能。

        方法如圖3。

        圖3 并行度優(yōu)化管理技術(shù)

        在從分區(qū)表1中往分區(qū)表2插入數(shù)據(jù)時(shí),可以增加并行度,在分區(qū)一進(jìn)行查詢時(shí),也可以增加并行度。增加的并行度參數(shù)可以根據(jù)主機(jī)CPU的個(gè)數(shù)來進(jìn)行配置。如以某省數(shù)據(jù)入庫為例,數(shù)據(jù)庫配置為16C配置,如果直接使用insert語句做插入操作,1 000萬數(shù)據(jù)入庫需花費(fèi)120秒,如果增加并行度參數(shù),參數(shù)為8個(gè)并行度處理入庫,則入庫時(shí)間可縮短為20秒。

        另外,由于大數(shù)據(jù)的增加刪除查詢操作會(huì)產(chǎn)生大量的redo,REDO記錄transaction logs,以恢復(fù)為目的(如機(jī)器停電,那么在重起之后需要online redo logs去恢復(fù)系統(tǒng)到失敗點(diǎn)),但對(duì)一個(gè)運(yùn)營非常穩(wěn)定的系統(tǒng),如海量數(shù)據(jù)的入庫時(shí),效率更加重要,可以減少redo以增加性能。這種情況下,在SQL語句中增加nologging,從而減少redo,加快數(shù)據(jù)入庫的速度。

        4.3 管道通信技術(shù)

        批量數(shù)據(jù)入庫時(shí),采用工作流調(diào)度方式,包括校驗(yàn)、入庫等環(huán)節(jié)。因?yàn)閿?shù)據(jù)量巨大,校驗(yàn)和入庫操作是耗時(shí)的操作。對(duì)于耗時(shí)的數(shù)據(jù)庫操作,可能因超時(shí)被斷開連接。

        解決上述問題的方法是動(dòng)態(tài)創(chuàng)建JOB進(jìn)行耗時(shí)的校驗(yàn)和入庫等操作,并通過oracle的管道獲取JOB執(zhí)行結(jié)果。

        管道通信的具體使用方法如圖4。

        圖4 管理通信技術(shù)

        以A省數(shù)據(jù)入庫為例,有數(shù)據(jù)100萬條,后臺(tái)程序需逐一進(jìn)行校驗(yàn)和入庫,這是一個(gè)相當(dāng)耗時(shí)的操作,單個(gè)任務(wù)運(yùn)行時(shí),需要耗時(shí)3分鐘,當(dāng)有多個(gè)任務(wù)并行時(shí),耗時(shí)可能超過10分鐘,在這10分鐘以內(nèi),數(shù)據(jù)的連接可能因?yàn)楦鞣N原因被自動(dòng)斷開了,但應(yīng)用程序卻無法判斷是存儲(chǔ)過程是否出現(xiàn)了異常,因此需要等待并要做大量的業(yè)務(wù)邏輯判斷、監(jiān)控和控制。

        通過Oracle管道方式能很好地解決這個(gè)問題。首先將數(shù)據(jù)的校驗(yàn)和入庫寫成存儲(chǔ)過程,使用JOB將這個(gè)存儲(chǔ)過程作為任務(wù)提交到任務(wù)隊(duì)列中,然后將任務(wù)放在管道里,Oracle管道會(huì)將任務(wù)處理結(jié)果放在管道中,一段時(shí)間后,程序再去獲取管道的處理結(jié)果。這樣程序不用跟蹤任務(wù)進(jìn)行的過程,只需定期去獲取任務(wù)的結(jié)果。

        5 結(jié)束語

        隨著大數(shù)據(jù)信息技術(shù)的不斷發(fā)展,海量數(shù)據(jù)的匯聚及應(yīng)用是一種發(fā)展趨勢(shì)。本文提出了一種海量數(shù)據(jù)上傳的解決方案,并對(duì)海量數(shù)據(jù)上傳的方式選擇、數(shù)據(jù)上傳流程及海量數(shù)據(jù)的讀寫等過程給出了合理的技術(shù)建議。

        1 明日科技.Oracle 從入門到精通.北京:清華大學(xué)出版社,2012:80

        2 Ben Prusinski&Steve Phillips&Richard Chung.Expert Oracle GoldenGate.美國:Apress,2011:30

        10.3969/j.issn.1006-6403.2016.11.014

        (2016-11-02)

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        18禁裸男晨勃露j毛免费观看| 日韩欧美人妻一区二区三区| 亚洲国产综合专区在线电影| 国产精品农村妇女一区二区三区| 乱中年女人伦av一区二区| 久久熟女乱一区二区三区四区| 中文字幕丰满乱子无码视频| 一区二区三区四区免费国产视频| 日本大尺度吃奶呻吟视频| 中文字幕亚洲精品在线免费| 狠狠色噜噜狠狠狠97影音先锋| 国产成人无码专区| 无码国产日韩精品一区二区| 在线播放亚洲第一字幕| av天堂精品久久综合网| 国产精品女丝袜白丝袜| 一本久道综合在线无码人妻 | 精品一区二区三区人妻久久| a级毛片高清免费视频就| 精品中文字幕在线不卡| 91最新免费观看在线| 久久久www成人免费毛片| 日本大胆人体亚裔一区二区| 男人边吻奶边挵进去视频| 国产三级精品视频2021| 亚洲狠狠久久五月婷婷| 久久久国产精品ⅤA麻豆| 国产成人精品免费久久久久| 日本一区二区三深夜不卡| 欧美 国产 日产 韩国 在线| 日本19禁啪啪吃奶大尺度| 自拍视频在线观看国产| 亚洲a级片在线观看| 少妇下面好紧好多水真爽播放| 日韩女同在线免费观看| 美女视频永久黄网站免费观看国产 | 久久精品国产亚洲av高清漫画| 亚洲av高清一区二区三| 今井夏帆在线中文字幕| 日本少妇按摩高潮玩弄| 亚洲h在线播放在线观看h|