欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

海量地震數(shù)據(jù)的索引構(gòu)建方法、索引庫(kù)及查詢方法與流程

文檔序號(hào):40818099發(fā)布日期:2025-01-29 02:37閱讀:9來源:國(guó)知局
海量地震數(shù)據(jù)的索引構(gòu)建方法、索引庫(kù)及查詢方法與流程

本發(fā)明屬于大數(shù)據(jù)處理,涉及地球物理勘探領(lǐng)域中地震數(shù)據(jù)的處理,具體地說是一種海量地震數(shù)據(jù)的索引構(gòu)建方法、索引庫(kù)及查詢方法。


背景技術(shù):

1、地震數(shù)據(jù)處理是石油勘探行業(yè)中的重要技術(shù),其作用是能夠根據(jù)特定的處理算法對(duì)野外采集的地震數(shù)據(jù)進(jìn)行處理和計(jì)算,從而得出地下地質(zhì)結(jié)構(gòu)的圖像,用于指導(dǎo)后續(xù)的鉆井、石油開采等工作。

2、隨著新的勘探技術(shù)和高精度的采集技術(shù)在石油勘探中不斷應(yīng)用,從野外采集到的原始地震數(shù)據(jù)量增長(zhǎng)迅速,目前單一工區(qū)采集的原始地震數(shù)據(jù)量有的已經(jīng)超過pb級(jí)別,其地震道數(shù)可達(dá)千億條。地震道由道頭和道體兩部分組成。其中道頭中存儲(chǔ)了與該地震道相關(guān)的屬性信息,包括:炮點(diǎn)坐標(biāo)、檢波點(diǎn)坐標(biāo)、采樣點(diǎn)數(shù)、炮號(hào)、道號(hào)等信息,每個(gè)屬性稱為一個(gè)道頭關(guān)鍵字;道體是一個(gè)浮點(diǎn)數(shù)組,每一個(gè)浮點(diǎn)數(shù)稱為一個(gè)采樣點(diǎn)。同時(shí)地震數(shù)據(jù)體是高維度結(jié)構(gòu)化的數(shù)據(jù),每個(gè)地震道都擁有上百種屬性信息,存放在不同的道頭關(guān)鍵字中。

3、然而,交互式地震應(yīng)用程序在訪問地震數(shù)據(jù)體時(shí),通常只對(duì)該地震數(shù)據(jù)體的部分?jǐn)?shù)據(jù)集感興趣。因此,為了提升交互式地震應(yīng)用程序在訪問地震數(shù)據(jù)體時(shí)獲取數(shù)據(jù)道集信息的多樣性及響應(yīng)時(shí)間,通常需要對(duì)pb級(jí)海量地震數(shù)據(jù)進(jìn)行地震數(shù)據(jù)處理。

4、目前地震數(shù)據(jù)處理過程中,訪問地震數(shù)據(jù)索引關(guān)鍵字信息所采用的索引結(jié)構(gòu)主要以多級(jí)關(guān)聯(lián)表的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),主要包括:索引文件、兩級(jí)索引文件和多級(jí)關(guān)鍵字信息文件,各級(jí)數(shù)據(jù)表獨(dú)立存儲(chǔ)于磁盤上。

5、關(guān)鍵字信息表的創(chuàng)建方式分為兩種:

6、第一種是單節(jié)點(diǎn)多線程方式,在程序讀取所有的道頭后,將需要構(gòu)建索引的關(guān)鍵字提取出來并生成索引記錄緩存在內(nèi)存中,隨后利用tbb庫(kù)的多線程將這些記錄并行排序,以多級(jí)數(shù)據(jù)表的形式輸出到存儲(chǔ)設(shè)備上。由于這種方法最多只能使用10個(gè)線程,不適合在地震數(shù)據(jù)量比較大的時(shí)候使用;

7、另一種方式是在mapreduce并行編程框架的基礎(chǔ)上進(jìn)行索引生成和分段排序,生成多個(gè)有序索引文件,最后在主節(jié)點(diǎn)上將所有的輸出結(jié)果進(jìn)行物理合并后得到索引數(shù)據(jù)表。但是這種方法為保證索引數(shù)據(jù)表物理有序,在最終階段需要將reduce階段生成的所有輸出結(jié)果集中到主節(jié)點(diǎn)上進(jìn)行讀取、排序與合并,使合并耗時(shí)會(huì)隨著地震數(shù)據(jù)量的增多而大幅增加。


技術(shù)實(shí)現(xiàn)思路

1、為解決現(xiàn)有技術(shù)中存在的以上不足,本發(fā)明提供了一種海量地震數(shù)據(jù)的索引構(gòu)建方法、索引庫(kù)及查詢方法,其中公開的海量地震數(shù)據(jù)的索引構(gòu)建方法旨在提升海量地震數(shù)據(jù)索引的構(gòu)建效率。

2、為實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案如下:一種海量地震數(shù)據(jù)的索引構(gòu)建方法,該方法基于mapreduce并行編程框架來實(shí)現(xiàn),具體包括以下步驟:

3、s1、解析作業(yè)參數(shù):對(duì)后續(xù)mapreduce作業(yè)運(yùn)行過程中所需要用到的作業(yè)參數(shù)進(jìn)行設(shè)置;

4、s2、構(gòu)建數(shù)據(jù)索引分析文件:基于步驟s1中獲取到的作業(yè)參數(shù),啟動(dòng)mapreduce作業(yè)并控制作業(yè)流程,統(tǒng)計(jì)索引第一關(guān)鍵字從小到大的值及對(duì)應(yīng)的道數(shù)信息,生成數(shù)據(jù)索引分析文件;

5、s3、構(gòu)建數(shù)據(jù)索引文件:同樣是基于步驟s1中獲取到的作業(yè)參數(shù),啟動(dòng)mapreduce作業(yè)并控制作業(yè)流程,在map階段統(tǒng)計(jì)所有索引關(guān)鍵字及對(duì)應(yīng)的道數(shù)信息,在map分區(qū)階段將所有索引關(guān)鍵字有序排列,并通過讀取步驟s2生成的數(shù)據(jù)索引分析文件將所有索引關(guān)鍵字及對(duì)應(yīng)的道數(shù)信息有序分配給reducer進(jìn)程,在reduce階段,每個(gè)reducer進(jìn)程將接收到的數(shù)據(jù)排序后直接輸出生成多級(jí)關(guān)聯(lián)表形式的索引文件。

6、作為本發(fā)明的限定,步驟s1包括:獲取用戶所提供的地震數(shù)據(jù)信息;獲取創(chuàng)建索引所需要的關(guān)鍵字信息;獲取hosts文件;獲取reduce進(jìn)程個(gè)數(shù);獲取臨時(shí)文件存儲(chǔ)路徑。

7、作為本發(fā)明的進(jìn)一步限定,步驟s2包括:

8、s2.1、起始階段:將地震數(shù)據(jù)的道頭拆分為多個(gè)map任務(wù),并動(dòng)態(tài)地分配到各個(gè)mapper進(jìn)程中;

9、s2.2、map階段:每個(gè)mapper進(jìn)程對(duì)該map任務(wù)中獲取的數(shù)據(jù)塊信息進(jìn)行讀取,每次讀取一道道頭數(shù)據(jù),并提取出該道道頭中的索引第一關(guān)鍵字形成key,從存儲(chǔ)讀取對(duì)應(yīng)的數(shù)據(jù)道形成value,存入key/value對(duì)中;

10、s2.3、map分區(qū)階段:調(diào)用劃分函數(shù)getpartition得到key值相對(duì)應(yīng)的reducer進(jìn)程編號(hào),以此將key/value對(duì)均勻地分區(qū)并分配給對(duì)應(yīng)的reduce任務(wù),每個(gè)分區(qū)內(nèi)會(huì)調(diào)用比較函數(shù)類對(duì)key值按照從小到大進(jìn)行排序,最終輸出到每個(gè)mapper進(jìn)程所在節(jié)點(diǎn)的本地存儲(chǔ)介質(zhì)上;

11、s2.4、reduce階段:當(dāng)reducer進(jìn)程接收到所有映射到該reducer進(jìn)程的map輸出后,會(huì)調(diào)用key比較函數(shù)類對(duì)映射到該reducer進(jìn)程的所有數(shù)據(jù)排序,并將相同key對(duì)應(yīng)的所有value存放在一起;在最后的reduce任務(wù)中,將該reducer進(jìn)程中相同key的所有value進(jìn)行累加,即可獲取各個(gè)索引第一關(guān)鍵字所對(duì)應(yīng)的道數(shù)信息;

12、s2.5、輸出階段:讀取每個(gè)reducer進(jìn)程的輸出結(jié)果,按索引第一關(guān)鍵字從小到大進(jìn)行排序后,再將所有文件匯總成一個(gè)數(shù)據(jù)索引分析文件,最終輸出到存儲(chǔ)設(shè)備。

13、作為本發(fā)明的更進(jìn)一步限定,步驟s2.1中按照每個(gè)map任務(wù)處理4096mb的數(shù)據(jù)量,對(duì)地震數(shù)據(jù)的道頭進(jìn)行分塊,并計(jì)算每個(gè)數(shù)據(jù)塊需要讀取的地震數(shù)據(jù)范圍。

14、作為本發(fā)明的更進(jìn)一步限定,步驟s3包括:

15、s3.1、起始階段:將地震數(shù)據(jù)的道頭拆分為多個(gè)map任務(wù),并動(dòng)態(tài)地分配到各個(gè)mapper進(jìn)程中;

16、s3.2、map階段:每個(gè)mapper進(jìn)程對(duì)獲取的數(shù)據(jù)塊信息進(jìn)行讀取,每次讀取一道道頭數(shù)據(jù),并依次提取出該道道頭中的所有索引關(guān)鍵字形成key,從存儲(chǔ)讀取對(duì)應(yīng)的數(shù)據(jù)道形成value,存入key/value對(duì)中;

17、s3.3、map分區(qū)階段:首先重寫比較函數(shù)類,并利用重寫后的比較函數(shù)類將所有索引關(guān)鍵字有序排列;再重寫劃分函數(shù)getpartition,通過讀取步驟s2生成的所述數(shù)據(jù)索引分析文件,并利用重寫后的劃分函數(shù)getpartition將所有索引關(guān)鍵字及對(duì)應(yīng)的道數(shù)信息有序分配給reducer進(jìn)程;

18、s3.4、reduce階段:當(dāng)reducer進(jìn)程接收到所有映射到該reducer進(jìn)程的map輸出后,會(huì)將這些數(shù)據(jù)排序后直接在存儲(chǔ)設(shè)備上輸出多級(jí)關(guān)聯(lián)表形式的索引文件。

19、作為本發(fā)明的再更進(jìn)一步限定,步驟s3.3中,重寫比較函數(shù)類后需要將所有索引關(guān)鍵字依次解析出來進(jìn)行比較,具體為:

20、先將索引第一關(guān)鍵字按從小到大進(jìn)行排序,如果索引第一關(guān)鍵字相等就繼續(xù)比較下一個(gè)索引關(guān)鍵字,以此類推;如果兩道的各個(gè)索引關(guān)鍵字相對(duì),則比較道位置信息,直到將所有索引關(guān)鍵字有序排列。

21、作為本發(fā)明的又再更進(jìn)一步限定,步驟s3.3中,利用重寫后的劃分函數(shù)getpartition進(jìn)行分區(qū)的具體方式為:

22、由key得到索引第一關(guān)鍵字key1,將key1分成numpartitions個(gè)組,分組的個(gè)數(shù)與reducer進(jìn)程個(gè)數(shù)相同;

23、讀取步驟s2生成的所述數(shù)據(jù)索引分析文件,累加每個(gè)索引第一關(guān)鍵字的道數(shù)信息得到數(shù)據(jù)的總道數(shù);根據(jù)平均分配原則,用總道數(shù)除以reducer進(jìn)程個(gè)數(shù)以此獲取每個(gè)reducer進(jìn)程需要處理的道數(shù)信息;

24、根據(jù)每個(gè)reduce任務(wù)需要處理的道數(shù)信息,依次將numpartition0分組文件中key1對(duì)應(yīng)的道數(shù)逐行累加,當(dāng)小于reduce0任務(wù)需要處理的道數(shù)時(shí),將key1對(duì)應(yīng)的所有value劃分到reduce0任務(wù)中,當(dāng)大于reduce0任務(wù)需要處理的道數(shù)時(shí),將對(duì)應(yīng)的多余value劃分到reduce1任務(wù)中;之后將所述多余value的道數(shù),與numpartition1分組文件中key1對(duì)應(yīng)的道數(shù)逐行累加,當(dāng)小于reduce1任務(wù)需要處理的道數(shù)時(shí),將key1對(duì)應(yīng)的所有value劃分到reduce1任務(wù)中,當(dāng)大于reduce1任務(wù)需要處理的道數(shù)時(shí),將對(duì)應(yīng)的多余value劃分到reduce2任務(wù)中;以此類推,直到獲取每個(gè)索引第一關(guān)鍵字的值對(duì)應(yīng)到的reduce進(jìn)程編號(hào);

25、最終將數(shù)據(jù)輸出到每個(gè)mapper進(jìn)程所在節(jié)點(diǎn)的本地存儲(chǔ)介質(zhì)上。

26、本發(fā)明還公開了一種海量地震數(shù)據(jù)索引庫(kù),由如上所述的海量地震數(shù)據(jù)的索引構(gòu)建方法所創(chuàng)建,包括:

27、索引文件,存放當(dāng)前reducer進(jìn)程處理的地震數(shù)據(jù)道數(shù)、所有索引關(guān)鍵字及類型;

28、第一關(guān)鍵字索引文件,存放索引第一關(guān)鍵字的值、對(duì)應(yīng)的地震道數(shù)量以及在其他關(guān)鍵字索引文件中的位置;

29、其他關(guān)鍵字索引文件,存放其他索引關(guān)鍵字的值以及對(duì)應(yīng)的地震道編號(hào);

30、多級(jí)關(guān)鍵字信息文件,文件個(gè)數(shù)為索引關(guān)鍵字個(gè)數(shù)減一,存放當(dāng)前索引關(guān)鍵字的值、包含下一級(jí)索引關(guān)鍵字的最小值、包含下一級(jí)索引關(guān)鍵字的最大值、包含下一級(jí)索引關(guān)鍵字的數(shù)量以及該索引關(guān)鍵字在下一級(jí)索引關(guān)鍵字信息文件中的位置。

31、作為本發(fā)明的限定,還包括總索引文件,存放地震數(shù)據(jù)總道數(shù)、所有索引關(guān)鍵字及類型、使用海量地震數(shù)據(jù)的索引構(gòu)建方法創(chuàng)建索引庫(kù)的標(biāo)志以及reducer進(jìn)程個(gè)數(shù)。

32、本發(fā)明還公開了一種海量地震數(shù)據(jù)的查詢方法,基于海量地震數(shù)據(jù)索引庫(kù),首先通過讀取總索引文件獲取reduce的進(jìn)程數(shù)量,然后根據(jù)需要查詢的各級(jí)索引關(guān)鍵字信息到相應(yīng)的reducenum個(gè)索引文件中進(jìn)行查找;

33、所述海量地震數(shù)據(jù)索引庫(kù)由如上所述的海量地震數(shù)據(jù)的索引構(gòu)建方法所創(chuàng)建。

34、作為本發(fā)明的限定,當(dāng)需要查詢索引關(guān)鍵字key1~keyn范圍的地震數(shù)據(jù)時(shí),到第一關(guān)鍵字索引文件、其他關(guān)鍵字索引文件中進(jìn)行查詢,包括以下步驟:

35、a1、根據(jù)獲取到的reduce進(jìn)程數(shù)量,通過查詢第一關(guān)鍵字索引文件找到符合key1條件的索引項(xiàng);

36、a2、根據(jù)查詢到的key1所對(duì)應(yīng)的索引表位置,定位到其他關(guān)鍵字索引文件中讀取該位置對(duì)應(yīng)的索引數(shù)據(jù);

37、a3、依次按reduce進(jìn)程編號(hào)的順序繼續(xù)讀取其他關(guān)鍵字索引文件,直到依次篩選出符合key2~keyn條件的全部索引項(xiàng);

38、a4、根據(jù)索引項(xiàng)中所存的地震道編號(hào)讀取到對(duì)應(yīng)的地震道數(shù)據(jù)。

39、作為本發(fā)明的另一種限定,當(dāng)需要查詢索引關(guān)鍵字信息時(shí),到多級(jí)關(guān)鍵字信息文件中進(jìn)行查詢,具體為:

40、先依次在所有reducenum個(gè)第一級(jí)關(guān)鍵字信息文件中查詢符合條件的關(guān)鍵字信息,再根據(jù)查詢到的在下一級(jí)關(guān)鍵字信息文件中對(duì)應(yīng)的位置,到第二級(jí)關(guān)鍵字信息文件中進(jìn)行讀取,以此類推,直到得到所需的索引關(guān)鍵字信息。

41、由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,所取得的有益效果是:

42、本發(fā)明公開的海量地震數(shù)據(jù)的索引構(gòu)建方法依賴于mapreduce并行編程框架,其最大創(chuàng)新點(diǎn)在于對(duì)海量地震數(shù)據(jù)執(zhí)行了兩次mapreduce作業(yè),并選擇在最終階段不將所有輸出結(jié)果集中到主節(jié)點(diǎn)上進(jìn)行讀取、排序與合并,解決了合并耗時(shí)隨地震數(shù)據(jù)量增多而大幅增加的問題,有效提高了pb級(jí)海量地震數(shù)據(jù)創(chuàng)建索引的效率。

43、具體的,第一次mapreduce作業(yè)旨在創(chuàng)建數(shù)據(jù)索引分析文件,該文件只對(duì)索引第一關(guān)鍵字從小到大的值及對(duì)應(yīng)的道數(shù)信息進(jìn)行統(tǒng)計(jì),在后續(xù)第二次mapreduce作業(yè)的map分區(qū)階段,通過讀取該文件進(jìn)行關(guān)鍵字-節(jié)點(diǎn)分配,使分配到每個(gè)reducer進(jìn)程的數(shù)據(jù)是有序的;

44、第二次mapreduce作業(yè)旨在創(chuàng)建數(shù)據(jù)索引文件(即針對(duì)海量地震數(shù)據(jù)創(chuàng)建的索引),該文件統(tǒng)計(jì)所有索引關(guān)鍵字及對(duì)應(yīng)的道數(shù)信息,由于分配到每個(gè)reducer進(jìn)程的數(shù)據(jù)是有序的,每個(gè)reducer進(jìn)程分別輸出多級(jí)數(shù)據(jù)表形式的索引文件后,得到的也是整體有序的排序結(jié)果,因此無需再將所有結(jié)果集中到主節(jié)點(diǎn)上進(jìn)行讀取、排序與合并,直接輸出至存儲(chǔ)設(shè)備上即可。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永城市| 迁西县| 宁晋县| 瑞昌市| 百色市| 普定县| 商河县| 惠州市| 大余县| 云浮市| 石台县| 边坝县| 福州市| 湖南省| 郁南县| 闽侯县| 含山县| 汕尾市| 南丹县| 明溪县| 平利县| 色达县| 恩施市| 桃园县| 聂拉木县| 孝感市| 石渠县| 仲巴县| 藁城市| 邳州市| 分宜县| 乌拉特后旗| 西畴县| 久治县| 太白县| 东阿县| 徐闻县| 疏附县| 南皮县| 洛南县| 恩平市|