问题标签 [row-key]
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.
hbase - HBASE 顺序行键 (YYYYMMDDHHMMSS),确定性非随机盐
我的行键的初始开始部分看起来像“YYYYMMDDhhmmss”,其中“ss”始终为 00。示例:20170603162100,对应于 2017 年 6 月 6 日的 16:21(不要问我为什么,但时间戳必须在钥匙的开始!)
这显然是每一分钟(显然每一分钟都是唯一的)数据。
这受到区域热点的影响。区域服务器上的行键将如下所示:
我的阅读模式:获取特定分钟的数据(不是一小时、一天、一个月、一年)
假设我有 10 个区域服务器。
这是我正在考虑的一个解决方案,它看起来像一种盐(但它是确定性的,而不是随机的):
我看到了 mm Part - minute 并根据它分配了一个盐。00 分钟:A 到行键的前缀 01 分钟:B 到行键的前缀 .. 09 分钟:J 到行键的前缀 10 分钟:A 到行键的前缀
这样,所有“A”密钥都应该分发到第一个区域服务器,依此类推。优点可能是:对同一区域服务器的所有单分钟请求,这对我来说是可以忍受的。下一分钟,所有请求都发送到其他区域服务器。
此外,在检索时,我不必进行并行读取,因为我实际上知道盐。
有人可以解释我在哪里错了吗?
hadoop - 我们如何定义 hbase 行键,以便在表中有数百万条记录时以优化方式获得记录
我在表中有 3000 万条记录,但是当试图从那里找到其中一条记录时,我将花费很多时间来检索。您能否建议我如何需要以这种方式生成行键,以便我们可以快速获取记录。
现在,我已经将 1、2、3 的自动增量 ID 作为行键,以及需要采取哪些步骤来提高性能。让我知道你的担忧
salt - Hbase 的 Phoenix Salted Table Rowkey 问题
当我对 phoenix 表加盐并直接从 hbase 插入数据时,我遇到了 rowkey 问题。
这是场景:
1-使用 salt_buckets=16 在 phoenix 上创建一个表
2-数据通过storm hbase bolt插入到hbase表中。hbasebolt直接在hbase中插入数据,不经过phoenix。
问题是 phoenix rowkey 与 hbase rowkey 相比总是缺少第一个字符,当我在 phoenix 上运行选择查询时
例子:
- hbase 行键:1f05d01f-6a17-4d7b-8d97-df32d8856666
- 凤凰行键:f05d01f-6a17-4d7b-8d97-df32d8856666
我期待着得到回应。先感谢您。
亲切的问候,
hbase - 用于列族 desc 顺序排序的 HBase rowkey 设计
我想知道我是否可以在 hbase 表中设计一个行键,以便存储的数据将按照列族数据进行 DESC 排序。否则,有没有办法将数据存储在特定列族之后的 DESC ORDER 中?
谢谢
sorting - 如何覆盖 hbase 表 HFiles 中的 Rowkey 排序?
我想知道是否有办法在创建新的 hbase 表时覆盖 Rowkey 排序策略?例如,我可以按相反的顺序排序吗?
谢谢您的帮助 :)
c# - How to auto generate a RowKey in a Azure table storage using C#
I am trying to change the RowKey from a predefined lastname from the Micorosft Docs tutorial: https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-how-to-use-dotnet#add-an-entity-to-a-table, to a unique value.
This is my current code:
Any insight help with this problem would be much appreciated!
java - HBase prefixFilter 与 startRow 和 PageFilter 一起使用
在 Hbase 中,我有这样的行键:userId:timestamp:objectId。我正在尝试创建这样的方法:
我想获取带有前缀 userId 的记录,并且还有分页(startrow+limit)。
那么我如何使用prefixFilter、pageFilter 来做到这一点呢?谢谢
hadoop - 高效扫描 hbase 中的复合行键
我的 hbase 表结构如下:
有什么方法可以有效地检查行键的第一部分是否存在于 hbase 表中?我不想检索记录,我只想检查 a1、a2、a3 是否存在。
hbase - Hbase 表的最佳 Rowkey 设计
我们有一个 Hbase 表,其中它们的行键是通过连接站点 + 文章来准备的,即,如果我有销售 100,200,300 篇文章的站点 A。我的行键分别是 A100、A200、A300。现在我们只想使用文章编号扫描 hbase 表。可以存在于多个站点中。我们尝试使用子字符串比较器执行扫描。但这需要很长时间。任何人都可以为相同的场景提出更好的加盐或行键设计。
hbase - 为什么说 HBase 行是按字典顺序存储的?
根据 HBase文档,再次参考 Google BigTable 论文,据说这些行是使用行键的字典排序存储的。
很明显,当我们在 rowkey 中有一个字符串或者我们将一个字符串转换为字节数组并存储它时,这些行是按字典顺序排序的。事实上,即使您将整数转换为字符串然后转换为字节数组,这也是有意义的。 例如:下面的 hbase shell 将数字作为字符串并存储它
另一方面,我可以使用 HBase 客户端实用程序以编程方式将数字转换为字节数组(org.apache.hadoop.hbase.util.Bytes
,它使用 Big Endian 的东西..),我看到行是自然排序的,而不是按字典的方式。对于上面类似的数据和表格,我使用下面的代码将数据放入 HBase 表。
扫描结果是
我的问题是 -
从整数生成的字节数组的字典顺序是否与自然顺序相同,或者我们将长字节数组转换为字节数组的方式实际上是填充一些值以获得有效的自然顺序,这纯属巧合?
如果不是,为了处理非类型化的行键,我们是说行键是按字典顺序排序的,这样当你与字符串等数据类型混合匹配时,排序有一个预定的顺序?在后一种情况下,在我看来,行键按严格的字典顺序排序是不正确的,因为只是为了满足我们对非类型列(此处为行键)的需求,它是这样构建的......!
基本上,这里的字节编码 -> Bytes.toBytes(long) 是否保留了的自然顺序Long
?也就是说,Array[Byte]
函数返回的字典顺序是否与作为输入的自然顺序相同Long
?