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

SQL倉庫高並發查詢

marko
新的貢獻者二世

我們要一個磚PoC客戶和做了一些測試。我們的一個測試數據集包含在一個分區表(15科勒姆)大約是250行,每個分區~ 50 k - 150 k的行。

偶爾我們有數百個並發用戶(一千),每個查詢(sql select)不同的分區。根據

https://community.m.eheci.com/s/question/0D58Y00009WgtBiSAJ/data-bricks-sql-is-allowing-10-querie..。

https://community.m.eheci.com/s/question/0D58Y00009ZuIHUSA3/sql-queries-on-databricks

,我隻能跑10並發SQL查詢每個集群。如果我需要同時運行更多的查詢,我可以增加數量的集群/ SQL倉庫(例如,如果我有10集群/ SQL倉庫我可以運行10 x10 = 100個並發查詢,不是嗎?)。我認為類似的行為可以完成更多的“高並發集群”。

或者有其他的可能性如何完成1000的並發查詢的要求嗎?謝謝。

M。

5回複5

匿名
不適用

@Marian科瓦克:

是的,你是正確的,每個集群的最大並發數查詢默認磚是10。但是,您可以調整spark.databricks增加這個極限。maxConcurrentRuns配置參數。這個可以設置在每個集群的基礎上通過修改集群配置,或通過修改集群政策在全球水平。

然而,即使這增加限製,一個集群上運行1000個並發查詢可能不是實際由於資源限製。在這種情況下,你確實可以增加集群的數量/ SQL倉庫增加並發限製。此外,您可以考慮使用自動定量集群,可以動態地調整根據工作負載的節點數量,以確保你有足夠的資源來處理負載。

另一個方法是使用查詢緩存來減少並發查詢的數量。如果很多用戶查詢相同的分區,您可以緩存查詢的結果,為後續請求從緩存中。這可以減少查詢的數據庫,提高整體性能。

marko
新的貢獻者二世

謝謝你的回複;總而言之,我可以(1)火花集群創建多個集群和/或設置spark.databricks。maxConcurrentRuns增加每個集群的並發性,或(2)SQL倉庫集多個集群在一個SQL倉庫和/或創建多個SQL倉庫。

也許我有一個額外的問題。在並發sql select hive_metastore不知何故瓶頸?當我運行一些sql查詢,有請求hive_metastore“閱讀路徑”,瓶頸可能會導致什麼?如果是的,當我創造更多的火花集群這些集群共享一個hive_metastore嗎?每個集群或hive_metastore緩存甚至每個工人嗎?

和SQL的倉庫,並發SQL查詢是如何影響hive_metastore嗎?

或者你能告訴我這些細節的文檔了嗎?非常感謝你

M。

marko
新的貢獻者二世

請,你有任何進展嗎?謝謝

匿名
不適用

@Marian科瓦克:

關於額外的問題,使用蜂巢metastore磚存儲元數據的表,視圖和分區在一個中央存儲庫。它通常並不成為一個瓶頸在並發SQL查詢。原因在於metastore沒有參與查詢執行本身,而是在查詢計劃階段,SQL引擎需要解決模式的表查詢。

然而,如果你有大量的並發查詢,可能metastore可能成為瓶頸如果不正確配置或者並發查詢的數量是如此之高,以至於它會導致爭用metastore數據庫的訪問。在這種情況下,您可能需要考慮增加metastore的資源數據庫,甚至分片跨多個實例。

當你創造更多的火花集群,它們共享相同的metastore默認數據庫。metastore每個集群緩存,這意味著每個火花集群維護一個本地緩存元數據,它需要執行的查詢。這個緩存被查詢metastore數據庫定期更新,但更新的頻率可以配置為平衡性能和一致性需求。

同樣,並發在SQL SQL查詢倉庫由蜂巢metastore不受影響。SQL倉庫使用自己的元數據存儲管理模式創建的表和視圖,這個元數據存儲優化的高並發訪問。

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

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

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

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

Baidu
map