Exercício - Criar uma tabela externa a partir de um banco de dados no Banco de Dados SQL do Azure
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
polybaseservere o banco de dados SQL do Azure comopolybase2025test. 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.