增量導(dǎo)入數(shù)據(jù)——DeltaImport

在之前《DIH——QuickStart》中褐荷,用的是full-import勾效,也就是將數(shù)據(jù)庫表中所有的數(shù)據(jù)到導(dǎo)入solr中,但是在數(shù)據(jù)量很大的時候這種方式導(dǎo)入數(shù)據(jù)就會很慢叛甫,尤其是在新增的數(shù)據(jù)相對于原來的數(shù)據(jù)來說很少的時候层宫。Solr提供了一種增量導(dǎo)入數(shù)據(jù)的方式——DeltaImport,現(xiàn)在來學(xué)習(xí)一下怎么樣實(shí)現(xiàn)增量導(dǎo)入合溺。
  
  在數(shù)據(jù)庫表中增加一列l(wèi)ast_modified(timestamp類型)卒密,用來記錄數(shù)據(jù)添加/更新時間:

在數(shù)據(jù)庫表中新增一列

然后再在數(shù)據(jù)庫中增加兩條數(shù)據(jù):
  


修改data-config.xml

<dataConfig>
  <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/test" 
              user=xxxx 
              password=xxxx/>
  <document>
    <entity name="news" pk="id" 
            query="select * from news"
            deltaImportQuery="select * from news where id='${dih.delta.id}'"
            deltaQuery="select id from news where last_modified > '${dih.last_index_time}'">
    </entity>
  </document>
</dataConfig>

然后在solr admin界面中缀台,執(zhí)行Dataimport->delta-import就可以了棠赛,這里不要選擇clean,否則之前的索引都會被刪除:

執(zhí)行delta-import

從右邊的狀態(tài)可以看到成功添加了兩個文檔膛腐,再查詢中就可以看到新加的兩行內(nèi)容了:
  


查詢到新內(nèi)容

Delta-import步驟:

首先按照query指定的語句查詢出符合條件的記錄睛约。
  然后從這些數(shù)據(jù)中根據(jù)deltaQuery指定的SQL語句查詢出所有需要增量導(dǎo)入的數(shù)據(jù)的ID號。
  根據(jù)deltaImportQuery指定的SQL語句返回所有這些ID的數(shù)據(jù)哲身,即本次增量導(dǎo)入要處理得數(shù)據(jù)辩涝。

在conf文件夾下有個dataimport.properties文件,用來記錄每個表(entity)索引最后更新的時間勘天。

person.last_index_time=2016-08-10 01:44:33
item.last_index_time=2016-08-11 05:33:11
last_index_time=2016-08-11 07:16:11
news.last_index_time=2016-08-11 07:16:11

在full-import或者delta-import之后怔揩,就會更新這個文件里面的值。執(zhí)行delta-import的時候脯丝,通過內(nèi)置變量${dih.last_index_time}獲得這個文件中的最近一次索引的時間商膊,與相應(yīng)表中的last_modified列作比較,如果在last_index_time之后的行宠进,就導(dǎo)入晕拆。

Solr時區(qū)問題:

Solr默認(rèn)采用的是協(xié)調(diào)世界時UTC,而數(shù)據(jù)庫中的是本地時間(UTC+8)材蹬,如果這兩個時間表示方式不一致的話會導(dǎo)致增量導(dǎo)入的數(shù)據(jù)錯誤.
  在solr.in.sh中修改solr_timezone為“Asia/Shanghai”或者"UTC+8"好像不起作用实幕,所以只能采用下面的方法:
  因?yàn)橹袊鴷r區(qū)比UTC多八個小時吝镣,所以可以在deltaQuery的時候給last_index_time加上8:

  deltaQuery="select id from news where last_modified >'${dih.last_index_time}+8'"

參考資料:
[1] https://wiki.apache.org/solr/DataImportHandler
[2] http://www.aboutyun.com/thread-10496-1-1.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市昆庇,隨后出現(xiàn)的幾起案子末贾,更是在濱河造成了極大的恐慌,老刑警劉巖整吆,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件未舟,死亡現(xiàn)場離奇詭異,居然都是意外死亡掂为,警方通過查閱死者的電腦和手機(jī)裕膀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勇哗,“玉大人昼扛,你說我怎么就攤上這事∮担” “怎么了抄谐?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扰法。 經(jīng)常有香客問我蛹含,道長,這世上最難降的妖魔是什么塞颁? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任浦箱,我火速辦了婚禮,結(jié)果婚禮上祠锣,老公的妹妹穿的比我還像新娘酷窥。我一直安慰自己,他們只是感情好伴网,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布蓬推。 她就那樣靜靜地躺著,像睡著了一般澡腾。 火紅的嫁衣襯著肌膚如雪沸伏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天动分,我揣著相機(jī)與錄音毅糟,去河邊找鬼。 笑死刺啦,一個胖子當(dāng)著我的面吹牛留特,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜕青,長吁一口氣:“原來是場噩夢啊……” “哼苟蹈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起右核,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤慧脱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贺喝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菱鸥,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年躏鱼,在試婚紗的時候發(fā)現(xiàn)自己被綠了氮采。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡染苛,死狀恐怖鹊漠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茶行,我是刑警寧澤躯概,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站畔师,受9級特大地震影響娶靡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜看锉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一姿锭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧度陆,春花似錦艾凯、人聲如沸献幔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜡感。三九已至蹬蚁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郑兴,已是汗流浹背犀斋。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留情连,地道東北人叽粹。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虫几。 傳聞我的和親對象是個殘疾皇子锤灿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • solr 數(shù)據(jù)同步但校,全量、增量方式 DIH全量同步(全表數(shù)據(jù))(一般做第一次數(shù)據(jù)同步) 首先創(chuàng)建對應(yīng)的數(shù)據(jù)庫表 s...
    逐暗者閱讀 14,612評論 1 26
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理啡氢,服務(wù)發(fā)現(xiàn)状囱,斷路器,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 兩年前用過solr5.1版本的倘是,當(dāng)時只是簡單入個門亭枷,拿來在項(xiàng)目里建個全文索引,然后再query搀崭,其他什么也沒做奶栖,還...
    Coselding閱讀 3,095評論 3 22
  • ??Solr是一個高性能,采用Java5開發(fā)门坷,基于Lucene的全文搜索服務(wù)器宣鄙。同時對其進(jìn)行了擴(kuò)展,提供了比Luc...
    繾綣離愁閱讀 1,133評論 0 0
  • 七歲的時候默蚌,爸媽捎信來要莫等回家上一年級冻晤,她才得以回家。是啊绸吸,在姥姥家都已經(jīng)好幾年了鼻弧,雖然兩家離得也不遠(yuǎn),...
    芊芊子軒閱讀 239評論 6 2