【问题标题】:What's the best way to combine Cassandra counters and Solr indexes in DSE在 DSE 中结合 Cassandra 计数器和 Solr 索引的最佳方法是什么
【发布时间】:2016-07-09 18:48:54
【问题描述】:

根据DSE documentation,DSE Search 不支持计数器列。

我有一个带有 (ckey, count) 的基本 CF,其中count 是计数器。

create table change_count ( ckey text, count counter) primary key (ckey)

当然,dsetool create_core ks.change_count 在此 CF 上失败,因为有一个计数器,“计数器不支持 Solr 索引!”错误。

好的,所以我手动创建 Solr 架构文档:

<?xml version="1.0" encoding="UTF-8"?>
<schema name="autoSolrSchema" version="1.5">
   <types>
      <fieldType class="org.apache.solr.schema.StrField" name="StrField" />
   </types>
   <fields>
      <field indexed="true" multiValued="false" name="ckey" stored="true" type="StrField" />
   </fields>
   <uniqueKey>(ckey)</uniqueKey>
</schema>

,将其保存在一个文件中,并使用dsetool create_core ks.change_count schema=/tmp/1.xml,但我仍然得到相同的“计数器不支持 Solr 索引!”错误。

所以,第一个问题是 - 有没有办法加强 DSE 并拥有一个带计数器的 CF,以及非计数器列上的 solr 索引。

如果不可能,那么我想对如何解决表示数据的问题提出任何建议。假设“ckey”是“纪元小时”,而 count 只是该小时内发生的一些事件的计数器。原子增量的计数器类型,即使我使用轻量级事务,此 CF 上的争用也会非常高。 Solr 索引在那里是因为我想做范围搜索等等。

我可以创建 2 个 CF:

create table change_count ( ckey text, count counter) primary key (ckey)
create table change_count_idx ( ckey text ) primary key (ckey)

然后我可以 Solr-index change_count_idx,但在 change_count 表中计数,确保我在两个表中都有相同的键。然后我可以使用 Solr 获取匹配的密钥,并使用 Cassandra 获取实际数据 - 进行客户端连接。但这可能是数千次 PK 查找,我认为性能不会在大范围内存活。

【问题讨论】:

  • 在具有计数器列的表中,所有非计数器列都必须是主键的一部分。
  • 这并不意味着在解决方案级别上回答您的问题,因此我将其移至此处。这只是对读者的提醒。 DSE 中的检查是针对表的元数据进行的,并假设您不想只索引主键。
  • @CalebRackliffe 但我可能只想索引我的主键,并使用 Solr 执行 Cassandra 不支持的疯狂查询。这就是这张特殊表格背后的想法。
  • 如果您只想查找主键,我不确定您为什么首先需要 Solr。也许我在阅读中遗漏了一些东西......
  • @CalebRackliffe 我不想进行查找(这是 Cassandra 在 PK 上唯一支持的),我想做范围查询、非精确查询等。

标签: cassandra datastax datastax-enterprise


【解决方案1】:

您所描述的内容在 DSE 搜索中是不可能的。

它可能很脆弱,但如果您真的想搜索这些计数器,您可能需要考虑创建一个使用bigint 代替counterchange_count 的“镜像”版本。然后,您可以定期将来自change_count 的数据读入“镜像”表并直接查询。

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 2011-03-20
    • 2016-05-20
    • 2016-01-27
    • 2020-05-08
    • 2018-07-16
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多