gpt4 book ai didi

cassandra - Apache Cassandra 中的复合索引

转载 作者:行者123 更新时间:2023-12-04 11:44:21 26 4
gpt4 key购买 nike

我正在尝试在几列上设置带有二级索引的 cassandra 列族,在读取数据时我需要过滤。在我最初的测试中,当我同时使用多个索引时,事情会变慢。这是我当前的配置方式(通过 cassandra-cli):

update column family bulkdata with comparator=UTF8Type and column_metadata=[{column_name: test_field, validation_class: UTF8Type}, {column_name: create_date, validation_class: LongType, index_type: KEYS}, {column_name: domain, validation_class: UTF8Type, index_type: KEYS}];

我想获取 create_date > somevalue1 和 column_name = somevalue2 的所有数据。为我的客户使用 pycassa 我执行以下操作:
  domain_expr = create_index_expression('domain', 'whatever.com')
cd_expr = create_index_expression('create_date', 1293650000, GT)
clause = create_index_clause([domain_expr, cd_expr], count=10000)
for key, item in col_fam.get_indexed_slices(clause):
...

这当然是 SQL 中的一个常见错误,通常必须根据查询需要创建复合索引。不过,我对 cassandra 还是很陌生,所以我不知道是否需要甚至存在这样的东西。

我与 cassandra 的交互将包括大量写入,以及大量读取和更新。我已经设置了索引,认为它们在这里是正确的,但也许我完全错了。无论是否设置索引,我都会对设置高性能系统的任何想法感兴趣。

哦,这是在 cassandra 0.7.0-rc3 上

最佳答案

原生 Cassandra 二级索引有一些限制。根据 datastax 文档,它们不应该用于具有高基数(唯一值太多)的列。似乎您正在编制索引的 create_date 列将具有高基数。此外,原生 Cassandra 索引支持中没有复合索引之类的东西。

如需更深入的报道,您可以访问我的博客文章
http://pkghosh.wordpress.com/2011/03/02/cassandra-secondary-index-patterns/

普拉纳布

关于cassandra - Apache Cassandra 中的复合索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4558269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com