如何增量匯入MYSQL資料庫中的資料

2021-07-10 01:59:32 字數 3237 閱讀 9228

type="jdbcdatasource"

driver="com.mysql.jdbc.driver"

url="jdbc:mysql:"

user="root"

password="root"/>

name="goods">

name="book"

transformer="clobtransformer"

pk="bid"

query="select bid,bname,author,price,currprice,discount,press,publishtime,edition,pagenum,wordnum,

printtime,booksize,***** from t_book"

deltaimportquery ="select * from t_book where bid='$'"

deltaquery = "select

bidfrom

t_book

where

updatetime > '$'">

column="bid"

name="id" />

column="bname"

name="bname"/>

column="author"

name="bauthor"/>

column="price"

name="bprice"/>

column="currprice"

name="bcurrprice"/>

column="discount"

name="bdiscount"/>

column="press"

name="bpress"/>

column="publishtime"

name="bpublishtime"/>

column="edition"

name="bedition"/>

column="pagenum"

name="bpagenum"/>

column="updatetime"

name ="bupdatetime" />

entity>

document>

dataconfig>

說明:

增量索引的原理是從資料庫中根據deltaquery指定的sql語句查詢出所有需要

增量匯入的資料的id號。

然後根據deltaimportquery指定的sql語句返回所有這些id的資料,即為這

次增量匯入所要處理的資料。

核心思想是:通過內建變數「di

h.de

lta.

id」和

「 」來記錄本次要索引的id和最近一次索引的時間。

solr增量索引配置

一、開始增量索引前的準備工作。

1、認識data-config.xml中相關屬性

注意這個query只返回id欄位

注意這個只返回id欄位

最主要的是我們要知道這樣乙個事實: last_index_time是dataimporthandler的乙個預設字段,(可檢視conf目錄下的dataimporter.properties檔案)

我們可以在任何sql中引用,該欄位用於表明上次做full import或者是delta import(增量匯入)的最後一次時間。

2、資料庫配置注意事項

1)、如果只涉及新增與修改業務,那麼資料庫裡只需新增乙個型別為timpstamp,預設值為當前系統時間的字段 :current_timestamp(mysql)

2)、如果還涉及刪除業務,那麼資料裡就需額外再多新增乙個欄位isdelete,int型別的用0,1來標識,此條記錄是否被刪除,當然也可以用其他字段標識,ture或false都可以

3、dataimporter.properties / _dataimporter.properties

在c:\solr-tomcat\solr\item\conf中檢視是否存在檔案dataimporter.properties,如果沒有,則新建該檔案。

name="activitydb"

type="jdbcdatasource"

driver="com.mysql.jdbc.driver"

url="jdbc:mysql://localhost/test"

user="swang6"

password="swang6"/>

pk="id"

datasource="activitydb"

name="myentity"

query="select * from myentity where is delete=0"

deltaquery="select id from myentity where my_date >'$'"

deletedpkquery="select id from myentity where isdelete=1"

deltaimportquery="select * from myentity where id='$">

column="id"

name="id"/>

column="name"

name="name"/>

column="address"

name="address"/>

column="age"

name="age"/>

column="my_date"

name="my_date"/>

column="isdelete"

name="isdelete"/>

entity>

document>

dataconfig>

注:如果有必要,則可以在schema.xml中新增乙個timestamp的field

做了以上配置後,可以設定linux的cron job或者spring 的taskschuduler或者cron job後,可以定時發url:

http://localhost:8983/solr/dataimport?command=delta-import去做增量索引。更多關於solr做增量索引的說明文件:

當然也可以用solr自帶的scheduler來做增量索引:

#scheduling

mysql增量 mysql資料庫增量恢復

mysqldump uroot p b discuzx f x master data 2 events gzip root discuzx.sql.gz 寫入資料 刪除資料 第一時間關閉資料庫對外讀寫功能,並進入資料執行重新整理mysqlbinlog的位置點,新生成檔案 flush logs 根據...

Solr 6 5 1從mysql資料庫增量匯入資料

第一步 修改solrconfig.xml 720行左右 name dataimport class solr.dataimporthandler name defaults name config db data config.xmlstr lst requesthandler name delta...

如何匯出 匯入mysql資料庫

mysql資料庫的匯出步驟 1 開啟dos命令視窗 2 進入mysql安裝目錄下的bin下面 3 輸入mysqldump u使用者 p密碼 資料庫 匯出目錄加檔名,例如 mysqldump uroot proot mysql mysql.sql,會在bin目錄下產生這個sql檔案。注意結尾的地方不需...