Oefening: een externe tabel maken op basis van een database in Azure SQL Database
In deze les maakt u verbinding met en maakt u een externe tabel op basis van een database in Azure SQL Database met behulp van de PolyBase-services. Voor deze oefening gaat u als volgt te werk:
- Maak een database in SQL Server 2025.
- Maak een databasehoofdsleutel om de Azure SQL Database-scope-credential te beveiligen.
- Maak een databasereferentie voor toegang tot de Azure SQL Database-gegevensbron.
- Maak een externe gegevensbron met behulp van de referentie voor het databasebereik.
- Voer een query uit op de externe gegevensbron met behulp van OPENROWSET.
- Maak een externe tabel met behulp van de externe gegevensbron.
Vereiste voorwaarden
Een Azure SQL-database die is gemaakt met behulp van de instructies in quickstart: Een individuele database maken - Azure SQL Database. Geef voor deze oefening de Azure SQL-server
polybaseserveren de Azure SQL-databasepolybase2025testeen naam. Zorg ervoor dat u Bestaande gegevensvoorbeeld > gebruiken selecteert onder Aanvullende instellingen wanneer u de database maakt.Een SQL Server 2025-exemplaar waarop PolyBase is geïnstalleerd en ingeschakeld zoals in de vorige oefening. Als u verbinding wilt maken met een andere database, zoals een Azure SQL-database, moet u PolyBase-services gebruiken. Open SQL Server Configuration Manager en zorg ervoor dat de SQL Server PolyBase-gegevensverplaatsing en SQL Server PolyBase Engine-services worden uitgevoerd.
Een database maken
Maak in uw SQL Server-exemplaar een database met de naam Demo2en schakel over naar het gebruik van die 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;
De hoofdsleutel van de database maken
Maak een databasehoofdsleutel voor deze nieuwe database, zoals in de vorige oefening.
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;
De referentie voor het databasebereik maken
Maak de databasereferentie die u wilt gebruiken om verbinding te maken met uw logische Azure SQL-server. Vervang <sql_user> door de gebruikersnaam en <password> door het wachtwoord voor uw Azure SQL-server.
CREATE DATABASE SCOPED CREDENTIAL AzureSQLDB
WITH IDENTITY = '<sql_user>', Secret = '<password>';
De externe gegevensbron voor Azure SQL Database maken
Maak de externe gegevensbron die verwijst naar de logische Azure SQL-server. U gebruikt het sqlserver:// voorvoegsel om verbinding te maken met de server. In dit voorbeeld is polybaseserver.database.windows.netde volledig gekwalificeerde servernaam.
CREATE EXTERNAL DATA SOURCE AzureSQLDB
WITH ( LOCATION = 'sqlserver://polybaseserver.database.windows.net',
CREDENTIAL = AzureSQLDB);
Ad-hoc gedistribueerde query's inschakelen
Sql Server staat standaard geen ad-hoc gedistribueerde query's toe met behulp van OPENROWSET. Voer de sp_configure opdracht uit om ad-hoc gedistribueerde query's in te schakelen. Zie ad-hoc gedistribueerde query's (serverconfiguratieoptie) voor meer informatie.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC SP_CONFIGURE N'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
OPENROWSET gebruiken voor toegang tot de Azure SQL-database
OpenROWSET gebruiken om verbinding te maken met de polybase2025test database in Azure SQL Database en een query uit te voeren op de SalesLT.Customer tabel. U moet een provider opgeven. In dit voorbeeld wordt de MSOLEDBSQL-provider gebruikt, die is geïnstalleerd met SQL Server 2025. U moet ook de SQL-verificatie <user> opgeven en <password>
SELECT
*
FROM OPENROWSET(
N'MSOLEDBSQL',
'Server=polybaseserver.database.windows.net;database=polybase2025test;uid=<user>;pwd=<password>',
'SELECT * FROM SalesLT.Customer'
);
Een externe tabel maken van SQL Server 2025 naar Azure SQL Database
Nu u hebt gecontroleerd of u een query kunt uitvoeren op de externe gegevensbron, kunt u een externe tabel maken en bekijken, genaamd ext_tblCustomers, vanuit die gegevensbron, met behulp van de referentie voor database-bereik en de externe gegevensbron.
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 deze les hebt u PolyBase gebruikt op een SQL Server 2025-exemplaar om een query uit te voeren en een externe tabel te maken vanuit Azure SQL Database. Ga verder met de volgende les voor meer informatie over de opdracht CREATE EXTERNAL TABLE AS SELECT (CETAS) en de voordelen ervan.