App下載
話題 首頁(yè) > Python2 教程 > Python2 教程話題列表 > 詳情

有沒(méi)有方法可以把2個(gè)100G合成一個(gè)200G?

精華
q462173711 2016-10-20 02:42:32 瀏覽(4596) 回復(fù)(4) 贊(0)
目前想實(shí)現(xiàn)兩個(gè)100G文件合并,日志文件,都有日期,日期會(huì)有所交集,如一份1日到10日,另一份5日到15日,所以合并后也需要對(duì)日期進(jìn)行排序。
目標(biāo)是,查詢某一時(shí)間區(qū)段的信息,目前的打算是:
我可以知道每個(gè)文件大小和日起始時(shí)間,所以若文件過(guò)大,就分割它,然后獲取分割小文件的的起始時(shí)間,時(shí)間區(qū)段只要稍加限制,同時(shí)由于log的連續(xù)性和記錄頻率不太高,就能確保就只有幾個(gè)小文件包含了用戶需要的信息,然后只返回那幾小份的文件的信息,然后全部直接扔進(jìn)內(nèi)存排序都不怕,效率也可以。
但我想想,是不是也有辦法,直接真的可以把2個(gè)100G合成一個(gè)200G的?或有什么更好的辦法,目前在寫模板的基本方法,想封裝好一點(diǎn)以后不管了。但不知道這個(gè)要怎么玩。求教,謝謝!
python linux

回答(4)

babyfiyme 2016-10-20

提供個(gè)思路:我覺(jué)得你分割的思想其實(shí)挺好的,只是實(shí)際上并不需要真的分割,你要做的只是維護(hù)一個(gè)索引文件。就是說(shuō)通過(guò)讀一遍文件,每1000條(比方說(shuō)),將1000條的起始文件偏移和結(jié)束偏移更這1000條的起始時(shí)間和結(jié)束時(shí)間關(guān)聯(lián)起來(lái)。這樣你可以得到一個(gè)索引文件。

時(shí)間1~時(shí)間2,文件1,offset1~offset2
時(shí)間3~時(shí)間4,文件2,offset3~offset4
...

將來(lái)你要查詢的時(shí)候,先查索引文件,就可以知道需要的數(shù)據(jù)在哪個(gè)文件的什么區(qū)間里面了。因?yàn)槟忝總€(gè)文件本身是按時(shí)間排序的,所以在建立索引的時(shí)候無(wú)需排序。

一筆荒蕪 2018-05-31

好慢呀,空空如也,半天不來(lái)大神解決,大佬在哪啦

1144100656 2018-05-31

好慢呀,空空如也,半天不來(lái)大神解決,大佬在哪啦

1152696398 2018-05-31

留名留名!!!,同樣的問(wèn)題,看看咋結(jié)局!!!

要回復(fù),請(qǐng)先登錄 或者注冊(cè)