Exercício – Criar uma tabela externa de um banco de dados no Banco de Dados SQL do Azure

Concluído

Nesta unidade, você se conecta e cria uma tabela externa de um banco de dados no Banco de Dados SQL do Azure usando os serviços do PolyBase. Para este exercício, você:

  • Crie um banco de dados no SQL Server 2025.
  • Crie uma chave mestra de banco de dados para proteger a credencial com escopo do banco de dados SQL do Azure.
  • Crie uma credencial com escopo no banco de dados para acessar a fonte de dados do Banco de Dados SQL do Azure.
  • Crie uma fonte de dados externa usando a credencial no escopo do banco de dados.
  • Consulte a fonte de dados externa usando OPENROWSET.
  • Crie uma tabela externa usando a fonte de dados externa.

Pré-requisitos

  • Um banco de dados SQL do Azure criado usando as instruções no Início Rápido: Criar um banco de dados individual – Banco de Dados SQL do Azure. Para este exercício, nomeie o SQL Server polybaseserver do Azure e o Banco polybase2025testde Dados SQL do Azure. Certifique-se de selecionar Usar amostra existente de dados> em configurações adicionais ao criar o banco de dados.

  • Uma instância do SQL Server 2025 com o PolyBase instalado e habilitado como para o exercício anterior. Para se conectar a outro banco de dados, como um banco de dados SQL do Azure, você precisa usar os serviços do PolyBase. Abra o SQL Server Configuration Manager e verifique se a movimentação de dados do PolyBase do SQL Server e os serviços do Mecanismo PolyBase do SQL Server estão em execução.

Criar um banco de dados

Em sua instância do SQL Server, crie um banco de dados chamado Demo2e alterne para usar esse banco de dados.

USE MASTER;
 
IF EXISTS (SELECT * FROM sys.databases WHERE [name] = N'Demo2')
BEGIN
    ALTER DATABASE Demo2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE IF EXISTS Demo2;
END;
 
CREATE DATABASE Demo2;
 
USE Demo2;

Criar a chave mestra de banco de dados

Crie uma chave mestra de banco de dados para esse novo banco de dados, como no exercício anterior.

DECLARE @randomWord VARCHAR(64) = NEWID();
DECLARE @createMasterKey NVARCHAR(500) = N'
IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name = ''##MS_DatabaseMasterKey##'')
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '  + QUOTENAME(@randomWord, '''')
EXEC sp_executesql @createMasterKey;
 
SELECT * FROM sys.symmetric_keys;

Criar a credencial no escopo do banco de dados

Crie a credencial no escopo do banco de dados a ser usada para se conectar ao servidor lógico do SQL do Azure. Substitua <sql_user> e <password> com o nome de usuário e a senha do sql server do Azure.

CREATE DATABASE SCOPED CREDENTIAL AzureSQLDB
WITH IDENTITY = '<sql_user>', Secret = '<password>';

Criar a fonte de dados externa para o Banco de Dados SQL do Azure

Crie a fonte de dados externa apontando para o servidor lógico do SQL do Azure. Use o sqlserver:// prefixo para se conectar ao servidor. Neste exemplo, o nome do servidor totalmente qualificado é polybaseserver.database.windows.net.

CREATE EXTERNAL DATA SOURCE AzureSQLDB
    WITH ( LOCATION = 'sqlserver://polybaseserver.database.windows.net',
    CREDENTIAL = AzureSQLDB);

Habilitar consultas distribuídas ad hoc

Por padrão, o SQL Server não permite consultas distribuídas ad hoc usando OPENROWSET. Execute o sp_configure comando para habilitar consultas distribuídas ad hoc. Para obter mais informações, consulte as consultas distribuídas ad hoc (opção de configuração do servidor).

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

EXEC SP_CONFIGURE N'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

Usar OPENROWSET para acessar o banco de dados SQL do Azure

Utilize OPENROWSET para se conectar ao polybase2025test banco de dados no Azure SQL Database e consultar a SalesLT.Customer tabela. Você precisa especificar um provedor. Este exemplo usa o provedor MSOLEDBSQL, que é instalado com o SQL Server 2025. Você também precisa especificar a autenticação SQL <user> e <password>

SELECT
*
FROM OPENROWSET(
N'MSOLEDBSQL',
'Server=polybaseserver.database.windows.net;database=polybase2025test;uid=<user>;pwd=<password>',
'SELECT * FROM SalesLT.Customer'
);

Criar uma tabela externa do SQL Server 2025 para o Banco de Dados SQL do Azure

Agora que você verificou que pode consultar a fonte de dados externa, pode criar e visualizar uma tabela externa chamada ext_tblCustomers usando a credencial de escopo de banco de dados e a fonte de dados externa.

CREATE EXTERNAL TABLE ext_tblCustomers(
   CustomerID INT
   ,LastName  NVARCHAR(50)
   ,EmailAddress  NVARCHAR(50)
)
WITH 
(LOCATION = N'polybase2025test.SalesLT.Customer'
,DATA_SOURCE = AzureSQLDB);
 
SELECT * FROM ext_tblCustomers;

Nesta unidade, você usou o PolyBase em uma instância do SQL Server 2025 para consultar e criar uma tabela externa do Banco de Dados SQL do Azure. Vá para a próxima unidade para saber mais sobre o comando CREATE EXTERNAL TABLE AS SELECT (CETAS) e seus benefícios.