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

一個多節點/共享集群上運行存儲過程

MattG1
新的貢獻者二世

你好,

我們正在努力將我們的一些代碼從“遺留”集群的多節點/共享集群,這樣我們可以開始使用統一目錄。然而,我們遇到一個問題與我們的一些代碼,調用存儲過程,在新的集群。社區可以提供,我將不勝感激任何指導。

我們遺留的配置是一個高並發集群(不是配置表的訪問控製)。集群,我們使用pyodbc執行存儲過程來讀/寫和更新SQL Azure數據庫中的表。

為此我們安裝unixodbc pyodbc作為集群的一部分啟動init文件(幾乎使用答案中概述的方法在這個線程https://stackoverflow.com/questions/54132249/how-to-install-pyodbc-in-databricks)。

一旦安裝,我們高興地調用存儲過程的SQL Azure數據庫集群從遺留(如上所述proc做各種各樣的讀、寫和更新)。

上周試圖將我們的代碼移動到“多節點/共享”集群與統一目錄,我們遇到了一個問題:即我們一直無法找到一種新的集群上執行存儲過程。

這是我們試過,我們發現:

方法1:嚐試使用pyodbc並安裝unix odbc驅動程序

同時pyodbc圖書館可以導入到筆記本新集群,當我們試著運行pyodbc我們得到以下消息表明所需的odbc驅動程序不可用。

圖像

當我們試圖手動運行odbc驅動程序的安裝告知我們沒有新集群的權限(僅供參考,試圖通過全球init驅動安裝也似乎沒有成功)。

圖像

我們的工作的理解為什麼會出現這種情況是“多節點/共享”集群更鎖定配置和不允許根級別的修改(比如安裝新驅動程序)。那聽上去對嗎?

方法2:切換到使用Jdbc來運行存儲過程

集群使用我們的遺產,我們適應我們執行存儲過程的方式,把pyodbc的圖片。相反,我們執行存儲過程使用jdbc。(以下線程提供了一個示例如何試圖這樣做https://stackoverflow.com/questions/60354376/how-to-execute-a-stored-procedure-in-azure-databricks-p..。

同時我們得到了這種方法在我們的遺產集群,集群在“多節點/共享”我們得到以下錯誤通知我們有一個包白名單的問題。

py4j.security。公共靜態java.sql Py4JSecurityException:方法。以連接java.sql.DriverManager.getConnection(以,以)拋出java.sql。SQLException異常類類java.sql.DriverManager不是白名單

圖像

方法三:使用Jdbc直接插入

使用多節點/共享集群我們已經成功地使用jdbc讀寫到Azure然而從我們可以看到SQL表沒有辦法運行一個更新使用jdbc所以這不是一個理想的解決方案,但我們積極變通方法。

之前接受我們的命運和遠離執行存儲過程(反正我知道很多建議但將導致相當多的努力),我想檢查社區是否有任何想法嗎?

謝謝提前

3回複3

Hubert_Dudek1
尊敬的貢獻者三世

也許這截圖會有所幫助。init腳本和團結的唯一的選擇是一個單用戶集群。圖像

MattG1
新的貢獻者二世

由於休伯特,表肯定是符合我們所看到的,比如我們可以用我們的遺產proc腳本存儲在單個用戶和多節點集群而不是/共享集群(用戶隔離)。我很好奇是否有人發現另一個方法的調用存儲集群用戶隔離效果。

Hubert_Dudek1
尊敬的貢獻者三世

看一看在Azure為“自動化帳戶”可以添加webhook調用過程。此外,您可以使用方法3使用Jdbc直接插入。

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

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

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

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

Baidu
map