練習 - 從 Azure SQL Database 中的資料庫建立外部數據表

已完成

在此單元中,您會使用PolyBase服務,從 Azure SQL Database 中的資料庫連線並建立外部數據表。 在這個練習中,您將:

  • 在 SQL Server 2025 中建立資料庫。
  • 建立資料庫主要密鑰來保護 Azure SQL 資料庫範圍認證。
  • 建立資料庫範圍認證以存取 Azure SQL Database 數據源。
  • 使用資料庫範圍認證建立外部數據源。
  • 使用 OPENROWSET 查詢外部數據源。
  • 使用外部數據源建立外部數據表。

先決條件

  • Azure SQL 資料庫,建立指示請參閱快速入門:建立單一資料庫 - Azure SQL Database。 在這裡練習中,將 Azure SQL 伺服器 polybaseserver 和 Azure SQL 資料庫 polybase2025test命名為 。 當您建立資料庫時,請務必選取 [>] 底下的 [使用現有數據範例]。

  • 已安裝和啟用 PolyBase 的 SQL Server 2025 實例,就像上一個練習中一樣。 若要連線到另一個資料庫,例如 Azure SQL 資料庫,您必須使用 PolyBase 服務。 開啟 SQL Server 組態管理員,並確定 SQL Server PolyBase 數據移動SQL Server PolyBase 引擎 服務正在執行。

建立資料庫

在您的 SQL Server 實例中,建立名為 Demo2的資料庫,並切換至使用該資料庫。

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;

建立資料庫主要金鑰

建立這個新資料庫的資料庫主要密鑰,如上一個練習所示。

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;

建立資料庫範圍認證

建立資料庫範圍認證,以用來連線到 Azure SQL 邏輯伺服器。 將 <sql_user><password> 替換為您的 Azure SQL Server 的使用者名稱和密碼。

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

建立 Azure SQL Database 的外部數據源

建立指向 Azure SQL 邏輯伺服器的外部數據源。 您可以使用前置 sqlserver:// 詞來連線到伺服器。 在這個範例中,完整伺服器名稱為 polybaseserver.database.windows.net

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

啟用隨需的分散式查詢

根據預設,SQL Server 不允許使用 OPENROWSET 的特定分散式查詢。 執行 sp_configure 命令以啟用即席分散式查詢功能。 如需詳細資訊,請參閱臨機作分散式查詢(伺服器組態選項)。

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

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

使用 OPENROWSET 存取 Azure SQL 資料庫

使用 OPENROWSET 連線到 polybase2025test Azure SQL Database 中的資料庫,並查詢 SalesLT.Customer 數據表。 您必須指定提供者。 此範例會使用隨 SQL Server 2025 一起安裝的 MSOLEDBSQL 提供者。 您也需要指定 SQL 驗證 <user><password>

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

建立從 SQL Server 2025 到 Azure SQL Database 的外部資料表

既然您已確認可以查詢外部數據源,您可以使用資料庫範圍認證和外部數據源,從該數據源建立和檢視名為 ext_tblCustomers 的外部數據表。

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;

在此單元中,您已在 SQL Server 2025 實例上使用 PolyBase 來查詢及從 Azure SQL Database 建立外部數據表。 繼續前往下一個單元,學習 CREATE EXTERNAL TABLE AS SELECT (CETAS) 命令及其優點。