添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本教程介绍如何将 Azure Databricks 与虚拟网络中的 SQL Server Linux Docker 容器集成。

In this tutorial, you learn how to:

  • 将 Azure Databricks 工作区部署到虚拟网络
  • 在公用网络中安装 Linux 虚拟机
  • 安装 Docker
  • 安装 Linux 上的 Microsoft SQL Server docker 容器
  • 使用 Databricks 笔记本中的 JDBC 查询 SQL Server
  • 在虚拟网络中创建 Databricks 工作区

  • 安装 用于 Windows 的 Ubuntu

  • 下载 SQL Server Management Studio

    创建 Linux 虚拟机

  • 在 Azure 门户中,选择“虚拟机”的图标。 然后选择“+ 添加”。

  • 在“基本信息”选项卡上,选择 Ubuntu Server 18.04 LTS 并将 VM 大小更改为 B2。 选择管理员用户名和密码。

  • 导航到“ 网络 ”选项卡。选择虚拟网络和包含 Azure Databricks 群集的公共子网。 选择“查看 + 创建”选项卡,然后选择“创建”以部署虚拟机。

  • 部署完成后,导航到虚拟机。 请注意“概述”中的公共 IP 地址和虚拟网络/子网。 选择“公共 IP 地址”

  • 将“分配”更改为“静态”并输入“DNS 名称标签”。 选择“保存”并重启虚拟机。

  • 在“设置”下选择“网络”选项卡。 请注意,在 Azure Databricks 部署过程中创建的网络安全组与虚拟机关联。 选择“添加入站端口规则”。

  • 添加规则,为 SSH 打开端口 22。 使用以下设置:

    在 Docker 容器中运行 SQL Server

  • 打开 用于 Windows 的 Ubuntu ,或者其他任何允许你通过 SSH 登录虚拟机的工具。 导航到 Azure 门户中的虚拟机,然后选择“连接”以获取连接所需的 SSH 命令。

  • 在 Ubuntu 终端中输入命令,然后输入在配置虚拟机时创建的管理员密码。

  • 使用以下命令在虚拟机上安装 Docker。

    sudo apt-get install docker.io
    

    使用以下命令验证 Docker 的安装:

    sudo docker --version
    
  • 安装映像。

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    

    检查映像。

    sudo docker images
    
  • 从映像运行容器。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password1234' -p 1433:1433 --name sql1  -d mcr.microsoft.com/mssql/server:2017-latest
    

    验证容器是否正在运行。

    sudo docker ps -a
    

    创建 SQL 数据库

  • 打开 SQL Server Management Studio 并使用服务器名和 SQL 身份验证连接到服务器。 登录用户名是 SA,密码是 Docker 命令中设置的密码。 示例命令中的密码为 Password1234

  • 成功连接后,选择“新建查询”,然后输入以下代码片段以创建数据库、表,并在表中插入一些记录。

    CREATE DATABASE MYDB;
    USE MYDB;
    CREATE TABLE states(Name VARCHAR(20), Capitol VARCHAR(20));
    INSERT INTO states VALUES ('Delaware','Dover');
    INSERT INTO states VALUES ('South Carolina','Columbia');
    INSERT INTO states VALUES ('Texas','Austin');
    SELECT * FROM states
    

    从 Azure Databricks 查询 SQL Server

  • 导航到 Azure Databricks 工作区,并验证是否已按照先决条件的要求创建了一个群集。 然后选择“创建笔记本”。 为笔记本指定一个名称,选择 Python 作为语言,然后选择创建的群集。

  • 使用以下命令对 SQL Server 虚拟机的内部 IP 地址执行 ping 操作。 此 ping 操作应会成功。 如果不成功,请验证容器是否正在运行,并查看网络安全组 (NSG) 配置。

    ping 10.179.64.4

    还可以使用 nslookup 命令进行查看。

    nslookup databricks-tutorial-vm.westus2.cloudapp.azure.com
  • 成功对 SQL Server 执行 ping 操作后,即可查询数据库和表。 运行以下 Python 代码:

    jdbcHostname = "10.179.64.4"
    jdbcDatabase = "MYDB"
    userName = 'SA'
    password = 'Password1234'
    jdbcPort = 1433
    jdbcUrl = "jdbc:sqlserver://{0}:{1};database={2};user={3};password={4}".format(jdbcHostname, jdbcPort, jdbcDatabase, userName, password)
    df = spark.read.jdbc(url=jdbcUrl, table='states')
    display(df)
    

    若不再需要资源组、Azure Databricks 工作区以及所有相关资源,请将其删除。 删除作业可避免产生不必要的计费。 若计划将来使用 Azure Databricks 工作区,则可停止群集并在以后重启。 如果不打算继续使用此 Azure Databricks 工作区,请使用以下步骤删除在本教程中创建的所有资源:

  • 在 Azure 门户的左侧菜单中,单击“资源组”,并单击所创建的资源的名称。

  • 在资源组页上选择“删除”,在文本框中键入要删除的资源的名称,然后再次选择“删除”。

    请继续学习下一篇文章,了解如何使用 Azure Databricks 提取、转换和加载数据。

    教程:使用 Azure Databricks 提取、转换和加载数据

  •