鍍金池/ 問(wèn)答/PHP/ php大數(shù)據(jù)更新,增量處理

php大數(shù)據(jù)更新,增量處理

1.背景:公司是做域名的,目前要對(duì)接Godaddy的一口價(jià)域名,對(duì)方一口價(jià)域名數(shù)據(jù)量較大,只給一個(gè)全部數(shù)據(jù)的接口,且產(chǎn)品要求定時(shí)更新域名數(shù)據(jù)(新增新寄售的域名,去除狀態(tài)異常的域名)
2.問(wèn)題:導(dǎo)入完整數(shù)據(jù)后,要如何更新數(shù)據(jù),目前采用的方法是:清空表中Godaddy的所有數(shù)據(jù),然后重新調(diào)接口導(dǎo)入所有數(shù)據(jù),有沒(méi)有什么好辦法,可以實(shí)現(xiàn)數(shù)據(jù)的增量更新處理(數(shù)據(jù)量差不多有600W左右)
有沒(méi)有哪位大神指點(diǎn)一下,多謝?。?!

回答
編輯回答
雨蝶

“清空數(shù)據(jù)表再重新導(dǎo)入全部數(shù)據(jù)”這種方法對(duì)數(shù)據(jù)庫(kù)的壓力太大了。你在調(diào)接口獲取到新的全量數(shù)據(jù)后,做一次遍歷,逐條逐條的跟已有的數(shù)據(jù)做對(duì)比,如果不一樣,就說(shuō)明這條數(shù)據(jù)已經(jīng)發(fā)生了變更,這時(shí)候update一下數(shù)據(jù)庫(kù)對(duì)應(yīng)的記錄即可。

其實(shí)這種情況最好的解決方法是,讓Godaddy那邊提供一個(gè)增量接口。

2018年7月5日 19:24
編輯回答
乖乖瀦

個(gè)人覺(jué)得,先清空,然后再填入的辦法還是有點(diǎn)問(wèn)題,在清空數(shù)據(jù)后數(shù)據(jù)填充前就會(huì)有一段時(shí)間的真空期。

那個(gè)分批次的接口有沒(méi)有排序的功能,能夠使用offset 去獲取新的域名,然后, 還需要一個(gè)查詢域名的接口,這種接口應(yīng)該會(huì)有提供的吧,不然你們系統(tǒng),做域名感覺(jué)沒(méi)發(fā)做呀。
在用戶查詢域名的時(shí)候再去判斷這個(gè)域名的更新時(shí)間,如果大于某一個(gè)閾值,就重新去單獨(dú)查詢這個(gè)域名然后更新到你們的系統(tǒng)。
當(dāng)然只是一種思路,如果條件不滿足再想其他辦法。

2017年2月27日 10:44
編輯回答
傻叼

你是怎么對(duì)接口導(dǎo)入的 php cli , 還是用了第三方swoole 什么擴(kuò)展導(dǎo)入的?

數(shù)據(jù)庫(kù)瓶頸在哪里你就是開(kāi)100個(gè)進(jìn)程也沒(méi)有,數(shù)據(jù)庫(kù)插不進(jìn)去,需要的時(shí)間也差不多。

可不可以每50萬(wàn)條數(shù)據(jù) 分一張表導(dǎo)入?

2017年9月25日 01:12
編輯回答
呆萌傻

另做一套備用程序,用新的全量數(shù)據(jù)比對(duì)現(xiàn)有的數(shù)據(jù),自己給正式站點(diǎn)提供增量接口呢?

2018年5月30日 21:34