gpt4 book ai didi

HBase:如果行键存储为字节数组值,如何使用行键范围获取行

转载 作者:行者123 更新时间:2023-12-01 07:25:41 25 4
gpt4 key购买 nike

我们使用 HBase 来存储从 oracle 到 hdfs 的数据。这里我们将行键设计为字节数组值。行键由复合键组成,例如 (Md5(schema name).getBytes() + Md5(date (format = yyyy-mm-dd)).getBytes() + ByteBuffer.allocate(8).putLong(pkid ).数组())。这里 PKID 是一个 long 值。

如果我想获取特定模式和特定日期的所有行,我可以使用 startrow 和 endrow 或任何其他方式查询 hbase 表吗?

当我将行键存储为 user1_20130123...user1_20130127 等字符串时我可以使用

过滤表格
scan 'TempTable', {
COLUMNS => ['CF:NAME'],
LIMIT => 10,
STARTROW => 'user1_20100101',
ENDROW => 'user1_20100115'
}

我在这里获取 user1 在那些日期的行。当我像上面那样存储行键时,我该如何查询?

最佳答案

您的行键有问题,如果您对日期进行哈希处理,您将无法将其用作扫描的开始/停止行。

你的行键应该是这样的:

[16B_schema_MD5_hash][8B_long_timestamp][8B_pkid]

你可以这样查询:

Scan myScan = new Scan( 
Bytes.add(Bytes.toBytes(schemaNameMD5Hash), Bytes.toBytes(startTimestamp)),
Bytes.add(Bytes.toBytes(schemaNameMD5Hash), Bytes.toBytes(stopTimestamp))
);

关于HBase:如果行键存储为字节数组值,如何使用行键范围获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21305921/

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