練習 - 從 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) 命令及其優點。