砖SDK的去

在本文中,您将了解如何在砖自动化业务账户、工作区和相关资源砖SDK的去。这篇文章的补充砖的SDK文档

请注意

这个特性是在β在生产中,是可以使用。

在你开始之前

在您开始使用砖SDK,您的开发机必须有:

开始使用的砖SDK

  1. 在您的开发机去了安装,现有的代码项目创建,砖身份验证配置,创建一个go.mod文件来跟踪你去通过运行代码的依赖关系国防部初始化命令,例如:

    去国防部init样本
  2. 把砖SDK的依赖包通过运行国防部编辑需要命令,取代0.8.0与最新版本的砖SDK包作为中列出更新日志:

    去国防部编辑需要github.com/databricks/databricks-sdk-go@v0.8.0

    你的go.mod文件现在应该像这样:

    模块样本1.18需要githubcom//- - - - - -sdk- - - - - -.8.0
  3. 在你的项目中,创建一个代码文件,进口的砖SDK。下面的例子,在一个文件命名main.go用下面的内容,列出所有集群在砖工作区:

    主要进口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/compute”)函数主要(){w:=必须(NewWorkspaceClient())所有,犯错:=w集群ListAll(上下文背景(),计算ListClustersRequest{})如果犯错! ={恐慌(犯错)}_,c:=范围所有{println(cClusterName)}}
  4. 添加任何失踪模块依赖关系通过运行国防部整洁命令:

    去国防部整洁

    请注意

    如果你得到这个错误走:警告:“所有”匹配没有,你忘了添加一个代码文件,进口砖SDK。

  5. 抓住所有的副本包支持构建和测试所需的包主要模块,通过运行国防部供应商命令:

    去国防部供应商
  6. 设置您的开发机砖身份验证

  7. 运行您的代码文件,假设一个命名的文件main.go,通过运行运行命令:

    去运行main.go

    请注意

    不设置* databricks.Config作为参数前调用w:=databricks.Must (databricks.NewWorkspaceClient ())的砖SDK的去使用其默认程序试图执行砖身份验证。覆盖默认行为,明白了验证配你的砖的砖SDK的帐户或工作区

更新的砖SDK

更新您的项目使用一个砖SDK的去包中列出更新日志,请执行以下操作:

  1. 运行得到命令从根项目的指定- u国旗做更新和提供的名称和目标砖SDK的版本号去包。例如,要更新版本0.12.0运行以下命令:

    去- u github.com/databricks/databricks-sdk-go@v0.12.0
  2. 添加和更新任何遗漏的和过时的模块依赖关系通过运行国防部整洁命令:

    国防部整洁
  3. 抓住所有新的和更新的副本包支持构建和测试所需的包主要模块,通过运行国防部供应商命令:

    国防部供应商

验证配你的砖的砖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:真正的,})如果犯错! ={恐慌(犯错)}fmtPrintln(“现在试图创建集群,请稍等……”)runningCluster,犯错:=w集群CreateAndWait(ctx,计算CreateCluster{ClusterName:clusterName,SparkVersion:latestLTS,NodeTypeId:smallestWithLocalDisk,AutoterminationMinutes:autoTerminationMinutes,NumWorkers:numWorkers,})如果犯错! ={恐慌(犯错)}开关runningCluster状态{情况下计算国营:fmtPrintf(“集群现在可以在% s #设置/集群/ % s /配置\ n”,w配置主机,runningClusterClusterId,)默认的:fmtPrintf(“集群没有运行或未能创造。% s”,runningClusterStateMessage)}/ /输出:/ // /现在试图创建集群中,请稍等…/ /集群现在可以在< 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,},},})如果犯错! ={恐慌(犯错)}fmtPrintf(“现在试图运行工作/ % d % s / #工作,请耐心等待…\ n”,w配置主机,jobToRunJobId,)runningJob,犯错:=w工作RunNow(ctx,工作RunNow{JobId:jobToRunJobId,})如果犯错! ={恐慌(犯错)}jobRun,犯错:=runningJob得到()如果犯错! ={恐慌(犯错)}fmtPrintf(“查看工作运行结果在% s / #工作/ % d /运行/ % d \ n”,w配置主机,jobRunJobId,jobRunRunId,)/ /输出:/ // /现在试图运行作业在< workspace-host > / / <作业id > #工作,请稍等…/ /查看工作运行结果在< workspace-host > / #工作/ <作业id > / / <运行id >运行}/ /设置从用户得到工作。函数askFor(提示字符串)字符串{var年代字符串r:=bufioNewReader(操作系统Stdin){fmtFprint(操作系统Stdout,提示+”“)年代,_=rReadString(' \ n ')如果年代! =”“{打破}}返回字符串TrimSpace(年代)}

账户用户列表

这个代码示例列出砖内可用的用户帐户。

主要进口(“背景”"github.com/databricks/databricks-sdk-go”"github.com/databricks/databricks-sdk-go/service/iam”)函数主要(){一个:=必须(NewAccountClient())所有,犯错:=一个用户ListAll(上下文背景(),ListAccountUsersRequest{})如果犯错! ={恐慌(犯错)}_,u:=范围所有{println(u用户名)}}

额外的资源

有关更多信息,请参见: