簡體   English   中英

微策略-HBase連接

[英]Microstrategy - HBase connection

我們正在嘗試通過Impala連接器將MS 9.4連接到HBase。

首先,我們使用以下創建表(如我們在文檔中所見)創建與hBase表相似的配置單元表:

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");

我們這樣做了兩次,因為我們要創建兩個配置單元表及其對應的hbase表,以便稍后使用MS在它們之間執行聯接。

對於MS與HBase之間的連接,我們按照以下步驟進行操作:選擇用於Impala Wire Protocol的MicroStrategy ODBC驅動程序,並填寫數據源名稱(以前使用Impala驅動程序創建的Impala數據源),主機和端口(兩者均用於Impala安裝)在我們的AWS基礎架構中)和impala / impala獲取憑證。

問題在於,完成向導並選擇默認名稱空間(這是唯一可用的名稱空間。未創建任何其他ns)之后,我們可以看到之前創建的配置單元表,而不是hbase表。

我的意思是:

hiveTableName1
hiveTableName2

代替

hbaseTableName1
hbaseTableName2

而且,由於這些是僅有的可用表,因此我們只能對這兩個表執行報告:通過字段將這兩個表之間的連接非常簡單。 這兩個表都有200.000條記錄,並且聯接需要1分鍾以上的時間才能完成。 我敢肯定,我們在這里缺少一些東西,而且將配置單元表鏈接到hbase的過程並不完全正確。 有沒有辦法能夠連接到這兩個hbase表而不是hive表? 任何幫助將不勝感激。

1. HBase不支持SQL,也不支持“聯接”的概念。

2.在HBase表上映射Hive表意味着每個Hive查詢都會在HBase端觸發一次全面掃描 ,然后將結果饋送給MapReduce批處理作業,該作業進行過濾器和聯接。

底線:1分鍾對於您正在做的事情來說是非常快的。

如果您期望獲得亞秒級的結果,請嘗試一些“小數據”技術(例如MySQL,Oracle,甚至MS Access)或忽略連接。 對於幾分鍾的結果,您可以嘗試使用Apache Phoenix:這是一個帶有索引和某種SQL的HBase包裝器。 雖然不確定ODBC / JDBC驅動程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM