【问题标题】:Microstrategy - HBase connection微观策略 - HBase 连接
【发布时间】:2015-08-21 07:31:17
【问题描述】:

我们正在尝试通过 Impala 连接器将 MS 9.4 连接到 HBase。

首先,我们使用以下创建表(如我们在文档中看到的)创建了将它们与 HBase 表相似的 hive 表:

CREATE TABLE hiveTableName1 
(key int, columnName1 codClient, columnName2 clientName)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,columnfamily1:columnName1,columnfamily1:columnName2")
TBLPROPERTIES ("hbase.table.name" = "hbaseTableName1");

我们这样做了两次,因为我们想要创建两个 hive 表及其对应的 hbase 表,以便稍后使用 MS 在它们之间执行连接。

对于 MS 与 HBase 之间的连接,我们按照步骤选择 MicroStrategy ODBC Driver for Impala Wire Protocol,并填写数据源名称(之前使用 Impala 驱动程序创建的 Impala 数据源)、主机和端口(两者都是用于在我们的 AWS 基础设施中安装 Impala)和 impala/impala 用于凭证。

问题是当我们完成向导并选择默认命名空间(这是唯一可用的。没有创建任何其他 ns)时,我们可以看到我们之前创建的 hive 表,而不是 hbase表格。

我的意思是:

hiveTableName1
hiveTableName2

而不是

hbaseTableName1
hbaseTableName2

而且,由于这些是唯一可用的表,因此我们只能使用这两个表执行我们的报告:通过一个字段将这两个表连接起来非常简单。 两个表都有 200.000 条记录,连接需要 1 分钟以上才能完成。 我确信我们在这里遗漏了一些东西,将 hive 表链接到 hbase 表的过程并不完全正确。 有没有办法能够连接到这两个 hbase 表而不是 hive 表? 任何帮助将不胜感激。

【问题讨论】:

    标签: hadoop hive hbase impala microstrategy


    【解决方案1】:

    1. HBase不支持SQL,反正也不支持“join”的概念。

    2. 在 HBase 表上映射 Hive 表意味着每个 Hive 查询都会在 HBase 端触发一次完整扫描,然后将结果提供给 MapReduce 批处理作业,该作业执行过滤器和连接。

    底线:1 分钟对你正在做的事情来说是相当快的。

    如果您期望亚秒级的结果,请尝试一些“小数据”技术(例如 MySQL、Oracle 甚至 MS Access)或忘记连接。 对于亚分钟结果,您可以尝试 Apache Phoenix:它是一个带有索引和某种 SQL 的 HBase 包装器。不过不确定 ODBC/JDBC 驱动程序。

    【讨论】:

    • 非常感谢您的快速回答,Samson。由于对于 MS - HBase 连接我们不得不使用 MS Impala 连接器,并且 Impala 提供了 sql 连接功能,我们认为两个表之间的连接是一个很好的性能测试。假设这个 Impala 连接以某种方式被“翻译”以在 hbase 上执行必要的查询,不是吗?
    • 无论如何,根据您的第二点,我认为将 Hive 表映射到 HBase 以使用 MS Impala 连接器对于低延迟数据库访问似乎不是一个好主意。这就是为什么我在这里看不到使用 hbase 的意义(因为我们仍然必须通过 hive,在使用 MS 的列表中)Phoenix 是另一个选择。但是MS 10 版本才提供Phoenix 连接器,所以我们应该升级。我认为这可能是一个更好的选择。尽管使用 Oracle 或 Mongo 等任何其他数据库似乎不是一个坏主意。
    • Impala 声称它“比 Hive 更快”(愤世嫉俗者补充说:“什么不是?”)但这是使用自己的查询处理器和自己的存储引擎。链接 Hive 和 HBase 意味着最薄弱的环节等。
    • 未来,也许 Presto 将成为您的选择。 Teradata 开始支持它,包括开源核心(由 Facebook 提供)和一些未来的付费扩展。
    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多