演習 - Azure SQL Database のデータベースから外部テーブルを作成する
このユニットでは、PolyBase サービスを使用して、Azure SQL Database のデータベースに接続し、外部テーブルを作成します。 この演習では、次の操作を行います。
- SQL Server 2025 でデータベースを作成します。
- Azure SQL データベース スコープの資格情報をセキュリティで保護するためのデータベース マスター キーを作成します。
- データベース スコープ資格情報を作成して、Azure SQL Database データ ソースにアクセスする。
- データベース スコープ資格情報を使用して外部データ ソースを作成します。
- OPENROWSET を使用して外部データ ソースのクエリを実行します。
- 外部データ ソースを使用して外部テーブルを作成します。
前提条件
「クイック スタート: 単一データベースの作成 - Azure SQL Database」の手順を使用して作成された Azure SQL データベース。 この演習では、Azure SQL Server
polybaseserverと Azure SQL Databasepolybase2025testに名前を付けます。 データベースの作成時に、[>] の下にある [サンプル既存のデータを使用する] を選択してください。前の演習と同様に 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 サーバーのユーザー名とパスワードに置き換えます。
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 を使用して Azure SQL Database のpolybase2025test データベースに接続し、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) コマンドとその利点について学習します。