问题标签 [secondary-indexes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
solr - Phoenix 二级索引是否专门处理 WAL 日志?
我们正在为我们的 hbase 集群使用 phoenix 和 hbase-indexer,我们发现了一个关于 phoenix 二级索引的奇怪现象:
我们将数据(使用 psql 导入 csv 数据)放入一个表(C_PICRECORD)中,其中包含两个来自phoenix 的全局可变索引表(C_PICRECORD_IDX1 和 C_PICRECORD_IDX2),并使用 hbase-indexer 将数据复制到 solr。数据导入完成后,我们发现 solr 文档 numfound 与 hbase 表行数不同。当我们删除索引表,清除数据并再次放入数据时,我们发现 solr document numfound 与 hbase table row count 相同。
最近我们发现了 solr document numfound 与 hbase table row count 不同的原因:1)删除文档会出错,尽管实际上我们只是用两个来自phoenix的全局索引表导入数据(psql)!
2) solr 和 hbase 的行数不一致的奇怪现象只发生在我们对数据表有二级索引的情况下。
困扰了我们很久,使用phoenix二级索引似乎有什么不同。
所以,我的问题是:Phoenix 二级索引是否专门处理 WAL 日志?
我们的环境:
cdh5.4.2 hbase-1.0.0-cdh5.4.2 phonenix-4.6 hbase-solr-1.5-cdh5.4.2(hbase-indexer)
集群:3 个 hbase regionserver 和 3 个 hbase-indexer
[提示]
hbase-indexer 基于 hbase 复制将数据放入 solr。它将捕获 WAL 日志并将感兴趣的数据放入 solr。hbase-indexer github:https ://github.com/NGDATA/hbase-indexer
cassandra - Cassandra 中的 SASI 索引似乎有一些错误
我刚开始在 Cassandra 3.7.0 上使用 SASI 索引,我遇到了一个我怀疑是错误的问题。我几乎没有找到出现错误的情况,这是我发现的:
使用 SASI 索引查询时,它可能会错误地返回 0 行,并且更改一些条件,它会再次起作用,如下面的 CQL 代码:
注意到我只将表角色 2从表角色的 ' CLUSTERING ORDER BY (b DESC) ' 更改为 ' CLUSTERING ORDER BY (b ASC) '。
使用 statement 查询时select * from roles2 where b<3;
,结果为两行:
但是,如果使用 查询select * from roles where b<3;
,它根本不返回任何行:
这不是唯一会出现错误的情况,有一次我在“end”列上创建了一个具有特定名称(如“end_idx”)的 SASI 索引,错误出现了,当我没有指定索引名称时,它就消失了.
请帮我确认这个错误,或者告诉我是否以错误的方式使用了 SASI 索引。
java - N1QL 二级索引不适用于参数化 IN 子句
使用com.couchbase.client, java-client
版本2.2.7
,我无法让使用参数化 IN 子句的 n1ql 二级索引正常工作。请参阅下面的示例索引、查询和 java 代码
指数
询问
提交查询的代码
在添加参数化之前,我的查询正确使用了这个二级索引。如果我使用主索引,我的查询也有效。
我的问题是如何创建将由我的查询使用的二级索引。
cassandra - 二级索引会在 cassandra 中创建另一个数据副本吗?
我已经阅读过这个文档,但是这里没有说明数据是因为二级索引还是只是与其他数据的链接而被复制?
node.js - Dynastyjs:如何使用二级全局索引查找项目
我有一个表:digital_asset,它的分区键是:id。它有一个全局二级索引:ean-index 和分区键:ean。我希望能够使用 Dynastyjs 使用二级索引查询表。使用 aws-sdk 我会这样做:
使用朝代要好得多,例如这是由主索引搜索的查询:
这是我尝试过的,但出现错误:
错误:
cassandra - 二级索引上的 Cassandra SELECT 不返回行
在 Cassandra 2.2.3 上执行 SELECT 时,我正在处理一个令人费解的行为。我在环中有 4 个节点,我创建了以下键空间、表和索引。
然后我在表上插入一些行。其中一些有空集。我通过默认的 CQL 客户端执行此查询并获得我期望的行:
然后我运行了一些我无法控制的测试。我不知道他们做了什么,但我希望他们阅读并可能插入/更新/删除一些行。我确信他们不会删除或更改索引、表或键空间中的任何设置。
测试后,我通过默认的 CQL 客户端再次登录并运行以下查询。
第一个不返回任何东西。第二个返回所有行,包括 code = 'test' 的行。第三个返回第一个查询无法检索的预期行。
我可以看到这一行与其他行之间的唯一区别是它是包含一些空集的行之一,如前所述。如果我查询另一行也包含一些空集,我会得到相同的行为。
我会说这个问题与二级索引有关。不知何故,在测试期间执行的操作使索引处于看不到某些行的状态。
我显然错过了一些东西。您对可能导致这种行为的原因有任何想法吗?
提前致谢。
更新:
我解决了这个问题,但现在我在其他地方发现了同样的问题。由于问题首次发生,我发现了有关错误之前执行的操作的更多信息:更新为所述列设置 TTL 的特定列。经过一番调查,我发现了一些可能与此问题有关的 Jira 问题:
https://issues.apache.org/jira/browse/CASSANDRA-6782 https://issues.apache.org/jira/browse/CASSANDRA-8206
但是,这些问题似乎已经在 2.0 和 2.1 上得到解决,而我正在使用 2.2。我认为这些更改包含在 2.2 中,但我可能弄错了。
node.js - AWS Lambda 查询二级索引
以下是 AWS lambda 中对 dynamoDB JSON 对象的 node.js 查询。UserID 是没有排序键的主键。GeoHash 是辅助键,索引名称为“GeoHash-index”。调用成功且没有错误,但不会返回任何内容。下面的测试数据可能是错误的,因为它没有提供与索引名称的任何连接,但我是 AWS/noSQL 的新手,有点迷茫。
lambda 测试数据在哪里
GeoHash 字符串应该相互匹配。想法?
编辑 这种方法也没有成功
timeout - Phoenix 创建 SecondaryIndex 超时
我是凤凰城的新手,遇到了问题。首先,我在 Phoenix 上通过 java 创建了一个包含 30000000 条记录的表。然后,我想为表创建一个 phoenix global secondIndex。但是,当程序运行 10 分钟时,java 客户端会抛出 SQLTimeoutException。我不知道为什么,请帮助我。
sql - 带有 SSTable 附加二级索引的 Cassandra 与关系数据库
我是 Nosql 数据库(如 Cassandra)的新手,目前我看到了这个二级索引和 sstable 附加二级索引。有些我对在 Cassandra 中使用二级索引的目的感到困惑,关系数据库和带有二级索引的 Cassandra 有什么区别?查询时哪个性能更好?