이 문서는 데이터 엔지니어링 섹션의 일부입니다.
시나리오
운영 중인 MySQL 데이터베이스의 고객(customers) 테이블 과 주문(orders) 테이블 을 Databricks 레이크하우스로 실시간 CDC 수집 합니다. 수집된 Bronze 데이터를 SDP 파이프라인으로 변환하여 Silver 계층까지 구성하는 전체 흐름을 실습합니다.사전 준비
1. 소스 MySQL 데이터베이스 설정
Lakeflow Connect의 MySQL CDC는 Binlog(Binary Log) 를 사용합니다. 소스 MySQL에서 다음 설정이 필요합니다.⚠️ AWS RDS 사용 시: RDS 파라미터 그룹에서Databricks 전용 계정 생성:binlog_format=ROW를 설정해야 합니다. Aurora MySQL은 기본적으로 Binlog가 비활성화되어 있으므로binlog_format파라미터를 활성화해야 합니다.
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 생성
- Catalog Explorer 열기
- 좌측 메뉴에서 External Data→ Connections 클릭
- Create Connection 클릭
- 다음 정보 입력:
- Test Connection 클릭하여 연결 확인
- Create 클릭
연결 테스트 및 확인
Step 2: Ingestion Pipeline 생성 및 설정
방법 A: UI로 파이프라인 생성 (권장)
- 좌측 메뉴에서 Pipelines 클릭
- Create Pipeline→ ETL pipeline 선택
- 파이프라인 설정:
-
테이블 선택:
- Source schema:
ecommerce - Tables:
customers,orders선택 (또는 전체 스키마 선택)
- Source schema:
-
대상 설정:
- Target catalog:
analytics - Target schema:
bronze
- Target catalog:
-
실행 모드 설정:
- Mode:
Continuous(실시간 CDC) 또는Triggered(주기적)
- Mode:
- Create 클릭
방법 B: Python API로 파이프라인 생성
Step 3: 파이프라인 실행 및 모니터링
파이프라인 시작
- Pipeline UI에서 Start 버튼 클릭
- 초기 스냅샷이 시작됩니다 (소스 테이블 크기에 따라 시간 소요)
- 스냅샷 완료 후 자동으로 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 옵션은 스키마/카탈로그 내의 모든 테이블을 삭제합니다. 프로덕션 환경에서는 절대 사용하지 마시기 바랍니다. 실습용 리소스만 삭제하시기 바랍니다.
정리
이 실습에서 다음을 수행하였습니다:- MySQL Connection 생성: Unity Catalog에 소스 접속 정보를 안전하게 등록
- Ingestion Pipeline 생성: 코드 없이 UI에서 CDC 수집 파이프라인 구성
- 실시간 CDC 확인: 소스 변경사항이 수초 내에 Delta 테이블에 반영됨을 검증
- 스키마 진화 확인: 소스에서 컬럼 추가 시 대상 테이블에 자동 반영됨을 검증
- SDP 연동: Bronze 데이터를 Silver로 변환하는 후처리 파이프라인 구성