mysql增量灌入数据_如何增量导入MYSQL数据库中的数据

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://127.0.0.1/goods" user="root" password="root"/>

pk="bid"

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

printtime,booksize,paper from t_book"

deltaImportQuery ="select * from t_book where bid='${dih.delta.bid}'"

deltaQuery = "select bid from t_book where updatetime > '${dih.last_index_time}'">

entity>

document>

dataConfig>

说明:

增量索引的原理是从数据库中根据deltaQuery指定的SQL语句查询出所有需要

增量导入的数据的ID号。

然后根据deltaImportQuery指定的SQL语句返回所有这些ID的数据,即为这

次增量导入所要处理的数据。

核心思想是:通过内置变量“dih.delta.id”和“{dih.last_index_time}”来记录本次要索引的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 / {corename}_dataimporter.properties

在C:\solr-tomcat\solr\item\conf中查看是否存在文件dataimporter.properties,如果没有,则新建该文件。

这个配置文件很重要,它是用来记录索引的最新一次修改时间的,通过该配置文件可以找出新增的、修改的或者删除的记录。相关实例:

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

deltaQuery="select ID from myentity where my_date >'${dih.last_index_time}'"

deletedPkQuery="select ID from myentity where isdelete=1"

deltaImportQuery="select * from myentity where ID='${dih.delta.id}">

entity>

document>

dataConfig>

注:如果有必要,则可以在schema.xml中添加一个timestamp的field

做了以上配置后,可以设置linux的cron job或者Spring 的TaskSchuduler或者Cron Job后,可以定时发url:

http://localhost:8983/solr/dataimport?command=delta-import去做增量索引。更多关于Solr做增量索引的说明文档:http://wiki.apache.org/solr/DataImportHandler

当然也可以用Solr自带的Scheduler来做增量索引:

http://wiki.apache.org/solr/DataImportHandler#Scheduling

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值