溶胶中δ进口的效率方面

  • 本文关键字:效率 方面 solr dih
  • 更新时间 :
  • 英文 :


我有大约 2100000 行的数据。完全导入所需的时间约为 2 分钟。对于表中的任何更新,我正在使用增量导入来索引更新。增量导入所需的时间为 6 分钟。

考虑到效率方面,最好进行完全导入而不是增量导入。那么,三角洲进口的需求是什么?有没有更好的方法来使用增量导入来提高效率?

我按照文档中的步骤操作。

数据配置.xml

<dataConfig>
<dataSource type="JdbcDataSource" driver="com.dbschema.CassandraJdbcDriver" url="jdbc:cassandra://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 &gt; '${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>

设置增量索引的常用方法(就像你所做的那样(,运行 2 个查询而不是一个查询。因此,在某些情况下,它可能不是最佳的。

我更喜欢像这样设置 delta,所以有单个查询需要维护,它更干净,并且 delta 在单个查询中运行。你应该尝试一下,它可能会改善事情。缺点是删除,您要么进行一些软删除,要么仍然需要通常的增量配置(我更喜欢第一个(。

当然,还要确保last_modified列已正确编制索引。我不熟悉Cassandra jdbc驱动程序,您应该仔细检查。

最后,如果您使用的是Datastax Entreprise Edition,则可以通过Solr(如果您为此进行了配置(进行查询。在这种情况下,您也可以尝试从SolrEntityProcessor索引,并且使用一些请求参数技巧,您也可以进行完整索引和增量索引。我过去成功地使用了它。

最新更新