【发布时间】:2017-07-25 13:27:56
【问题描述】:
我正在索引数据库中的数据。我正在使用增量导入来获取最近更新的数据。但是,我发现它两次获取整个数据并处理一次,尽管更改仅适用于一行。
我的 config.xml 中给出了 deltaquery:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.github.cassandra.jdbc.CassandraDriver" url="jdbc:c*://127.0.0.1:9042/test" autoCommit="true" rowLimit = '-1' batchSize="-1"/>
<document name="content">
<entity name="test" query="SELECT * from person" deltaImportQuery="select * from person where seq=${dataimporter.delta.seq}" deltaQuery="select seq from person where last_modified > '${dataimporter.last_index_time}' ALLOW FILTERING" autoCommit="true">
<field column="seq" name="id" />
<field column="last" name="last_s" />
<field column="first" name="first_s" />
<field column="city" name="city_s" />
<field column="zip" name="zip_s" />
<field column="street" name="street_s" />
<field column="age" name="age_s" />
<field column="state" name="state_s" />
<field column="dollar" name="dollar_s" />
<field column="pick" name="pick_s" />
</entity>
</document>
</dataConfig>
大约有 2100000 行。所以它总是会导致大量的内存消耗导致内存不足。可能是什么问题呢?还是只能以这种方式工作?
【问题讨论】:
-
您检查过dataimport.properties 文件吗?是否更新了最后一个索引时间戳??
-
是的,已经更新了。