问题标签 [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.

0 投票
1 回答
269 浏览

riak - Riak 2i - 列出索引值

是否可以列出之前保存在 Riak 存储桶中的所有二级索引值(leveldb,启用 2i)?在 Riak 中有以下数据:

我希望能够发送一个查询,该查询将返回我{a, b}作为结果(或者可能是相同结果的流句柄,如果它太大的话)。就像是:

是否有可能从 Riak 获得此类信息?

注意:{x, y}在我们的例子中,我对获取实际的对象键不感兴趣。

0 投票
1 回答
1465 浏览

primary-key - DynamoDB 中的主键和 GSI 设计

我最近开始学习 DynamoDB 并创建了一个具有以下属性的表“评论”(以及 DynamoDB 类型):

以下是我希望在此表上运行的查询:

现在,为了能够运行这些查询,我在“评论”表上创建了以下内容:

最后一个索引有点像 hack,因为我只在表中引入了“活动”属性,因此所有记录的值都可以是“1”,我可以将它用作 GSI 的哈希键。

我的问题很简单。我已经阅读了一些关于 DynamoDB 的内容,这是我能想到的最好的设计。我想问是否有更好的主键/索引设计可以在这里使用。如果 DynamoDB 中有一个我可能错过的概念,它可能对这个特定用例有益。谢谢!

0 投票
1 回答
565 浏览

cassandra - 带有消息收件箱的已读/未读状态的 Cassandra 建模,CQL

我正在尝试为消息框应用程序找到最佳数据模型。该消息按照首先出现“未读”的顺序出现,然后随着用户滚动“已读”消息将出现。在这两个类别中,我想按到达时间对消息进行排序。类似于 gmail 中的优先收件箱。

我想使用的第一个模式是:

所以我的数据首先按布尔字段排序,然后按时间排序。现在我可以轻松地先查看我的“未读”消息,然后在它们全部结束后,我将开始阅读“已读”消息。

问题是我无法更新任何消息状态,因为它是主键的一部分。我可以做一个删除然后插入一个批处理操作,它也是同一行。

另一个解决方案是:

每个状态都有一行。我获得了非常容易的访问权限,但这是否意味着我必须处理交易?阅读消息时,我必须将其从“未读”行中删除并将其插入“已读”行,它们可能位于不同的分区中。

分区键的另一个版本可以是:

然后我会在 isRead 上添加一个二级索引。我的查询将始终针对某个用户而不是一组用户。

关于什么更好的任何想法?还是有其他建模想法?

0 投票
1 回答
890 浏览

hbase - Apache Phoenix csvbulkloadTool 失败

我正在使用以下 Linux 命令:

该命令运行成功,但是没有从 csv 文件中加载数据到 hbase 表中,但是数据成功加载到了索引表中(导入 csv 文件为 TT 的索引表)。

环境:</p>

HBASE 0.98.9

Hadoop 2.6.0

凤凰 4.6-hbase-0.98

案例1:索引覆盖所有列

1)

2)

3)

4)

成功并拥有数据

成功并拥有数据

测试用例:org.apache.phoenix.mapreduce.CsvBulkLoadToolIT.testImportWithIndex()

案例2:索引覆盖部分列

1)

2)

3)

4)

成功但没有数据

成功有数据

测试用例:org.apache.phoenix.mapreduce.CsvBulkLoadToolIT.testImportOneIndexTable()

0 投票
1 回答
1584 浏览

amazon-web-services - DynamoDB - 查询范围键的最大值

我有一个具有以下结构的 DynamoDB 表

我有一个本地二级索引,其范围键A3

我想找出一个特定的哈希键 HK ,属性A3的最大值是什么。所以我像这样查询二级索引:

问题是它返回具有指定哈希键的所有记录,按范围键(A3)反向排序。我想一个人拿到第一张唱片。(给定 HK 的 A3 值最大的记录)。

我尝试使用setLimit,但它不起作用。

我怎样才能做到这一点..

0 投票
2 回答
4237 浏览

mysql - Symfony2/Doctrine2 从 querybuilder 对象获取连接实体

给定两个学说实体(PersonCompany),一对多关联,以及一个看起来像这样的存储库

如何检索公司的实体(对象或名称),最好从 $qb 对象(或从别名、DQL、AST、解析器等)中检索?

理想情况下,我希望有一个数组,其中包含 Querybuilder 实例使用的所有别名,或者至少是那些在select方法中定义的别名及其实体,格式如下:

$qb->getDQLPart('join')甚至更低级别的东西中,例如$qb->getQuery()->getAST()->fromClause->identificationVariableDeclarations有关于别名的连接信息,但它只包含根实体及其别名(p = TestBundle\Entity\Person)。

getRootEntity, getRootAliases,getAllAliases没有帮助,因为我获得了根实体和/或所有别名,但无法将它们链接在一起。

$em->getClassMetadata($rootentity)->associationMappings给我根实体的关联,它包含连接的目标实体,但没有别名。我当然可以将字段名称映射到信息$qb->getDQLPart('join'),但这会让我进入一个我必须从每个实体对象递归地爬取信息的区域。这似乎会导致严重的错误。

Querybuilder 如何将关联转换为正确的实体?或者它根本不这样做,只是解析到较低级别的东西而不知道它正在使用什么实体?

我需要这些信息,以便确保某些实体字段上有特定的二级索引。这些二级索引可以使用注解来设置,并通过学说($em->getClassMetadata($entity)->table['indexes'])存储在实体中。

在构建查询时,我需要(以编程方式)知道哪些字段具有二级索引,并且希望尽可能保持在抽象树的较高位置。

0 投票
1 回答
674 浏览

lua - 高 Aerospike 延迟

在 aerospike 集合中,我们有四个 bin,userId、adId、timestamp、eventype,主键是 userId:timestamp。在 userId 上创建二级索引以获取特定用户的所有记录,并将结果记录传递给流 udf。在我们的客户端直到 500 qps,aerospike 查询延迟是合理的,平均延迟以微秒为单位,但是一旦我们将 qps 增加到 500 以上,aerospike 查询延迟就会飙升(大约 10 毫秒)

我们在客户端看到的消息附在下面:

下面是lua文件:

有 2 个节点,服务器托管在 AWS 中,实例类型为 T2.large。

我们甚至更改了以下配置参数,但它进一步增加了延迟:

0 投票
1 回答
1306 浏览

sql - h2 是否支持使用辅助键创建表?

h2 是否支持使用辅助键创建表?

当我尝试这个创建表时,它失败了“org.h2.jdbc.JdbcSQLException:未知数据类型:”(“;SQL语句:”

但是这个成功了:

0 投票
0 回答
92 浏览

riak - 具有多个二级索引的 Riak 性能 (2i)

我正在为系统制定计划,并且正在考虑将数据库从关系模型更改为具有 Riak 等额外功能的 KV。需求的大部分功能都可以毫无问题地在 KV 中建模,但对于那些极端情况,我遇到了一些麻烦。我一直在阅读有关 Riak 的 2i 后端的信息,它看起来非常方便。有一些问题我找不到任何答案。

随着每个条目的 2i 数量的增加,应该预期什么样的性能下降或内存使用变化?

每个条目应该使用多少个 2i?

2i 更改是否有价值?如果有的话,对 Riak 性能有什么影响(例如,存储最后一个活动的字段)?

0 投票
1 回答
164 浏览

java - 查询 Cassandra 元数据是否存在二级索引

使用第 3 版的 Cassandra Java 驱动程序,如何确定列上是否有二级索引?

使用驱动程序的版本 2,我可以简单地检查是否ColumnMetadata.getIndex()返回非空值。但是该方法已被删除

这是因为二级索引在 Cassandra 3.0 中已经完全重新设计......不幸的是,没有简单的方法可以恢复删除方法提供的功能