Tutorial: Consultar um contêiner do Docker do Linux do SQL Server em uma rede virtual de um notebook do Azure DatabricksTutorial: Query a SQL Server Linux Docker container in a virtual network from an Azure Databricks notebook

Este tutorial ensina a integrar o Azure Databricks com um contêiner do Docker do Linux SQL Server em uma rede virtual.This tutorial teaches you how to integrate Azure Databricks with a SQL Server Linux Docker container in a virtual network.

Neste tutorial, você aprenderá como:In this tutorial, you learn how to:

  • Implantar um espaço de trabalho Azure Databricks em uma rede virtualDeploy an Azure Databricks workspace to a virtual network
  • Instalar uma máquina virtual do Linux em uma rede públicaInstall a Linux virtual machine in a public network
  • Instalar o DockerInstall Docker
  • Instalar Microsoft SQL Server em Linux contêiner do DockerInstall Microsoft SQL Server on Linux docker container
  • Consultar o SQL Server usando JDBC em um notebook do databricksQuery the SQL Server using JDBC from a Databricks notebook

Pré-requisitosPrerequisites

Criar uma máquina virtual LinuxCreate a Linux virtual machine

  1. No portal do Azure, selecione o ícone para máquinas virtuais.In the Azure portal, select the icon for Virtual Machines. Em seguida, selecione + Adicionar.Then, select + Add.

    Adicionar nova máquina virtual do Azure

  2. Na guia noções básicas , escolha Ubuntu Server 16, 4 LTS.On the Basics tab, Choose Ubuntu Server 16.04 LTS. Altere o tamanho da VM para B1ms, que tem um VCPUS e 2 GB de RAM.Change the VM size to B1ms, which has one VCPUS and 2-GB RAM. O requisito mínimo para um contêiner do Docker para Linux SQL Server é 2 GB.The minimum requirement for a Linux SQL Server Docker container is 2 GB. Escolha um nome de usuário e senha de administrador.Choose an administrator username and password.

    Guia básico da nova configuração de máquina virtual

  3. Navegue até a guia rede . Escolha a rede virtual e a sub-rede pública que inclui o cluster Azure Databricks.Navigate to the Networking tab. Choose the virtual network and the public subnet that includes your Azure Databricks cluster. Selecione revisar + criare criar para implantar a máquina virtual.Select Review + create, then Create to deploy the virtual machine.

    Guia rede da nova configuração de máquina virtual

  4. Quando a implantação for concluída, navegue até a máquina virtual.When the deployment is complete, navigate to the virtual machine. Observe o endereço IP público e a rede/sub-rede virtual na visão geral.Notice the Public IP address and Virtual network/subnet in the Overview. Selecione o endereço IP públicoSelect the Public IP Address

    Visão geral da máquina virtual

  5. Altere a atribuição para estático e insira um rótulo de nome DNS.Change the Assignment to Static and enter a DNS name label. Selecione salvare reinicie a máquina virtual.Select Save, and restart the virtual machine.

    Configuração de endereço IP público

  6. Selecione a guia rede em configurações.Select the Networking tab under Settings. Observe que o grupo de segurança de rede que foi criado durante a implantação de Azure Databricks está associado à máquina virtual.Notice that the network security group that was created during the Azure Databricks deployment is associated with the virtual machine. Selecione Adicionar regra de porta de entrada.Select Add inbound port rule.

  7. Adicione uma regra para abrir a porta 22 para SSH.Add a rule to open port 22 for SSH. Use as configurações a seguir:Use the following settings:

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    OrigemSource Endereços IPIP Addresses Endereços IP especifica que o tráfego de entrada de um endereço IP de origem específico será permitido ou negado por essa regra.IP Addresses specifies that incoming traffic from a specific source IP Address will be allowed or denied by this rule.
    Endereços IP da fonteSource IP addresses < seu IP público @ no__t-0<your public ip> Insira o endereço IP público.Enter the your public IP address. Você pode encontrar seu endereço IP público visitando Bing.com e procurando por "meu IP" .You can find your public IP address by visiting bing.com and searching for "my IP".
    Source port rangesSource port ranges * Permitir o tráfego de qualquer porta.Allow traffic from any port.
    DestinationDestination Endereços IPIP Addresses Endereços IP especifica que o tráfego de saída para um endereço IP de origem específico será permitido ou negado por essa regra.IP Addresses specifies that outgoing traffic for a specific source IP Address will be allowed or denied by this rule.
    Endereços IP de destinoDestination IP addresses < seu IP público de VM @ no__t-0<your vm public ip> Insira o endereço IP público da máquina virtual.Enter your virtual machine's public IP address. Você pode encontrá-lo na página visão geral de sua máquina virtual.You can find this on the Overview page of your virtual machine.
    Intervalos de portas de destinoDestination port ranges 2222 Abra a porta 22 para SSH.Open port 22 for SSH.
    PriorityPriority 290290 Dê prioridade à regra.Give the rule a priority.
    NOMEName SSH-databricks-tutorial-VMssh-databricks-tutorial-vm Dê um nome à regra.Give the rule a name.

    Adicionar regra de segurança de entrada para a porta 22

  8. Adicione uma regra para abrir a porta 1433 para SQL com as seguintes configurações:Add a rule to open port 1433 for SQL with the following settings:

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    OrigemSource Endereços IPIP Addresses Endereços IP especifica que o tráfego de entrada de um endereço IP de origem específico será permitido ou negado por essa regra.IP Addresses specifies that incoming traffic from a specific source IP Address will be allowed or denied by this rule.
    Endereços IP da fonteSource IP addresses 10.179.0.0/1610.179.0.0/16 Insira o intervalo de endereços para sua rede virtual.Enter the address range for your virtual network.
    Source port rangesSource port ranges * Permitir o tráfego de qualquer porta.Allow traffic from any port.
    DestinationDestination Endereços IPIP Addresses Endereços IP especifica que o tráfego de saída para um endereço IP de origem específico será permitido ou negado por essa regra.IP Addresses specifies that outgoing traffic for a specific source IP Address will be allowed or denied by this rule.
    Endereços IP de destinoDestination IP addresses < seu IP público de VM @ no__t-0<your vm public ip> Insira o endereço IP público da máquina virtual.Enter your virtual machine's public IP address. Você pode encontrá-lo na página visão geral de sua máquina virtual.You can find this on the Overview page of your virtual machine.
    Intervalos de portas de destinoDestination port ranges 14331433 Abra a porta 22 para SQL Server.Open port 22 for SQL Server.
    PriorityPriority 300300 Dê prioridade à regra.Give the rule a priority.
    NOMEName SQL-databricks-tutorial-VMsql-databricks-tutorial-vm Dê um nome à regra.Give the rule a name.

    Adicionar regra de segurança de entrada para a porta 1433

Executar SQL Server em um contêiner do DockerRun SQL Server in a Docker container

  1. Abra o Ubuntu para Windowsou qualquer outra ferramenta que permita que você use ssh na máquina virtual.Open Ubuntu for Windows, or any other tool that will allow you to SSH into the virtual machine. Navegue até sua máquina virtual no portal do Azure e selecione conectar para obter o comando ssh que você precisa para se conectar.Navigate to your virtual machine in the Azure portal and select Connect to get the SSH command you need to connect.

    Conectar-se à máquina virtual

  2. Insira o comando em seu terminal do Ubuntu e insira a senha de administrador que você criou quando configurou a máquina virtual.Enter the command in your Ubuntu terminal and enter the admin password you created when you configured the virtual machine.

    Entrada SSH do terminal do Ubuntu

  3. Use o comando a seguir para instalar o Docker na máquina virtual.Use the following command to install Docker on the virtual machine.

    sudo apt-get install docker.io
    

    Verifique a instalação do Docker com o seguinte comando:Verify the install of Docker with the following command:

    sudo docker --version
    
  4. Instale a imagem.Install the image.

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

    Verifique as imagens.Check the images.

    sudo docker images
    
  5. Execute o contêiner a partir da imagem.Run the container from the image.

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

    Verifique se o contêiner está em execução.Verify that the container is running.

    sudo docker ps -a
    

Criar um banco de dados SQLCreate a SQL database

  1. Abra SQL Server Management Studio e conecte-se ao servidor usando o nome do servidor e a autenticação do SQL.Open SQL Server Management Studio and connect to the server using the server name and SQL Authentication. O nome de usuário de logon é SA e a senha é a senha definida no comando Docker.The sign in username is SA and the password is the password set in the Docker command. A senha no comando de exemplo é Password1234.The password in the example command is Password1234.

    Conectar-se a SQL Server usando SQL Server Management Studio

  2. Depois de se conectar com êxito, selecione nova consulta e insira o trecho de código a seguir para criar um banco de dados, uma tabela e inserir alguns registros na tabela.Once you've successfully connected, select New Query and enter the following code snippet to create a database, a table, and insert some records in the table.

    CREATE DATABASE MYDB;
    GO
    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
    GO
    

    Consulta para criar um banco de dados SQL Server

SQL Server de consulta de Azure DatabricksQuery SQL Server from Azure Databricks

  1. Navegue até o espaço de trabalho Azure Databricks e verifique se você criou um cluster como parte dos pré-requisitos.Navigate to your Azure Databricks workspace and verify that you created a cluster as part of the prerequisites. Em seguida, selecione criar um bloco de anotações.Then, select Create a Notebook. Dê um nome ao bloco de anotações, selecione Python como idioma e selecione o cluster que você criou.Give the notebook a name, select Python as the language, and select the cluster you created.

    Novas configurações de notebook do databricks

  2. Use o comando a seguir para executar ping no endereço IP interno da máquina virtual SQL Server.Use the following command to ping the internal IP Address of the SQL Server virtual machine. Esse ping deve ser bem-sucedido.This ping should be successful. Caso contrário, verifique se o contêiner está em execução e examine a configuração do NSG (grupo de segurança de rede).If not, verify that the container is running, and review the network security group (NSG) configuration.

    %sh
    ping 10.179.64.4
    

    Você também pode usar o comando nslookup para examinar.You can also use the nslookup command to review.

    %sh
    nslookup databricks-tutorial-vm.westus2.cloudapp.azure.com
    
  3. Depois de executar o ping com êxito no SQL Server, você poderá consultar o banco de dados e as tabelas.Once you've successfully pinged the SQL Server, you can query the database and tables. Execute o seguinte código Python:Run the following python code:

    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)
    

Limpar recursosClean up resources

Quando não forem mais necessário, exclua o grupo de recursos, o workspace do Azure Databricks e todos os recursos relacionados.When no longer needed, delete the resource group, the Azure Databricks workspace, and all related resources. Excluir o trabalho evita cobrança desnecessária.Deleting the job avoids unnecessary billing. Se você está planejando usar o workspace do Azure Databricks no futuro, pode parar o cluster e reiniciá-lo mais tarde.If you're planning to use the Azure Databricks workspace in future, you can stop the cluster and restart it later. Se você não pretende continuar a usar esse workspace do Azure Databricks, exclua todos os recursos criados neste tutorial usando as seguintes etapas:If you are not going to continue to use this Azure Databricks workspace, delete all resources you created in this tutorial by using the following steps:

  1. No menu à esquerda no portal do Azure, clique em Grupos de recursos e depois clique no nome do grupo de recursos criado.From the left-hand menu in the Azure portal, click Resource groups and then click the name of the resource group you created.

  2. Em sua página de grupo de recursos, selecione Excluir, digite o nome do recurso a ser excluído na caixa de texto e selecione Excluir.On your resource group page, select Delete, type the name of the resource to delete in the text box, and then select Delete again.

Próximas etapasNext steps

Avance para o próximo artigo para saber como extrair, transformar e carregar dados usando Azure Databricks.Advance to the next article to learn how to extract, transform, and load data using Azure Databricks.