gpt4 book ai didi

java - 获取所有行中最近添加的列?

转载 作者:行者123 更新时间:2023-12-02 06:56:10 26 4
gpt4 key购买 nike

我们的列名是有目的地选择的,以便它们按照我们想要的顺序返回(键基本上是一个内部序列号)。我们的行键也有类似的顺序。基本上每天一个行键,当天的所有列都添加到该行。

鉴于此,如何在 Hector 中创建查询以返回最新行中的最新列?还是最老的?简而言之,两个最常见的查询是“获取最新的条目”和“获取最旧的条目”。

不过,我对 Cassandra 或 Hector 不够熟悉,无法找出正确的查询。它应该看起来像这样?

QueryResult<OrderedRows<String, String, Long>> result = 
rangeSlicesQuery.setColumnFamily(cf).setKeys("", "").setRowCount(1).setRange("","",true,1).execute();

由于列名称是动态生成的值,并且我不知道最后一个值或第一个值是什么时候,因此我看不到任何方法来绕过键和列范围的开放式值。希望 Hector/Cassandra 足够聪明,能够快速完成此操作,或者我应该做一些优化吗?

最佳答案

您希望确保列按相反顺序排序,这样您就可以对限制为 1 的行执行切片查询并仅获取最新值。如果您没有反向排序,则需要读取整行。

至于如何获取最新行,无法在一个查询中找到它。一种方法是维护所有行的索引(同样以相反的顺序,这样您就可以使用相同的技巧来选择最近的行),然后首先点击该索引,然后点击该行。另一种方法是,如果您对其值有一个粗略的了解,并且可以预测值的序列(听起来好像可以,每天应该有一行,并且不应该有晚于今天的行),那么您选择最新的可能值,并尝试加载该值,如果没有得到任何返回值,则尝试加载下一个最新值,依此类推。如果您第一次尝试时不太可能获得成功(例如,如果每天都没有一行,只是在大多数日子里),您可以一次查询大约五个或十个值,然后选择最近一次您返回(如果您没有返回,则重复)。

关于java - 获取所有行中最近添加的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324912/

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