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

緩慢的抓取結果由客戶端從Azure磚SQL調用的計算實例(AML)

Etyr
貢獻者

我用“databricks-sql-connector”python3.8連接到一個SQL Azure Wharehouse在Azure機器學習計算實例。

我有這個大型結果查詢,查看“查詢曆史”我檢查所花費的時間進行查詢,並將數據發送給客戶端。結果是27 gb大。超過2小時才得到這個數據我蔚藍的計算實例。

first_time_query

在這裏你可以看到它實際上花了1.88“製造”數據,和2.27小時發送數據。

當我重做這個查詢,而是在磚SQL編輯器(和消除1000年限製),“抓取結果由客戶”是方法更快。因為它是在當地的我猜,這是正常的。

所以我認為網絡是在這裏的原因。但由於磚和我計算的實例在同一子網/網絡,我不明白為什麼下載太慢。

我有一個其他的假設,那就是python代碼凍結,因為運行了一個小時後,在linux中使用“自由- m”顯示了數據在內存中,我,但當我做CTRL + C python代碼,它不會停止流程,什麼也不會發生。我要做CTRL + Z停止這個過程,但是這將創建內存泄漏檢查因為“自由- m”內存沒有可行性。

知道如果databricks-sql-connector問題時取“大”的結果嗎?

1接受解決方案

接受的解決方案

Etyr
貢獻者

所以我做了一些測試。既然你說磚SQL的司機不進行檢索的數據量。我繼續火花。

我解雇了一個小火花集群,以最快的速度在SQL查詢倉庫,然後我做了一個df.write.parquet (“/ my_path /”)這個花了10分鍾(2鑲條鑲花的文件)

然後我使用Azure存儲API下載所有鋪在Azure存儲文件從文件夾。用熊貓和加載它。

最初的電子我用黑斑羚,在30分鍾。SQL倉庫是4小時。火花+一些火花。寫+文件下載到本地/ VM /艙+負載大熊貓20分鍾。

在原帖子查看解決方案

4回複4

Hubert_Dudek1
尊敬的貢獻者三世

你使用fetchall嗎?

“返回所有(或所有剩餘)行查詢的對象的Python列表行。”

我敢打賭30 gb的列表將殺手。

請使用cursor.fetchmany(10000)和附加塊到目的地(dataframe或你使用)。此外,在這種方法中,您可以監控代碼的進展。

(測試,隻是打印每個塊所需的數量和時間)

Etyr
貢獻者

是的,我是使用fetchall ()

這就是我當我使用fetchmany(100000)(而不是10.000,100.000)有太多其他印刷:

< databricks.sql.client。遊標對象在100000 0 x7fddfd233be0 >抓取塊大小,1 1.2840301990509033取塊的大小100000,2 1.7594795227050781取塊的大小100000,3 1.4387767314910889取塊的大小100000,4 1.9465265274047852取塊的大小100000,5 1.284682273864746取塊的大小100000,6 1.8754642009735107取100000塊的大小,7

所以需要1.5 2秒鍾左右每100.000塊的大小。據我所知在文檔中,塊大小是獲取的行數。

因為我有1008342364行,它將帶我10084 fetchmany (100000)

10084 * 1.5(秒/ fetchmany) = 15125秒的所有數據。所以大約4小時。

如果做一個fetchmany(1000000),我得到一個獲取14秒。

1008342364行/ 1008342364 = 1009獲取

10084 * 14 = 14126秒鍾fetch = > 3.9小時

Etyr
貢獻者

所以我做了一些測試。既然你說磚SQL的司機不進行檢索的數據量。我繼續火花。

我解雇了一個小火花集群,以最快的速度在SQL查詢倉庫,然後我做了一個df.write.parquet (“/ my_path /”)這個花了10分鍾(2鑲條鑲花的文件)

然後我使用Azure存儲API下載所有鋪在Azure存儲文件從文件夾。用熊貓和加載它。

最初的電子我用黑斑羚,在30分鍾。SQL倉庫是4小時。火花+一些火花。寫+文件下載到本地/ VM /艙+負載大熊貓20分鍾。

Kaniz
社區經理
社區經理

嗨@Antoine Tavernier,你還需要幫助或者是查詢解決?

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

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

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

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

Baidu
map