연습 - 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 데이터베이스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 서버의 사용자 이름 및 암호로 바꾸세요.
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에서 외부 테이블을 쿼리하고 만들었습니다. 다음 단원으로 이동하여 CETAS(CREATE EXTERNAL TABLE AS SELECT) 명령 및 그 이점에 대해 알아봅니다.