HBase是否支持join操作是发行版列表上的一个常见问题,这有一个简单的答案:它不会,至少在RDBMS支持它们的方式上是这样(例如,在 SQL 中使用 equi-joins 或 outer-joins)。如本章所述,HBase 中的读取数据模型操作是 Get 和 Scan。
但是,这并不意味着您的应用程序不支持等效的连接功能,但必须自己实现。向HBase写入数据时有两种主要策略,一种是反规范化数据,另一种是在应用程序或MapReduce代码中有查找表并以此在HBase表之间进行连接(并且正如 RDBMS 所示,有几种策略可以根据大小而定这些表,例如,嵌套循环与散列连接)。那么哪种方法最好?这取决于你想要做什么,因此没有一个答案适用于每个用例。