Esercizio - Creare una tabella esterna da un database nel database SQL di Azure
In questa unità si connette e si crea una tabella esterna da un database nel database SQL di Azure usando i servizi PolyBase. Per questo esercizio, tu:
- Creare un database in SQL Server 2025.
- Creare una chiave principale del database per proteggere le credenziali con ambito per il database SQL di Azure.
- Creare credenziali con ambito database per accedere all'origine dati del database SQL di Azure.
- Creerà un’origine dati esterna usando le credenziali con ambito database.
- Eseguire una query sull'origine dati esterna usando OPENROWSET.
- Creare una tabella esterna utilizzando la fonte dati esterna.
Prerequisiti
Un database SQL di Azure creato usando le istruzioni riportate in Avvio rapido: Creare un database singolo - Database SQL di Azure. Per questo esercizio, denominare il server Azure SQL
polybaseservere il database Azure SQLpolybase2025test. Assicurarsi di selezionare Usa esempio di dati > esistenti in Impostazioni aggiuntive quando si crea il database.Istanza di SQL Server 2025 con PolyBase installata e abilitata come per l'esercizio precedente. Per connettersi a un altro database, ad esempio un database SQL di Azure, è necessario usare i servizi PolyBase. Aprire Gestione configurazione Open SQUL Server e assicurarsi che SQL Server PolyBase Data Movement e Motore di ricerca PolyBase di SQL Server siano in esecuzione.
Creazione di un database
Nell'istanza di SQL Server creare un database denominato Demo2e passare all'uso di tale database.
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;
Creare la chiave master del database
Creare una chiave master del database per questo nuovo database, come nell'esercizio precedente.
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;
Creare le credenziali con ambito database
Creare le credenziali con ambito database da usare per connettersi al server logico SQL di Azure. Sostituire <sql_user> e <password> con il nome utente e la password per il server SQL di Azure.
CREATE DATABASE SCOPED CREDENTIAL AzureSQLDB
WITH IDENTITY = '<sql_user>', Secret = '<password>';
Creare l'origine dati esterna per il database SQL di Azure
Creare l'origine dati esterna che punta al server logico di Azure SQL. Usare il sqlserver:// prefisso per connettersi al server. In questo esempio il nome completo del server è polybaseserver.database.windows.net.
CREATE EXTERNAL DATA SOURCE AzureSQLDB
WITH ( LOCATION = 'sqlserver://polybaseserver.database.windows.net',
CREDENTIAL = AzureSQLDB);
Abilitare query distribuite ad hoc
Per impostazione predefinita, SQL Server non consente query distribuite ad hoc tramite OPENROWSET. Eseguire il comando sp_configure per abilitare le query distribuite ad hoc. Per altre informazioni, vedere Query distribuite ad hoc (opzione di configurazione del server).
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC SP_CONFIGURE N'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
Usare OPENROWSET per accedere al database SQL di Azure
Usare OPENROWSET per connettersi al polybase2025test database nel database SQL di Azure ed eseguire query sulla SalesLT.Customer tabella. È necessario specificare un provider. Questo esempio usa il provider MSOLEDBSQL, installato con SQL Server 2025. È anche necessario specificare l'autenticazione <user> SQL e <password>
SELECT
*
FROM OPENROWSET(
N'MSOLEDBSQL',
'Server=polybaseserver.database.windows.net;database=polybase2025test;uid=<user>;pwd=<password>',
'SELECT * FROM SalesLT.Customer'
);
Creare una tabella esterna da SQL Server 2025 al database SQL di Azure
Dopo aver verificato che è possibile eseguire query sull'origine dati esterna, è possibile creare e visualizzare una tabella esterna chiamata ext_tblCustomers da tale origine dati usando le credenziali con ambito database e l'origine dati esterna.
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;
In questa unità è stato usato PolyBase in un'istanza di SQL Server 2025 per eseguire query e creare una tabella esterna dal database SQL di Azure. Passare all'unità successiva per informazioni sul comando CREATE EXTERNAL TABLE AS SELECT (CETAS) e sui relativi vantaggi.