取消
顯示的結果
而不是尋找
你的意思是:

在蜂巢Metastore s3磚表的位置可以找到嗎?

尼諾
新的因素

我有一些磚集群,一些共享一個蜂巢Metastore (HMS),稱之為PROD_CLUSTERS,和一個額外的集群,ADHOC_CLUSTER,自己的號。

我所有的數據存儲在S3,磚三角洲表:PROD_CLUSTERS讀寫這些S3 bucket, ADHOC_CLUSTER隻有讀權限。

我需要設置ADHOC_CLUSTER以便它有一組視圖頂部的表(s3路徑)由PROD_CLUSTERS定義。

例如,如果一個PROD_CLUSTERS創建了一個表prod_schema.employees位置“s3: / / somebucket /員工”,然後在ADHOC_CLUSTER我會運行(通過一個磚筆記本):

live_views_prod_schema創建視圖。員工從delta. SELECT *的s3: / / somebucket /員工

我試著什麼

我的想法是在ADHOC_CLUSTER腳本,運行一個選擇的HMS PROD_CLUSTERS(這意味著MySQL HMS JDBC,直接查詢關係數據庫),讓所有的表名和s3位置和所有必要的編程問題在ADHOC_CLUSTER創建視圖語句。

我想象這將是簡單的HMS SDS表將位置(s3: / / somebucket /員工)列SDS.location,for每一個三角洲表由PROD_CLUSTERS(和一些基於Json的表)。現在的問題是:在SDS我隻找到正確的位置的一些表。

對於其他表,s3 HMS中列出的路徑SDS.location是指向的默認鬥模式(表上創建不同的桶),路徑,喜歡嗎

s3a: / / < default-bucket > / prod_schema.db /雇員-__PLACEHOLDER__

找不到過去,也沒有找到實際的數據文件位置HMS的其他地方。

我的問題

一個查詢HMS如何得到所有數據文件的完整路徑表中定義的號嗎?

謝謝!

8回答說8

莫
新的貢獻者三世
新的貢獻者三世

你好,尼諾,

我相信你正在尋找的是:

詳細描述table_name

並使用location列。這列給你保存文件的位置對你的表。

尼諾
新的因素

謝謝@Mo!如果你指的是https://docs.m.eheci.com/en/sql/language-manual/sql-ref-syntax-aux-describe-table.html是的,我知道,但這隻會工作如果我運行它PROD_CLUSTERS,那些HMS的配置為自己的號。

它不會對MySQL HMS作為查詢工作,正如我做的ADHOC_CLUSTER——這個集群有不同的HMS table_name沒有定義。

尼諾
新的因素

澄清:我JDBC MySQL HMS直接查詢號表,從外部來源。澄清的職位。

莫
新的貢獻者三世
新的貢獻者三世

@Nino,

當你說:“

1。我需要設置ADHOC_CLUSTER以便它有一組視圖頂部的表(s3路徑)由PROD_CLUSTERS定義。

2。我的想法是在ADHOC_CLUSTER腳本,運行一個選擇的HMS PROD_CLUSTERS(這意味著MySQL HMS JDBC,直接查詢關係數據庫),讓所有的表名和s3位置和所有必要的編程問題在ADHOC_CLUSTER創建視圖語句。”

如果我得到你的觀點正確,我相信你在prod_cluster三角洲創建表的HMS和現在你想點三角洲文件adhoc_cluster HMS的s3和創建視圖。

要做到這一點,您可以使用“描述細節table_name“你prod_cluster hms表和使用位置創建其他hms的觀點。

讓我知道如果我錯了,所以我們可以想出一個解決方案!

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map