使用 Impala 访问 Hbase 表时,所有 SQL 操作是否都有效?

Will all SQL operation work while accessing Hbase tables using Impala?

HBase 不允许对其 table 进行连接操作。为了克服这个问题,我计划创建 HBase table 并通过 Impala 访问它。

Impala 允许所有连接以及分组依据和其他 SQL 操作。我有几个问题 -

  1. 有人测试过这种方法吗?

  2. 所有可用的 SQL 操作是否同样有效 impala 与 Hive 一起使用?

我试图在cloudera的文档中找到答案,但没有明确的答案。

这个词"Clear answer"取决于你要找的参数...

Q1 : Has anyone tested this approach?

  • 是的,这种 Impala 的方法 - hbase 外部表是可行的,因为我们已经对即席查询做了同样的事情。然而,我们的系统还没有被产物电离。 一件事是我们正在使用 Impala(Hbase 外部表) 在我们的数据摄取步骤通过后查询(如您提到的那样使用连接和分组依据)原始数据(即临时查询,在进行任何处理之前......)火花蒸。由于我们使用的是 cloudera,我们的选择是显而易见的,即 impala 以获得更快的响应。 早些时候我们曾经对 Hive(Hbase 外部表)做同样的事情。

注意(外部表上下文中的附加信息):

  • Impala 不会取代 Hive,它适用于非常不同的用例。 Impala 与 Hive 相比不提供容错,因此如果在查询期间出现问题,那么它就消失了。用户必须重新发出查询。 对于 FT 至关重要的 ETL 工作,Hive 非常适合。

  • Impala 比 Apache Hive 更快,但这并不意味着它是所有大数据问题的一站式 SQL 解决方案。 Impala 是内存密集型的,并且不能 运行 有效地用于连接等繁重的数据操作,因为不可能将所有内容都推送到内存中。这是 Hive 来救援的时候。如果应用程序对大数据有批处理需求,那么组织必须选择 Hive。如果他们需要对数据子集进行临时查询的实时处理,那么 Impala 是更好的选择。

Q2 : Will all SQL operation available work equally well as impala works with Hive?

请参阅下图以获取此 article 的更多信息,因为我不应该在 SO 中使用 link,我使用已发布文章中的图表以更好地理解。