我是HBase的新手。我知道HBase并不等同于关系数据库管理系统。但是,我喜欢在HBase中运行简单的查询,这在关系数据库管理系统中非常简单。我尝试使用扫描和过滤器,但我不知道如何通过使用值得到列。
考虑一下这个简单的MySQL查询:"SELECT username FROM members WHERE email = myname@domain.com“
在HBase中,我有一个表名: members。我有两个专栏:用户名和电子邮件。
现在,我想提取用户名,其中电子邮件等于myname@domain.com。
在指定列族和限定符时,我发现了许多可以提取值的示例。但我的情况不
我想使用HBase作为一个存储,在那里我可以推入几百万个{document => {term => weight}}格式的条目。"Insert term X into document Y with weight Z“,然后发出类似于"Select the top 1000 term for this document”或"Select the top 1000 term for each document“的命令。这在我当前的MySQL实现中可以工作,但是该域可能更适合HBase。我注意到HBase和BigTable用于全文索引,这是一个类似的问题领域。
我有一些数据,其中包括colA和colB等列。对于任何行,colA和colB中的值都是不同的。
我会收到像SELECT * FROM table WHERE colA = X or colB = X这样的查询。为了进行优化,我在colA和colB中索引了MySQL。
现在,我想在HBase中构建这个数据库,提供相同的查询。但是我知道HBase没有索引,我需要设计好的行键。
我想到了这种方法:
复制MySQL中的每一行。对于一个副本,使用colA + randomString作为行键。另一方面,使用colB + randomString。(追加随机字符串,因为每个行键必须是唯一的)。
好的
我的公司属于物联网行业。我负责的结构(数据流)是EMQTT=> kafka=> hbase=> phoenix=> spring cloud rest=> HTML view。现在的问题是其他非行键字段查询HBase的速度非常慢,所以我想实现HBase +弹性搜索来实现多条件的快速查询,但最大的障碍是HBase中的数据和弹性搜索中的数据如何一致。一步?(事务?)它需要是实时的。