[DB] 데이터브릭스 SQL Server(MS-SQL) 연결

데이터브릭스 Lakeflow Connect를 위한 SQL Server 준비하기 (Utility Objects 설치)

 

데이터브릭스란? Apache Spark의 개발자들이 만든 플랫폼으로, 다음과 같은 특징을 가집니다.

 

  • Lakehouse 아키텍처: 데이터 레이크의 유연함(저렴한 저장 비용, 모든 형태의 데이터 수집)과 데이터 웨어하우스의 신뢰성(ACID 트랜잭션, SQL 성능)을 동시에 제공합니다.
  • 통합 분석 플랫폼: 데이터 엔지니어링, 데이터 과학, 머신러닝, 비즈니스 분석(SQL)을 하나의 협업 공간(Notebook)에서 수행할 수 있습니다.
  • 멀티 클라우드 지원: AWS, Azure, GCP 환경에서 모두 구동되며, 특히 Azure에서는 Azure Databricks라는 이름으로 퍼스트 파티 서비스로 통합되어 있습니다.

 

데이터브릭스(Databricks)에서 Lakeflow Connect를 사용해 SQL Server 데이터를 수집하려면, 먼저 SQL Server 쪽에 몇 가지 Utility Objects(유틸리티 객체)를 설치해야 합니다.

 

이 글에서는 공식 문서를 기반으로 Lakeflow Connect 사용을 위한 SQL Server 준비 과정 중 Step 1: Utility Objects 설치 방법을 정리합니다.

 

 

이 글은 다음 내용을 다룹니다.

  1. Lakeflow Connect와 SQL Server 연동 개념
  2. Utility Objects가 필요한 이유
  3. 설치 전 준비사항
  4. Utility Script 설치 방법
  5. 설치 확인 방법

1. Lakeflow Connect란?

데이터브릭스Lakeflow Connect는 외부 데이터베이스에서 데이터를 지속적으로 수집하여 Databricks Lakehouse로 적재하는 ingestion 기능입니다.

 

SQL Server의 데이터를 가져올 때는 다음 두 가지 기술을 활용합니다.

  • Change Tracking (CT) - 참조
  • Change Data Capture (CDC) - 참조

일반적으로 다음 방식으로 사용됩니다.

테이블 유형 권장 방식
Primary Key 있음 Change Tracking
Primary Key 없음 CDC

이 기능을 사용하려면 SQL Server 내부에 Lakeflow 전용 stored procedure와 함수들이 필요합니다.

이를 설치하는 과정이 바로 Utility Objects 설치입니다.


2. Utility Objects가 필요한 이유

Lakeflow Connect는 SQL Server에서 다음 작업을 자동으로 수행합니다.

  • 데이터 변경 추적 설정
  • CDC 설정
  • 권한 관리
  • 플랫폼 감지
  • 스키마 변경 대응

이를 위해 여러 Utility Stored Procedure와 Function이 생성됩니다.

대표적으로 다음 객체들이 생성됩니다.

Functions

  • lakeflowDetectPlatform()
  • lakeflowUtilityVersion_1_X()

Stored Procedures

  • lakeflowSetupChangeTracking
  • lakeflowSetupChangeDataCapture
  • lakeflowFixPermissions

이 프로시저들은 이후 Lakeflow Connect 설정 과정에서 사용됩니다.


3. 설치 전 준비사항

Utility Script 실행 전 다음 조건을 충족해야 합니다.

1️⃣ 실행 계정 권한

스크립트를 실행하는 계정은 db_owner 역할이 필요합니다.

USE [your_database];
ALTER ROLE db_owner ADD MEMBER [your_setup_user];
GO
 

이 권한은 설치할 때만 필요하며 ingestion user에는 필요 없습니다.


2️⃣ 대상 데이터베이스 확인

Utility Objects는 SQL Server Instance가 아니라 특정 Database에 설치됩니다.

따라서 실행 전에 반드시 다음을 확인해야 합니다.

  • 연결된 Database가 맞는지
  • SSMS에서 target database 선택 여부

4. Utility Script 설치 방법

이제 실제 설치 과정을 진행합니다.

Step 1. Utility Script 다운로드

공식 문서에서 utility_script.sql 파일을 다운로드합니다.


Step 2. SQL Client에서 스크립트 실행

다음 도구 중 하나를 사용합니다.

  • SQL Server Management Studio (SSMS)
  • Azure Data Studio
  • 기타 SQL Client

그리고 다음 절차로 진행합니다.

1️⃣ SQL Server 인스턴스 접속
2️⃣ 대상 Database 선택
3️⃣ utility_script.sql 열기
4️⃣ 스크립트 실행

 

이 스크립트는 Lakeflow Connect 설정에 필요한 Stored Procedure와 Function을 생성합니다.


5. 설치 확인 방법

설치가 정상적으로 완료되었는지 확인하려면 다음 SQL을 실행합니다.

 
SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion;
SELECT dbo.lakeflowDetectPlatform() AS Platform;
 

 

결과 예시

UtilityVersion
--------------
1.1

Platform
--------------
ON_PREMISES
 

 

첫 번째 쿼리는 설치된 Utility Version을 확인합니다.
두 번째 쿼리는 SQL Server 환경을 자동으로 감지합니다.

 

지원되는 플랫폼은 다음과 같습니다.

  • On-premises SQL Server
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Amazon RDS for SQL Server

6. 다음 단계

Utility Objects 설치가 끝났다면 다음 단계로 진행합니다.

Step 2 — Change Tracking 설정

EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'lakeflow_user',
@Retention = '2 DAYS';
 

Step 3 — CDC 설정

EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'lakeflow_user';
 
 

Step 4 — 권한 설정

EXEC dbo.lakeflowFixPermissions
@User = 'lakeflow_user',
@Tables = 'ALL';
 

이 과정을 통해 SQL Server는 Lakeflow Connect로 데이터 변경을 스트리밍할 준비가 완료됩니다.


마무리

Databricks Lakeflow Connect로 SQL Server 데이터를 수집하려면 먼저 SQL Server에 Utility Objects를 설치하는 과정이 필요합니다.

 

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

1️⃣ Utility Objects 설치
2️⃣ Change Tracking 설정
3️⃣ CDC 설정
4️⃣ 권한 설정

 

특히 첫 단계인 Utility Script 설치는 이후 모든 설정의 기반이 되는 작업이므로 반드시 정확히 수행해야 합니다.