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

Concluído

Nesta unidade, você se conecta e cria uma tabela externa a partir de um banco de dados no Banco de Dados SQL do Azure usando os serviços 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 de 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 de 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 em Guia de início rápido: criar um único banco de dados - Banco de Dados SQL do Azure. Para este exercício, nomeie o servidor SQL do Azure como polybaseserver e o banco de dados SQL do Azure como polybase2025test. Certifique-se de selecionar Usar amostra de dados > existentes em Configurações adicionais ao criar o banco de dados.

  • Uma instância do SQL Server 2025 com o PolyBase instalado e habilitado como no 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 PolyBase. Abra o SQL Server Configuration Manager e verifique se os serviços SQL Server PolyBase Data Movement e SQL Server PolyBase Engine estão em execução.

Criar uma base de dados

Em sua instância do SQL Server, crie um banco de dados chamado Demo2, e 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 do 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 com escopo no banco de dados

Crie a credencial de escopo do banco de dados a ser usada para se conectar ao seu servidor lógico SQL do Azure. Substitua <sql_user> e <password> pelo nome de usuário e senha do seu servidor SQL 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 SQL do Azure. Use o prefixo sqlserver:// 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 ad hoc distribuídas

Por padrão, o SQL Server não permite consultas distribuídas ad hoc usando OPENROWSET. Execute o comando sp_configure para habilitar consultas distribuídas ad hoc. Para obter mais informações, consulte 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;

Use OPENROWSET para acessar o banco de dados SQL do Azure

Use OPENROWSET para se conectar ao banco de dados polybase2025test no Banco de Dados SQL do Azure e consultar a tabela SalesLT.Customer. 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 exibir uma tabela externa chamada ext_tblCustomers dessa fonte de dados usando a credencial de escopo do 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. Prossiga para a próxima unidade para aprender sobre o comando CREATE EXTERNAL TABLE AS SELECT (CETAS) e seus benefícios.