2014-04-09 66 views
0

在我的應用程序中,我使用JDBC中的配置單元Metastore(mysql)。現在需求發生了變化,我無法獲得metastore憑據。因此我不能使用JDBC來訪問Metastore。有沒有辦法從HCATALOG訪問配置單元Metastore表?

我想知道,有沒有辦法從HCATALOG訪問像TBLS和INDXS這樣的hivemetastore表?提前致謝。

+0

您是否需要直接訪問元表? HCatalog確實爲您提供了大量的信息,但不能直接訪問元表。 – climbage

+0

嗨,爬山。你完全明白我的問題。我需要直接訪問包含所有配置單表詳細信息的「TBLS」配置單元表。難道不可能通過Hcatalog? – prasad

+0

Climbage,請讓我知道我在哪裏可以找到「Hcatalog可以給我們什麼信息?」 – prasad

回答

1

您可能通過HCatalog獲取大部分所需的信息,而無需直接訪問Metastore表。

HiveConf conf = new HiveConf(); // should pull hive-site.xml automatically 
HiveMetaStoreClient hiveClient = new HiveMetaStoreClient(conf); 
Table hiveTable = HCatUtil.getTable(hiveClient, "default", "sometable"); 

... = hiveTable.getAllIndexes(max); 
+0

感謝攀爬。一些如何設法完成任務。這適用於getPartCols,getAllCols。但對於getAllIndexes,即使配置表格有索引,也不會返回索引。我嘗試將max設置爲像這樣的-1,1,0,100這樣的組合。在getAllIndexes函數中引用了這個最大參數究竟是什麼。我的意思是指數的數量?要麼 ? – prasad

0

是的,這就是HCatalog的全部內容:訪問和操縱Metastore。請參閱SHOW TABLES

+0

嗨Remus Rusanu,\ n我檢查了hcatalog「顯示錶」命令。它僅顯示配置單元表。不是像TBLS那樣的配置單元表。我搜索了一下,後來知道,hcatalog將像蜂巢一樣在蜂房式Metastore上工作。但它可能無法顯示Metastore表格。如果您有任何想法,我如何通過hcatalog訪問配置單元Metastore表(而不是hive表)。 – prasad

+0

Sry,誤解了你的問題。您想要訪問Metastore表,而不是訪問metastore中的表。我必須問*爲什麼*?原始問題是什麼?爲什麼不能使用HCatalog API來操縱內容,而不是潛入Metastore本身的內部工作? –

+0

例如,如果您想列出與表關聯的所有配置單元索引?將有可能與外部元數據。對於這種要求,我早些時候使用過Metore。現在我需要找出是否可以用其他方式實現同​​樣的事情?我得到的一個想法是,我可以從Hcatalog訪問Metastore表格嗎? – prasad

相關問題