Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

PolyBase로 구현하는 통합 데이터 플랫폼과 데이터 가상화: 2부

PolyBase 기반 UDP(통합 데이터 플랫폼) 데이터 가상화 시리즈 1부에서는 PolyBase의 개념을 소개하고 데모 진행에 필요한 사전 준비 사항을 안내했습니다. 이번 마지막 편에서는 본격적으로 데모를 단계별로 살펴보겠습니다.

데모: SQL PolyBase를 설정해 Azure Blob에서 데이터 가져오기

다음 순서대로 진행하면 됩니다.

1. Blob에 있는 외부 텍스트 파일에 접근하도록 SQL Server® 설정

Azure® Blob에 저장된 외부 텍스트 파일을 SQL Server가 읽을 수 있게 하려면 다음 쿼리를 실행합니다.

EXEC sp_configure @configname = 'hadoop connectivity', @configvalue = 7;
Go

PolyBase로 구현하는 통합 데이터 플랫폼과 데이터 가상화: 2부

그림 1

2. SQL Server 데이터베이스, 데이터베이스 마스터 키, 자격 증명 설정

기존 데이터베이스를 사용하거나 새로 만들면 됩니다. 이번 데모에서는 PolybaseTestDB라는 이름의 새 데이터베이스를 생성했습니다.

데이터베이스가 준비되었다면 다음 쿼리로 데이터베이스 마스터 키와 자격 증명을 만듭니다.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Welcome@3452';
USE PolybaseTestDB
Go
CREATE DATABASE SCOPED CREDENTIAL [Polybasecred]
WITH
IDENTITY = 'Polybaseaccount',
SECRET='qdfAVoBN+yr2rHN796gXFtpfhxKgAW3JDAtSPi0RnWcWgy9YRSwyGQR7BoINTHSgjiorUFTCmZpLTZspCbXesg==';

위 쿼리의 SECRET은 앞서 생성한 스토리지 계정의 액세스 키입니다. 키는 다음 순서로 확인할 수 있습니다.

  1. Azure Portal → Storage Accounts로 이동합니다.
  2. 해당 스토리지 계정을 클릭합니다.
  3. 왼쪽 메뉴에서 액세스 키(Access Key)를 선택합니다.
  4. 오른쪽 창에 키가 표시됩니다.
  5. 키를 복사해 위 쿼리에 붙여 넣습니다.

3. 생성한 자격 증명으로 외부 데이터 원본 만들기

다음 쿼리를 실행해 외부 데이터 원본을 생성합니다. 생성이 완료되면 데이터베이스의 외부 리소스 목록에서 확인할 수 있습니다.

CREATE EXTERNAL DATA SOURCE AzureStorage
WITH 
(
  TYPE = HADOOP,             
  LOCATION = 'wasbs://polybasedemocontainer@polybasedemo1.blob.core.windows.net',
  CREDENTIAL = [Polybasecred]
);

PolyBase로 구현하는 통합 데이터 플랫폼과 데이터 가상화: 2부

그림 2

참고: Azure Storage Blob은 Hadoop® 분산 파일 시스템(HDFS) API 위에 구축된 확장 서비스이므로, 위 쿼리의 TYPEHadoop으로 지정합니다.

4. 외부 파일 형식 만들기

다음 쿼리를 실행합니다.

CREATE EXTERNAL FILE FORMAT TextFileFormat WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR =',',USE_TYPE_DEFAULT = TRUE))             

PolyBase로 구현하는 통합 데이터 플랫폼과 데이터 가상화: 2부

그림 3

참고: 쉼표로 구분된 텍스트 파일이므로 FIELD_TERMINATOR','로 지정합니다.

5. 외부 테이블 만들기

다음 쿼리를 실행합니다.

CREATE EXTERNAL TABLE dbo.SQLPolybaseTable (
  [Name] varchar(500),
  [Subject] varchar(500),
  [Education] varchar(500)
)
WITH (
  LOCATION='/Data.txt',          This is the name of the file uploaded to the container.
  DATA_SOURCE=AzureStorage,      The Data Source created in previous steps.
  FILE_FORMAT=TextFileFormat     The File Format Name created in previous steps.
);

각 옵션의 의미는 다음과 같습니다.

  • LOCATION: 컨테이너에 업로드한 파일의 이름(여기서는 /Data.txt)
  • DATA_SOURCE: 앞선 단계에서 생성한 외부 데이터 원본(AzureStorage)
  • FILE_FORMAT: 앞선 단계에서 생성한 파일 형식(TextFileFormat)

PolyBase로 구현하는 통합 데이터 플랫폼과 데이터 가상화: 2부

그림 4

6. 외부 테이블 조회하기

외부 테이블은 SQL Server의 일반 테이블처럼 그대로 조회할 수 있습니다. 조회 결과를 통해 PolyBase가 외부 데이터를 손쉽게 가져오는지 검증할 수 있습니다. 다음 쿼리를 실행합니다.

Select * from <Tablename>

PolyBase로 구현하는 통합 데이터 플랫폼과 데이터 가상화: 2부

그림 5

마치며

다음 글에서는 아래 주제를 더 깊이 다룰 예정입니다.

  • 컬럼형 저장소(Columnar Store)를 활용한 데이터 마트
  • HDFS를 활용한 데이터 레이크
  • Apache Spark를 활용한 빅데이터·머신러닝·스트리밍

또한 이번 데모를 진행하면서 마주친 몇 가지 이슈가 있었는데, 관련 경험과 해결 과정을 정리해 다음 블로그에서 공유할 계획입니다.

많은 기대 부탁드립니다!

데이터 서비스에 대해 더 자세히 알아보세요.

Feedback 탭을 통해 의견을 남기거나 질문을 보내실 수 있습니다. 언제든지 대화를 시작해 주세요.