Övning – Skapa en extern tabell från en databas i Azure SQL Database

Slutförd

I den här lektionen ansluter du till och skapar en extern tabell från en databas i Azure SQL Database med hjälp av PolyBase-tjänsterna. För denna övning:

  • Skapa en databas i SQL Server 2025.
  • Skapa en databashuvudnyckel för att skydda azure SQL-databasens omfångsbegränsade autentiseringsuppgifter.
  • Skapa en databasomfattande autentiseringsuppgift för att få åtkomst till Azure SQL Database-datakällan.
  • Skapa en extern datakälla med hjälp av databasspecifik behörighet.
  • Anropa den externa datakällan med hjälp av OPENROWSET.
  • Skapa en extern tabell med hjälp av den externa datakällan.

Förutsättningar

  • En Azure SQL-databas som skapats med hjälp av anvisningarna i Snabbstart: Skapa en enkel databas – Azure SQL Database. I den här övningen namnger du Azure SQL-servern polybaseserver och Azure SQL-databasen polybase2025test. Välj Använd befintligt dataexempel > under Ytterligare inställningar när du skapar databasen.

  • En SQL Server 2025-instans med PolyBase installerad och aktiverad som för föregående övning. Om du vill ansluta till en annan databas, till exempel en Azure SQL-databas, måste du använda PolyBase-tjänster. Öppna SQL Server Configuration Manager och kontrollera att SQL Server PolyBase Data Movement - och SQL Server PolyBase Engine-tjänsterna körs.

Skapa en databas

I SQL Server-instansen skapar du en databas med namnet Demo2och växlar till att använda den databasen.

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;

Skapa databasens huvudnyckel

Skapa en huvudnyckel för databasen för den här nya databasen, som i föregående övning.

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;

Skapa databasavgränsade autentiseringsuppgifter

Skapa databasens begränsade autentiseringsuppgifter som ska användas för att ansluta till din logiska Azure SQL-server. Ersätt <sql_user> och <password> med användarnamnet och lösenordet för Din Azure SQL-server.

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

Skapa den externa datakällan för Azure SQL Database

Skapa den externa datakällan som pekar på den logiska Azure SQL-servern. Du använder prefixet sqlserver:// för att ansluta till servern. I det här exemplet är det fullständigt kvalificerade servernamnet polybaseserver.database.windows.net.

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

Aktivera ad hoc-distribuerade frågor

Sql Server tillåter som standard inte ad hoc-distribuerade frågor med OPENROWSET. Kör kommandot sp_configure för att aktivera ad hoc-distribuerade frågor. Mer information finns i ad hoc-distribuerade frågor (serverkonfigurationsalternativ).

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

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

Använda OPENROWSET för att komma åt Azure SQL-databasen

Använd OPENROWSET för att ansluta till polybase2025test databasen i Azure SQL Database och köra frågor mot SalesLT.Customer tabellen. Du måste ange en leverantör. I det här exemplet används MSOLEDBSQL-providern, som är installerad med SQL Server 2025. Du måste också ange SQL-autentisering <user> och <password>

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

Skapa en extern tabell från SQL Server 2025 till Azure SQL Database

Nu när du har verifierat att du kan fråga den externa datakällan kan du skapa och visa en extern tabell med namnet ext_tblCustomers från datakällan med hjälp av databasens begränsade autentiseringsuppgifter och externa datakälla.

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;

I den här lektionen använde du PolyBase på en SQL Server 2025-instans för att fråga efter och skapa en extern tabell från Azure SQL Database. Gå vidare till nästa enhet för att lära dig mer om kommandot CREATE EXTERNAL TABLE AS SELECT (CETAS) och dess fördelar.