【发布时间】:2017-07-29 03:04:12
【问题描述】:
那么,让我们看看我能否简要解释一下我的问题。
假设我们有一个 HBase 表,其中包含每次访问迪斯科的信息: 每个迪斯科都会记录其姓名、访客姓名以及他访问它的日期。 (是的,这是一个愚蠢的例子,我知道..)。
因此,例如,这些将是表的一些值:
..
ministryOfSoundJamesOliver01022017
ministryOfSoundJamesOliver02022017
ministryOfSoundJamesOliver03022017
ministryOfSoundOliviaNewton04042017
ministryOfSoundOliviaNewton06042017
...
pachaibizaJohnMcKiness06042017
pachaibizaJohnMcKiness04042017
pachaibizaWilliamForrester04042017
..
RowKey 具有以下结构:
迪斯科名称
人名
当年的日子
(该表还有一些其他列/限定符,但我不介意这个问题)。
问题是:想象一个男孩只是喜欢去声音部。他只是喜欢它,他把所有的钱都花在了迪斯科和毒品上(但这不是这里的重点)。
我的目标是输出所有参加Ministry Of Sound的人。在我的扫描中,这个家伙一直出现在结果中,所以我必须丢弃很多条目来寻找下一个访客。 F.E:
..
ministryOfSoundJohnnyYonkie01022017
ministryOfSoundJohnnyYonkie02022017
ministryOfSoundJohnnyYonkie03022017
ministryOfSoundJohnnyYonkie04022017
ministryOfSoundJohnnyYonkie05022017
ministryOfSoundAnotherDude02022017
...
为了注册 AnotherDude,我必须丢弃 Johnny 的 4 个条目。
最后,问题是:
有什么方法可以告诉 HBase 从 byte(x) 到 byte(x+y) 的重复条目 [ x 是来自discoName 的字节数和来自的 y 字节数personName ] 必须自动丢弃?
提前非常感谢!!
【问题讨论】:
-
什么是数据访问模式?您使用 Hadoop 和 MapReduce 还是仅使用 HBase 客户端 api 扫描表?您想跳过 HBase 服务器端或客户端的条目,因此数据处理函数将只接受唯一的 disco-user 条目吗?我没有完全理解这个场景。
-
嗨@AdamSkywalker!我们通过客户端 api(使用 thrift 和 C#)连接到 Hbase,我们的目标是跳过服务器端的条目。谢谢!
-
您是否考虑过使用给定的 startKey 创建新的扫描以跳过条目?例如,当您找到 JohnnyYonkie 时,您使用开始键“ministryOfSoundJohnnyYonkie99999”创建新的扫描。
-
这是一个聪明的主意@AdamSkywalker。你看起来很聪明。就这样吧,兄弟。
标签: hbase hbase-filter bigdata database