砖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。用户名)}}