Skip to main content
이 문서는 데이터 엔지니어링 섹션의 일부입니다.

시나리오

운영 중인 MySQL 데이터베이스의 고객(customers) 테이블주문(orders) 테이블 을 Databricks 레이크하우스로 실시간 CDC 수집 합니다. 수집된 Bronze 데이터를 SDP 파이프라인으로 변환하여 Silver 계층까지 구성하는 전체 흐름을 실습합니다.

사전 준비

1. 소스 MySQL 데이터베이스 설정

Lakeflow Connect의 MySQL CDC는 Binlog(Binary Log) 를 사용합니다. 소스 MySQL에서 다음 설정이 필요합니다.
⚠️ AWS RDS 사용 시: RDS 파라미터 그룹에서 binlog_format=ROW를 설정해야 합니다. Aurora MySQL은 기본적으로 Binlog가 비활성화되어 있으므로 binlog_format 파라미터를 활성화해야 합니다.
Databricks 전용 계정 생성:

2. 네트워크 연결 설정

Databricks에서 소스 MySQL에 접속할 수 있어야 합니다.
💡 프로덕션 환경에서는 PrivateLink 또는 VPC Peering 을 권장합니다. 퍼블릭 인터넷 접속은 개발/테스트 환경에서만 사용하시기 바랍니다.

3. Unity Catalog 설정

대상 카탈로그와 스키마가 미리 생성되어 있어야 합니다.

Step 1: Connection 생성

Unity Catalog Connection은 소스 시스템의 접속 정보를 안전하게 관리하는 객체입니다.

방법 A: SQL로 Connection 생성

💡 Secret 사용: 비밀번호를 평문으로 입력하는 대신 secret() 함수를 사용하면 Databricks Secret Scope에 저장된 값을 안전하게 참조할 수 있습니다. 프로덕션 환경에서는 반드시 Secret을 사용하시기 바랍니다.

방법 B: UI로 Connection 생성

  1. Catalog Explorer 열기
  2. 좌측 메뉴에서 External DataConnections 클릭
  3. Create Connection 클릭
  4. 다음 정보 입력:
  1. Test Connection 클릭하여 연결 확인
  2. Create 클릭

연결 테스트 및 확인


Step 2: Ingestion Pipeline 생성 및 설정

방법 A: UI로 파이프라인 생성 (권장)

  1. 좌측 메뉴에서 Pipelines 클릭
  2. Create PipelineETL pipeline 선택
  3. 파이프라인 설정:
  1. 테이블 선택:
    • Source schema: ecommerce
    • Tables: customers, orders 선택 (또는 전체 스키마 선택)
  2. 대상 설정:
    • Target catalog: analytics
    • Target schema: bronze
  3. 실행 모드 설정:
    • Mode: Continuous (실시간 CDC) 또는 Triggered (주기적)
  4. Create 클릭

방법 B: Python API로 파이프라인 생성


Step 3: 파이프라인 실행 및 모니터링

파이프라인 시작

  1. Pipeline UI에서 Start 버튼 클릭
  2. 초기 스냅샷이 시작됩니다 (소스 테이블 크기에 따라 시간 소요)
  3. 스냅샷 완료 후 자동으로 CDC 모드로 전환됩니다

모니터링 대시보드 확인

Pipeline UI에서 다음 메트릭을 실시간으로 확인할 수 있습니다:

SQL로 수집 결과 확인


Step 4: CDC 변경사항 확인

소스 MySQL에서 데이터를 변경하고, Databricks에서 변경 사항이 반영되는지 확인합니다.

소스에서 변경 실행

Databricks에서 변경 확인

💡 CDC 이력 보존: Bronze 테이블에는 모든 변경 이력이 보존됩니다. INSERT, UPDATE, DELETE 모두 별도의 행으로 기록되므로, 특정 시점의 데이터 상태를 재현할 수 있습니다.

Step 5: 스키마 변경 시나리오

운영 DB에서 스키마가 변경되었을 때 Lakeflow Connect가 어떻게 대응하는지 확인합니다.

시나리오: 소스에서 컬럼 추가

Databricks에서 스키마 변경 확인

💡 스키마 진화 자동 처리: Lakeflow Connect는 소스에서 컬럼이 추가되면 대상 Delta 테이블에도 자동으로 컬럼을 추가합니다. 기존 행의 새 컬럼 값은 NULL로 채워집니다.

Step 6: SDP 파이프라인으로 Silver 변환 연결

수집된 Bronze 데이터를 SDP 파이프라인으로 정제하여 Silver 계층 을 구축합니다.
💡 SCD Type 1 vs Type 2: SCD Type 1은 변경 시 기존 데이터를 덮어씁니다(항상 최신 상태만 유지). SCD Type 2는 변경 이력을 모두 보존합니다. 자세한 내용은 SDP: CDC와 SCD 문서를 참고하시기 바랍니다.

트러블슈팅 가이드

자주 발생하는 오류와 해결 방법

파이프라인 재시작 방법

성능 최적화 팁


클린업

실습이 끝나면 생성한 리소스를 정리합니다.
⚠️ 주의: CASCADE 옵션은 스키마/카탈로그 내의 모든 테이블을 삭제합니다. 프로덕션 환경에서는 절대 사용하지 마시기 바랍니다. 실습용 리소스만 삭제하시기 바랍니다.

정리

이 실습에서 다음을 수행하였습니다:
  1. MySQL Connection 생성: Unity Catalog에 소스 접속 정보를 안전하게 등록
  2. Ingestion Pipeline 생성: 코드 없이 UI에서 CDC 수집 파이프라인 구성
  3. 실시간 CDC 확인: 소스 변경사항이 수초 내에 Delta 테이블에 반영됨을 검증
  4. 스키마 진화 확인: 소스에서 컬럼 추가 시 대상 테이블에 자동 반영됨을 검증
  5. SDP 연동: Bronze 데이터를 Silver로 변환하는 후처리 파이프라인 구성

참고 링크