磚SDK的去
在本文中,您將了解如何在磚自動化業務賬戶、工作區和相關資源磚SDK的去。這篇文章的補充磚的SDK文檔。
請注意
這個特性是在β在生產中,是可以使用。
開始使用的磚SDK
在您的開發機去了安裝,現有的代碼項目創建,磚身份驗證配置,創建一個
go.mod
文件來跟蹤你去通過運行代碼的依賴關係去國防部初始化
命令,例如:去國防部init樣本
把磚SDK的依賴包通過運行
去國防部編輯需要
命令,取代0.8.0
與最新版本的磚SDK包作為中列出更新日誌:去國防部編輯需要github.com/databricks/databricks-sdk-go@v0.8.0
你的
go.mod
文件現在應該像這樣:模塊樣本去1.18需要github。com/磚/磚- - - - - -sdk- - - - - -去半.8.0
在你的項目中,創建一個代碼文件,進口的磚SDK。下麵的例子,在一個文件命名
main.go
用下麵的內容,列出所有集群在磚工作區:包主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/compute”)函數主要(){w:=磚。必須(磚。NewWorkspaceClient())所有,犯錯:=w。集群。ListAll(上下文。背景(),計算。ListClustersRequest{})如果犯錯! =零{恐慌(犯錯)}為_,c:=範圍所有{println(c。ClusterName)}}
添加任何失蹤模塊依賴關係通過運行
去國防部整潔
命令:去國防部整潔
請注意
如果你得到這個錯誤
走:警告:“所有”匹配沒有包
,你忘了添加一個代碼文件,進口磚SDK。抓住所有的副本包支持構建和測試所需的包
主要
模塊,通過運行去國防部供應商
命令:去國防部供應商
設置您的開發機磚身份驗證。
運行您的代碼文件,假設一個命名的文件
main.go
,通過運行去運行
命令:去運行main.go
請注意
不設置
* databricks.Config
作為參數前調用w:=databricks.Must (databricks.NewWorkspaceClient ())
的磚SDK的去使用其默認程序試圖執行磚身份驗證。覆蓋默認行為,明白了驗證配你的磚的磚SDK的帳戶或工作區。
更新的磚SDK
更新您的項目使用一個磚SDK的去包中列出更新日誌,請執行以下操作:
運行
去得到
命令從根項目的指定- u
國旗做更新和提供的名稱和目標磚SDK的版本號去包。例如,要更新版本0.12.0
運行以下命令:去- u github.com/databricks/databricks-sdk-go@v0.12.0
添加和更新任何遺漏的和過時的模塊依賴關係通過運行
去國防部整潔
命令:去國防部整潔
抓住所有新的和更新的副本包支持構建和測試所需的包
主要
模塊,通過運行去國防部供應商
命令:去國防部供應商
驗證配你的磚的磚SDK的帳戶或工作區
磚SDK去實現了磚客戶端統一身份驗證標準,統一和一致的體係結構和編程方法來驗證。這種方法有助於使設置和自動化驗證磚更集中的和可預測的。它允許您配置數據磚身份驗證一次,然後使用該配置多個磚工具和sdk沒有進一步驗證配置更改。更多信息,包括更完整的代碼示例,明白了磚客戶端統一身份驗證。
一些可用的編碼模式初始化數據磚磚SDK的認證包括:
使用磚默認驗證通過下列之一:
創建或識別一個定製的磚配置概要文件與目標必需的字段數據磚身份驗證類型。然後設置
DATABRICKS_CONFIG_PROFILE
環境變量定義配置概要文件的名稱。設置所需的環境變量為目標數據磚身份驗證類型。
進口("github.com/databricks/databricks-sdk-go”)/ /……w:=磚。必須(磚。NewWorkspaceClient())
硬編碼所需的字段支持但不推薦,因為它的風險暴露敏感信息在您的代碼,如磚個人的訪問令牌。下麵的例子將磚磚令牌的身份驗證:主機和訪問令牌值
進口("github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/config”)/ /……w:=磚。必須(磚。NewWorkspaceClient(&磚。配置{主機:“https://..”。,令牌:“…”,}))
例子
下麵的代碼示例演示如何使用磚SDK去創建和刪除集群,運行工作,用戶賬戶列表。這些代碼示例使用磚SDK的默認數據磚身份驗證的過程。
額外的代碼示例,請參閱例子文件夾的磚SDK在GitHub庫。
創建一個集群
這段代碼示例創建一個集群的最新數據磚長期運行時支持(LTS)版本和最小的可用集群節點類型的本地磁盤。這個集群有一個工人,集群將自動終止後15分鍾的空閑時間。的CreateAndWait
方法調用導致暫停,直到新集群的代碼運行在工作區。
包主要進口(“背景”“fmt”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/compute”)函數主要(){常量clusterName=“my-cluster”常量autoTerminationMinutes=15常量numWorkers=1w:=磚。必須(磚。NewWorkspaceClient())ctx:=上下文。背景()/ /獲得可用的完整列表火花版本可供選擇。sparkVersions,犯錯:=w。集群。SparkVersions(ctx)如果犯錯! =零{恐慌(犯錯)}/ /選擇最新的長期支持(LTS)版本。latestLTS,犯錯:=sparkVersions。選擇(計算。SparkVersionRequest{最新的:真正的,LongTermSupport:真正的,})如果犯錯! =零{恐慌(犯錯)}/ /得到可用集群節點的列表類型可供選擇。nodetype,犯錯:=w。集群。ListNodeTypes(ctx)如果犯錯! =零{恐慌(犯錯)}/ /選擇最小的可用的集群節點類型。smallestWithLocalDisk,犯錯:=nodetype。最小的(集群。NodeTypeRequest{LocalDisk:真正的,})如果犯錯! =零{恐慌(犯錯)}fmt。Println(“現在試圖創建集群,請稍等……”)runningCluster,犯錯:=w。集群。CreateAndWait(ctx,計算。CreateCluster{ClusterName:clusterName,SparkVersion:latestLTS,NodeTypeId:smallestWithLocalDisk,AutoterminationMinutes:autoTerminationMinutes,NumWorkers:numWorkers,})如果犯錯! =零{恐慌(犯錯)}開關runningCluster。狀態{情況下計算。國營:fmt。Printf(“集群現在可以在% s #設置/集群/ % s /配置\ n”,w。配置。主機,runningCluster。ClusterId,)默認的:fmt。Printf(“集群沒有運行或未能創造。% s”,runningCluster。StateMessage)}/ /輸出:/ // /現在試圖創建集群中,請稍等…/ /集群現在可以在< workspace-host > #設置/ / < cluster-id > /配置的集群}
永久刪除一個集群
這段代碼示例永久刪除集群與集群ID指定的工作區。
包主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/clusters”)函數主要(){/ /替換為您的集群的ID。常量clusterId=“1234 - 567890 ab123cd4”w:=磚。必須(磚。NewWorkspaceClient())ctx:=上下文。背景()犯錯:=w。集群。PermanentDelete(ctx,計算。PermanentDeleteCluster{ClusterId:clusterId,})如果犯錯! =零{恐慌(犯錯)}}
運行工作
這個代碼示例創建了一個磚工作指定集群上運行指定的筆記本。在代碼運行時,就現有的筆記本的路徑,現有集群ID,和相關的工作設置從用戶終端。的RunNowAndWait
方法調用導致暫停,直到新工作已經完成的代碼運行在工作區中。
包主要進口(“bufio”“背景”“fmt”“操作係統”“弦”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/jobs”)函數主要(){w:=磚。必須(磚。NewWorkspaceClient())ctx:=上下文。背景()nt:=工作。NotebookTask{NotebookPath:askFor(”筆記本運行的工作區路徑:“),}jobToRun,犯錯:=w。工作。創建(ctx,工作。CreateJob{的名字:askFor(一些工作的短名稱:“),任務:[]工作。JobTaskSettings{{描述:askFor(一些工作的簡短描述:“),TaskKey:askFor(“一些關鍵的申請工作的任務:“),ExistingClusterId:askFor(“ID在工作區中現有的集群上運行的工作:“),NotebookTask:&nt,},},})如果犯錯! =零{恐慌(犯錯)}fmt。Printf(“現在試圖運行工作/ % d % s / #工作,請耐心等待…\ n”,w。配置。主機,jobToRun。JobId,)runningJob,犯錯:=w。工作。RunNow(ctx,工作。RunNow{JobId:jobToRun。JobId,})如果犯錯! =零{恐慌(犯錯)}jobRun,犯錯:=runningJob。得到()如果犯錯! =零{恐慌(犯錯)}fmt。Printf(“查看工作運行結果在% s / #工作/ % d /運行/ % d \ n”,w。配置。主機,jobRun。JobId,jobRun。RunId,)/ /輸出:/ // /現在試圖運行作業在< workspace-host > / / <作業id > #工作,請稍等…/ /查看工作運行結果在< workspace-host > / #工作/ <作業id > / / <運行id >運行}/ /設置從用戶得到工作。函數askFor(提示字符串)字符串{var年代字符串r:=bufio。NewReader(操作係統。Stdin)為{fmt。Fprint(操作係統。Stdout,提示+”“)年代,_=r。ReadString(' \ n ')如果年代! =”“{打破}}返回字符串。TrimSpace(年代)}
賬戶用戶列表
這個代碼示例列出磚內可用的用戶帳戶。
包主要進口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/iam”)函數主要(){一個:=磚。必須(磚。NewAccountClient())所有,犯錯:=一個。用戶。ListAll(上下文。背景(),我。ListAccountUsersRequest{})如果犯錯! =零{恐慌(犯錯)}為_,u:=範圍所有{println(u。用戶名)}}