入门:免费试用版和设置

如果不熟悉 Azure Databricks,可以从这里开始。 了解如何设置免费试用版和云帐户。 有关更多联机培训资源的信息,请参阅获取免费的 Databricks 培训

创建 Azure Databricks 工作区

Databricks 建议使用 Azure 门户部署第一个 Azure Databricks 工作区。 也可使用以下选项之一部署 Azure Databricks:

注意

创建 Azure Databricks 工作区时,可以选择“试用版(高级 - 14天免费 DBU)”定价层,让工作区访问免费的高级 Azure Databricks DBU 14 天。

准备阶段

使用该门户创建 Azure Databricks 工作区

  1. 在 Azure 门户中,选择“创建资源”“分析”“Azure Databricks”。

  2. 在“Azure Databricks 服务”下,提供所需的值以创建 Databricks 工作区。

    Property 描述
    工作区名称 提供 Databricks 工作区的名称
    订阅 从下拉列表中选择自己的 Azure 订阅。
    资源组 指定是要创建新的资源组还是使用现有的资源组。 资源组是用于保存 Azure 解决方案相关资源的容器。 有关详细信息,请参阅 Azure 资源组概述
    位置 选择“美国西部 2” 。 有关其他可用区域,请参阅各区域推出的 Azure 服务
    定价层 在“标准”、“高级”和“试用”之间进行选择。 有关这些层的详细信息,请参阅 Databricks 价格页
  3. 选择“查看 + 创建”,然后选择“创建” 。 创建工作区需要几分钟时间。 创建工作区时,可以在“通知”中查看部署状态。 完成此过程后,你的用户帐户将自动添加为工作区的管理员用户。

注意

当工作区部署失败时,仍然会在失败状态下创建工作区。 删除失败的工作区,并创建一个解决部署错误的新工作区。 删除失败的工作区时,托管资源组和任何成功部署的资源也将被删除。

使用 Azure CLI 部署 Azure Databricks

步骤 1:登录

如果使用的是 CLI 的本地安装,请使用 az login 命令登录。

az login

遵循终端中显示的步骤完成身份验证过程。

步骤 2:安装 Azure CLI 扩展

使用 Azure CLI 的扩展引用时,必须先安装该扩展。 借助 Azure CLI 扩展,可访问尚未在核心 CLI 中提供的试验性和预发布的命令。 若要详细了解包含更新和卸载的扩展,请参阅使用 Azure CLI 的扩展

运行以下命令,安装 Databricks 扩展

az extension add --name databricks

步骤 3:创建资源组

与所有 Azure 资源一样,Azure Databricks 也必须部署到资源组中。 使用资源组可以组织和管理相关的 Azure 资源。

对于本快速入门,请使用以下 az group create 命令在 westus2 位置创建名为 _ databricks-quickstart _ 的资源组:

az group create --name databricks-quickstart --location westus2

步骤 4:创建 Azure Databricks 工作区

使用 az databricks workspace create 创建 Azure Databricks 工作区。

az databricks workspace create
    --resource-group databricks-quickstart \
    --name mydatabricksws  \
    --location westus  \
    --sku standard

使用 PowerShell 部署 Azure Databricks

注意

如果选择在本地使用 PowerShell,则本文要求安装 Az PowerShell 模块,并使用 Connect-AzAccount cmdlet 连接到 Azure 帐户。 有关安装 Az PowerShell 模块的详细信息,请参阅安装 Azure PowerShell

重要

尽管 Az.Databricks PowerShell 模块为预览版,但必须使用以下命令从 Az PowerShell 模块单独安装它:Install-Module -Name Az.Databricks -AllowPrerelease。 Az.Databricks PowerShell 模块正式版推出后,它会包含在将来的 Az PowerShell 模块发行版中,并在 Azure Cloud Shell 中原生提供。

注意

如果要在持有美国政府合规性认证(如 FedRAMP High)的 Azure 商业云中创建 Azure Databricks 工作区,请联系你的 Microsoft 代表或 Databricks 代表以获得这种体验的访问权限。

如果这是你第一次使用 Azure Databricks,则必须注册 Microsoft.Databricks 资源提供程序。

  Register-AzResourceProvider -ProviderNamespace Microsoft.Databricks

使用 Azure Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Azure Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

  • 选择代码块右上角的“试用”。 选择“试用”不会自动将代码复制到 Cloud Shell。
  • 转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。
  • 选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。

若要在 Azure Cloud Shell 中运行本文中的代码,请执行以下操作:

  • 启动 Cloud Shell。
  • 选择代码块上的“复制”按钮以复制代码。
  • 在 Windows 和 Linux 上选择 Ctrl+Shift+V 将代码粘贴到 Cloud Shell 会话中,或在 macOS 上选择 Cmd+Shift+V 将代码粘贴到 Cloud Shell 会话中。
  • 选择 Enter 运行此代码。

如果有多个 Azure 订阅,请选择应当计费的资源所在的相应订阅。 使用 Set-AzContext cmdlet 选择特定的订阅 ID。

Set-AzContext -SubscriptionId 00000000-0000-0000-0000-000000000000

创建资源组

使用 New-AzResourceGroup cmdlet 创建 Azure 资源组。 资源组是在其中以组的形式部署和管理 Azure 资源的逻辑容器。

以下示例在“美国西部 2”区域创建名为“myresourcegroup”的资源组。

New-AzResourceGroup -Name myresourcegroup -Location westus2

创建 Azure Databricks 工作区

在本部分,使用 PowerShell 创建 Azure Databricks 工作区。

New-AzDatabricksWorkspace -Name mydatabricksws -ResourceGroupName myresourcegroup -Location westus2 -ManagedResourceGroupName databricks-group -Sku standard

提供以下值:

属性 说明
名称 提供 Databricks 工作区的名称
ResourceGroupName 指定现有资源组名称
位置 选择“美国西部 2”。 有关其他可用区域,请参阅各区域推出的 Azure 服务
ManagedResourceGroupName 指定是要创建新的受管理资源组还是使用现有受管理资源组。
SKU 在“标准”、“高级”和“试用”之间进行选择。 有关这些层的详细信息,请参阅 Databricks 定价

创建工作区需要几分钟时间。 完成此过程后,你的用户帐户将自动添加为工作区的管理员用户。

注意

当工作区部署失败时,仍然会在失败状态下创建工作区。 删除失败的工作区,并创建一个解决部署错误的新工作区。 删除失败的工作区时,托管资源组和任何成功部署的资源也将被删除。

确定 Databricks 工作区的预配状态

若要确定 Databricks 工作区是否已成功预配,可以使用 Get-AzDatabricksWorkspace cmdlet。

Get-AzDatabricksWorkspace -Name mydatabricksws -ResourceGroupName myresourcegroup |
  Select-Object -Property Name, SkuName, Location, ProvisioningState
Name            SkuName   Location  ProvisioningState
----            -------   --------  -----------------
mydatabricksws  standard  westus2   Succeeded

使用 Azure 模板部署 Azure Databricks

ARM 模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 该模板使用声明性语法,使你可以声明要部署的内容,而不需要编写一系列编程命令来进行创建。

如果你的环境满足先决条件,而且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。

查看模板

本快速入门中使用的模板来自 Azure 快速启动模板

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "14509124136721506545"
    }
  },
  "parameters": {
    "disablePublicIp": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether to deploy Azure Databricks workspace with Secure Cluster Connectivity (No Public IP) enabled or not"
      }
    },
    "workspaceName": {
      "type": "string",
      "metadata": {
        "description": "The name of the Azure Databricks workspace to create."
      }
    },
    "pricingTier": {
      "type": "string",
      "defaultValue": "premium",
      "allowedValues": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "The pricing tier of workspace."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "variables": {
    "managedResourceGroupName": "[format('databricks-rg-{0}-{1}', parameters('workspaceName'), uniqueString(parameters('workspaceName'), resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Databricks/workspaces",
      "apiVersion": "2018-04-01",
      "name": "[parameters('workspaceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('pricingTier')]"
      },
      "properties": {
        "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', variables('managedResourceGroupName'))]",
        "parameters": {
          "enableNoPublicIp": {
            "value": "[parameters('disablePublicIp')]"
          }
        }
      }
    }
  ],
  "outputs": {
    "workspace": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
    }
  }
}

模板中定义的 Azure 资源是 Microsoft.Databricks/workspaces:创建 Azure Databricks 工作区。

部署模板

在本部分,你将使用 ARM 模板创建 Azure Databricks 工作区。

  • 使用提供的链接登录到 Azure 并打开一个模板

  • 提供所需的以下值以创建 Azure Databricks 工作区:

    Property 描述
    订阅 从下拉列表中选择自己的 Azure 订阅。
    资源组 指定是要创建新的资源组还是使用现有的资源组。 资源组是用于保存 Azure 解决方案相关资源的容器。 有关详细信息,请参阅 Azure 资源组概述
    位置 选择“美国东部 2”。 有关其他可用区域,请参阅各区域推出的 Azure 服务
    工作区名称 提供 Databricks 工作区的名称
    定价层 选择“标准”或“高级”。 有关这些层的详细信息,请参阅 Databricks 价格页
  • 选择“查看 + 创建”,然后选择“创建” 。

  • 创建工作区需要几分钟时间。 当工作区部署失败时,仍然会在失败状态下创建工作区。 删除失败的工作区,并创建一个解决部署错误的新工作区。 删除失败的工作区时,托管资源组和任何成功部署的资源也将被删除。

查看已部署的资源

可以使用 Azure 门户检查 Azure Databricks 工作区,或者使用以下 Azure CLI 或 Azure PowerShell 脚本来列出资源。

Azure CLI

echo "Enter your Azure Databricks workspace name:" &&
read databricksWorkspaceName &&
echo "Enter the resource group where the Azure Databricks workspace exists:" &&
read resourcegroupName &&
az databricks workspace show -g $resourcegroupName -n $databricksWorkspaceName

Azure PowerShell

$resourceGroupName = Read-Host -Prompt "Enter the resource group name where your Azure Databricks workspace exists"
(Get-AzResource -ResourceType "Microsoft.Databricks/workspaces" -ResourceGroupName $resourceGroupName).Name
 Write-Host "Press [ENTER] to continue..."

使用 Bicep 部署 Azure Databricks

Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 它提供简明的语法、可靠的类型安全性以及对代码重用的支持。 Bicep 会针对你的 Azure 基础结构即代码解决方案提供最佳创作体验。

查阅 Bicep 文件

本快速入门中使用的 Bicep 文件来自 Azure 快速入门模板

@description('Specifies whether to deploy Azure Databricks workspace with Secure Cluster Connectivity (No Public IP) enabled or not')
param disablePublicIp bool = false

@description('The name of the Azure Databricks workspace to create.')
param workspaceName string

@description('The pricing tier of workspace.')
@allowed([
  'standard'
  'premium'
])
param pricingTier string = 'premium'

@description('Location for all resources.')
param location string = resourceGroup().location

var managedResourceGroupName = 'databricks-rg-${workspaceName}-${uniqueString(workspaceName, resourceGroup().id)}'

resource ws 'Microsoft.Databricks/workspaces@2018-04-01' = {
  name: workspaceName
  location: location
  sku: {
    name: pricingTier
  }
  properties: {
    managedResourceGroupId: managedResourceGroup.id
    parameters: {
      enableNoPublicIp: {
        value: disablePublicIp
      }
    }
  }
}

resource managedResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' existing = {
  scope: subscription()
  name: managedResourceGroupName
}

output workspace object = ws.properties

Bicep 文件中定义的 Azure 资源是 Microsoft.Databricks/workspaces:创建 Azure Databricks 工作区。

部署 Bicep 文件

  • 将该 Bicep 文件另存为本地计算机上的 main.bicep。
  • 使用 Azure CLI 或 Azure PowerShell 来部署该 Bicep 文件。

CLI

az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters workspaceName=<workspace-name>

PowerShell

New-AzResourceGroup -Name exampleRG -Location eastus
New-AzResourceGroupDeployment -ResourceGroupName exampleRG -TemplateFile ./main.bicep -workspaceName "<workspace-name>"

注意

<workspace-name> 替换为要创建的 Azure Databricks 工作区的名称。

部署完成后,应会看到一条指出部署成功的消息。

查看已部署的资源

使用 Azure 门户、Azure CLI 或 Azure PowerShell 列出资源组中已部署的资源。

CLI

az resource list --resource-group exampleRG

PowerShell

Get-AzResource -ResourceGroupName exampleRG

配置工作区和数据权限

Azure Databricks 将某些活动限制为工作区管理员,以确保客户能够安全地配置对数据和代码的访问。 某些 Azure Databricks 功能必须由工作区管理员启用,用户才能使用它们。 有关常见任务,请参阅以管理员身份开始使用 Azure Databricks

如果你位于启用了 Unity Catalog 的工作区中,则可以利用许多附加功能来实现安全性和治理。 请参阅教程:Databricks SQL 的 Unity Catalog 元存储管理员任务

管理员需要先配置 Databricks SQL,然后才能完成大多数常见任务。 请参阅 Databricks SQL 仓库的管理员载入任务管理员:设置用户以查询表

注意

创建 Azure Databricks 工作区时,将被授予管理员权限。