HBase中基于时间戳的扫描?

克里希纳(Krishna Kalyan)

例如,对于hbase表'test_table',插入的值是:

Row1 - Val1 => t
Row1 - Val2 => t + 3
Row1 - Val3 => t + 5

Row2 - Val1 => t
Row2 - Val2 => t + 3
Row2 - Val3 => t + 5

在扫描'test_table'时,版本= t + 4应该返回

Row1 - Val1 => t + 3
Row2 - Val2 => t + 3

如何在HBase中实现基于时间戳的扫描(基于小于或等于时间戳的最新可用值)?

0x0FFF

考虑此表:

hbase(main):009:0> create 't1', { NAME => 'f1', VERSIONS => 100 }
hbase(main):010:0> put 't1', 'key1', 'f1:a', 'value1'
hbase(main):011:0> put 't1', 'key1', 'f1:a', 'value2'
hbase(main):012:0> put 't1', 'key1', 'f1:a', 'value3'
hbase(main):013:0> put 't1', 'key2', 'f1:a', 'value4'
hbase(main):014:0> put 't1', 'key2', 'f1:a', 'value5'
hbase(main):015:0> put 't1', 'key1', 'f1:a', 'value6'

这是所有版本的shell扫描图:

hbase(main):003:0> scan 't1', {VERSIONS => 100 }
ROW              COLUMN+CELL
 key1            column=f1:a, timestamp=1416083314098, value=value6
 key1            column=f1:a, timestamp=1416083294981, value=value3
 key1            column=f1:a, timestamp=1416083293273, value=value2
 key1            column=f1:a, timestamp=1416083291009, value=value1
 key2            column=f1:a, timestamp=1416083305050, value=value5
 key2            column=f1:a, timestamp=1416083299840, value=value4

根据您的要求,以下是仅限特定时间戳的扫描:

hbase(main):002:0> scan 't1', { TIMERANGE => [0, 1416083300000] }
ROW              COLUMN+CELL
 key1            column=f1:a, timestamp=1416083294981, value=value3
 key2            column=f1:a, timestamp=1416083299840, value=value4

这与Java代码相同:

package org.example.test;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;

public class test {
    public static void main (String[] args) throws IOException {
        HTable table = new HTable(HBaseConfiguration.create(), "t1");
        Scan s = new Scan();
        s.setMaxVersions(1);
        s.setTimeRange (0L, 1416083300000L);
        ResultScanner scanner = table.getScanner(s);
        for (Result rr = scanner.next(); rr != null; rr = scanner.next()) {
            System.out.println(Bytes.toString(rr.getRow()) + " => " +
                    Bytes.toString(rr.getValue(Bytes.toBytes("f1"), Bytes.toBytes("a"))));
        }
    }
}

请注意,排除了指定时间范围的最大值,这意味着,如果要获取所有时间戳为T的最大键的最后一个值,则应将范围的上限指定为T + 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在openCV中基于时间戳选择特定帧?

来自分类Dev

基于时间戳的git rebase master

来自分类Dev

HBase行键,其中包含时间戳

来自分类Dev

基于时间戳的DynamoDB查询/排序

来自分类Dev

如何基于时区在MySQL中存储时间戳?

来自分类Dev

PostgreSQL中基于时间戳的整数总和列

来自分类Dev

如何在HBase Shell中基于行模式扫描行?

来自分类Dev

解决方案为行键设置不同的值,但在hbase中设置相同的时间戳?

来自分类Dev

如何基于Javascript中的Unix时间戳以编程方式确定先前时间段?

来自分类Dev

SQLITE3:基于时间戳的联接

来自分类Dev

在Python中基于ms的13位unixtime时间戳计算时间戳

来自分类Dev

基于日期和时间戳的最大日期

来自分类Dev

基于时间戳间隔重叠的数据帧

来自分类Dev

仅基于时间的SQL时间戳过滤

来自分类Dev

Pymongo-在嵌套对象中基于时间戳查找文档

来自分类Dev

在Python中基于Cassandra CQL3的表中插入和检索时间戳

来自分类Dev

基于时间戳字段的RangeFacet

来自分类Dev

基于时间戳的每10行

来自分类Dev

如何在openCV中基于时间戳选择特定帧?

来自分类Dev

使用相同的系列将多个版本存储在hbase行中:限定符,但时间戳不同。

来自分类Dev

如何基于时间戳合并多个文件

来自分类Dev

phoenix upsert到hbase的时间戳格式?

来自分类Dev

PostgreSQL中基于时间戳的整数总和列

来自分类Dev

蜂巢中的时间戳?

来自分类Dev

禁用基于MySQL时间戳的输入字段

来自分类Dev

如何使基于时间戳的日期的if语句在php表中显示?

来自分类Dev

仅在来自 shell 的特定时间戳之后列出 hbase 中的行键

来自分类Dev

excel 中的时间戳基于前两列中的单元格条目

来自分类Dev

在扫描日期列中插入时间戳列?

Related 相关文章

  1. 1

    如何在openCV中基于时间戳选择特定帧?

  2. 2

    基于时间戳的git rebase master

  3. 3

    HBase行键,其中包含时间戳

  4. 4

    基于时间戳的DynamoDB查询/排序

  5. 5

    如何基于时区在MySQL中存储时间戳?

  6. 6

    PostgreSQL中基于时间戳的整数总和列

  7. 7

    如何在HBase Shell中基于行模式扫描行?

  8. 8

    解决方案为行键设置不同的值,但在hbase中设置相同的时间戳?

  9. 9

    如何基于Javascript中的Unix时间戳以编程方式确定先前时间段?

  10. 10

    SQLITE3:基于时间戳的联接

  11. 11

    在Python中基于ms的13位unixtime时间戳计算时间戳

  12. 12

    基于日期和时间戳的最大日期

  13. 13

    基于时间戳间隔重叠的数据帧

  14. 14

    仅基于时间的SQL时间戳过滤

  15. 15

    Pymongo-在嵌套对象中基于时间戳查找文档

  16. 16

    在Python中基于Cassandra CQL3的表中插入和检索时间戳

  17. 17

    基于时间戳字段的RangeFacet

  18. 18

    基于时间戳的每10行

  19. 19

    如何在openCV中基于时间戳选择特定帧?

  20. 20

    使用相同的系列将多个版本存储在hbase行中:限定符,但时间戳不同。

  21. 21

    如何基于时间戳合并多个文件

  22. 22

    phoenix upsert到hbase的时间戳格式?

  23. 23

    PostgreSQL中基于时间戳的整数总和列

  24. 24

    蜂巢中的时间戳?

  25. 25

    禁用基于MySQL时间戳的输入字段

  26. 26

    如何使基于时间戳的日期的if语句在php表中显示?

  27. 27

    仅在来自 shell 的特定时间戳之后列出 hbase 中的行键

  28. 28

    excel 中的时间戳基于前两列中的单元格条目

  29. 29

    在扫描日期列中插入时间戳列?

热门标签

归档