Skip to main content

왜 Lakeflow Connect가 필요한가요?

기업의 데이터는 운영 데이터베이스(MySQL, PostgreSQL, Oracle)와 SaaS 애플리케이션(Salesforce, SAP, HubSpot)에 흩어져 있습니다. 이 데이터를 분석용 레이크하우스로 가져오려면 전통적으로 다음과 같은 과정이 필요했습니다:
  1. 소스 시스템에 연결하는 코드 작성
  2. 초기 전체 데이터 복사(Full Load)
  3. 이후 변경된 데이터만 추적하는 CDC 로직 구현
  4. 스키마 변경 감지 및 대응
  5. 오류 처리, 재시도, 모니터링 구현
이 과정은 수주~수개월이 걸리며, 지속적인 유지보수도 필요합니다. Lakeflow Connect는 이 모든 과정을 자동화하여 코드 없이 몇 번의 클릭만으로 데이터 수집 파이프라인을 구성 할 수 있게 해줍니다.
💡 Lakeflow Connect 는 외부 데이터 소스(데이터베이스, SaaS 애플리케이션)에서 Databricks 레이크하우스로 데이터를 자동으로 수집하는 관리형 커넥터 서비스입니다. Fivetran, Airbyte 같은 데이터 통합(ELT) 도구와 유사한 역할을 하지만, Databricks 플랫폼에 네이티브로 통합되어 있습니다.
💡 CDC(Change Data Capture) 란 소스 데이터베이스에서 발생하는 INSERT, UPDATE, DELETE 등의 변경 사항을 실시간으로 캡처하여 대상 시스템에 반영하는 기술입니다. 전체 데이터를 매번 다시 복사하는 것보다 훨씬 효율적이며, 소스 시스템에 대한 부하도 최소화합니다.

지원 소스 시스템 상세

Lakeflow Connect는 지속적으로 새로운 커넥터를 추가하고 있습니다. 아래는 주요 지원 소스 목록입니다.

데이터베이스 커넥터

소스지원 상태CDC 방식비고
MySQLGABinlog 기반MySQL 5.7+, MariaDB 지원
PostgreSQLGALogical ReplicationPostgreSQL 10+
SQL ServerGACT(Change Tracking) / CDCSQL Server 2016+
OraclePublic PreviewLogMinerOracle 12c+
MongoDBPublic PreviewChange StreamsMongoDB 4.0+

SaaS 커넥터

소스지원 상태수집 방식비고
SalesforceGAAPI 폴링 (Bulk API)Sales Cloud, Service Cloud
ServiceNowGATable APIITSM 데이터 수집
Google AnalyticsPublic PreviewReporting APIGA4 지원
Workday HCMBetaRAAS API인사 데이터
HubSpotBetaREST API마케팅/영업 데이터
TikTok AdsBetaReporting API광고 성과 데이터
Google AdsBetaGoogle Ads API광고 캠페인 데이터
ZendeskBetaREST API고객 지원 데이터
NetSuiteBetaSuiteQLERP 데이터
Dynamics 365BetaOData APICRM/ERP 데이터

파일/기타 커넥터

소스지원 상태수집 방식비고
SFTPPublic Preview파일 폴링CSV, JSON 등 파일 수집
Google SheetsGASheets API스프레드시트 동기화
SharePointBetaGraph API문서/리스트 데이터
🆕 최신 동향: Databricks는 매 릴리즈마다 새로운 커넥터를 추가하고 있습니다. 최신 지원 소스 목록은 공식 문서에서 확인하실 수 있습니다.

아키텍처: 전체 동작 흐름

Lakeflow Connect의 전체 아키텍처는 다음과 같이 구성됩니다.
계층구성 요소역할
소스 시스템운영 DB (MySQL, PostgreSQL)원본 데이터 소스
SaaS 앱 (Salesforce, HubSpot)원본 데이터 소스
Lakeflow ConnectUnity Catalog Connection자격증명을 관리합니다
Ingestion Gateway연결 및 변환을 수행합니다
Ingestion Pipeline실행 엔진입니다
Databricks 레이크하우스Bronze Delta Table원시 데이터를 저장합니다
Unity Catalog메타데이터와 리니지를 관리합니다

주요 구성 요소

구성 요소역할설명
Unity Catalog Connection자격증명 관리소스 시스템 접속 정보를 안전하게 저장하고, Secret으로 비밀번호를 관리합니다
Ingestion Gateway연결 및 변환소스에서 데이터를 읽어 Delta 포맷으로 변환합니다. 네트워크 연결 및 인증을 처리합니다
Ingestion Pipeline실행 엔진실제 데이터 수집을 실행하는 서버리스 컴퓨트 엔진입니다. 스케줄링과 상태 관리를 담당합니다

초기 스냅샷 vs CDC 증분 동기화

Lakeflow Connect의 수집은 크게 두 단계로 이루어집니다.

1단계: 초기 스냅샷 (Initial Snapshot)

처음 파이프라인을 시작하면, 소스 테이블의 전체 데이터를 한 번 복사 합니다. Snapshot (전체 복사): 소스 테이블 (MySQL) →→→ 대상 테이블 (Delta)
idnamecity
1KimSeoul
2LeeBusan
3ParkDaegu

2단계: CDC 증분 수집 (Incremental CDC)

초기 스냅샷 이후에는 소스에서 변경된 데이터(INSERT, UPDATE, DELETE)만 실시간으로 반영 합니다.
소스에서 변경 발생:
  - INSERT: id=4, Park, Incheon (신규)
  - UPDATE: id=2, Lee, Seoul (도시 변경)
  - DELETE: id=3 (삭제)

CDC 스트림으로 변경분만 전달:

| op | id | name | city | ts |
|----|----|------|------|----|
| INSERT | 4 | Park | Incheon | ... |
| UPDATE | 2 | Lee | Seoul | ... |
| DELETE | 3 | | | ... |

대상 테이블에 반영:

| id | name | city | 상태 |
|----|------|------|------|
| 1 | Kim | Seoul | 변경 없음 |
| 2 | Lee | Seoul | UPDATE 반영 |
| 4 | Park | Incheon | INSERT 반영 |

> id=3은 DELETE 반영으로 제거됨
💡 CDC의 장점: 전체 데이터를 매번 다시 복사하는 Full Load 방식 대비, CDC는 변경분만 전달하므로 소스 시스템의 부하가 최소화 되고, 네트워크 트래픽이 크게 줄어들며, 수집 지연시간이 초 단위로 단축 됩니다.

스키마 진화(Schema Evolution) 처리

운영 데이터베이스에서는 애플리케이션 업데이트에 따라 스키마가 변경될 수 있습니다. Lakeflow Connect는 이를 자동으로 감지하고 처리합니다.
스키마 변경 유형Lakeflow Connect 동작대상 테이블 영향
컬럼 추가(ADD COLUMN)자동으로 대상 테이블에 컬럼 추가기존 행의 새 컬럼은 NULL
컬럼 타입 변경호환 가능한 변경만 자동 처리예: INT → BIGINT 자동 변환
컬럼 삭제(DROP COLUMN)대상 테이블에서 해당 컬럼 유지 (삭제하지 않음)이후 행에서 NULL로 채워짐
테이블 추가설정에 따라 자동 수집 시작새 Delta 테이블 생성
⚠️ 비호환 스키마 변경: 컬럼 타입을 호환되지 않는 형태로 변경하면(예: VARCHAR → INT) 파이프라인이 일시 중지될 수 있습니다. 이 경우 수동으로 대응이 필요합니다.

에러 처리 및 재시도 메커니즘

Lakeflow Connect는 다양한 장애 상황에 대해 자동으로 대응합니다.
장애 유형자동 대응수동 대응 필요
네트워크 일시 단절자동 재시도 (지수 백오프)불필요
소스 DB 일시 중단재연결 대기 후 자동 재개장시간 중단 시 확인 필요
자격증명 만료파이프라인 일시 중지자격증명 갱신 후 재시작
스키마 비호환 변경파이프라인 일시 중지스키마 매핑 수정 후 재시작
디스크/메모리 부족서버리스 자동 스케일링데이터 볼륨이 극단적인 경우 설정 조정
중복 데이터체크포인트 기반 중복 방지불필요 (Exactly-once 보장)

성능 특성 및 제한사항

성능 특성

항목수치/특성
초기 스냅샷 속도소스 DB 성능과 네트워크에 의존, 일반적으로 수백 GB/시간
CDC 지연시간일반적으로 수초~수분
동시 테이블 수파이프라인당 수백 개 테이블 지원
컴퓨트 타입서버리스 (자동 스케일링)
실행 모드연속(Continuous) 또는 트리거(Triggered)

주요 제한사항

제한사항설명대안
지원되지 않는 소스커넥터 목록에 없는 소스는 사용 불가Lakeflow Jobs + 커스텀 코드
복잡한 변환수집 시 복잡한 변환 로직 불가SDP 파이프라인에서 후처리
소스 DB 버전 요구사항각 DB별 최소 버전 요구소스 DB 업그레이드
네트워크 연결소스와 Databricks 간 네트워크 연결 필요Private Link / VPN 설정
커스텀 CDC 쿼리특정 행/컬럼 필터링 제한적SDP에서 Silver 변환 시 필터

실습 예제: MySQL CDC 파이프라인 설정

사전 준비

  1. 소스 MySQL 설정: Binlog가 활성화되어 있어야 합니다
  2. 네트워크: Databricks에서 MySQL에 접속 가능해야 합니다
  3. 계정: SELECT, REPLICATION SLAVE, REPLICATION CLIENT 권한 필요

Step 1: Unity Catalog Connection 생성

-- MySQL Connection 생성
CREATE CONNECTION mysql_erp
TYPE MYSQL
OPTIONS (
    host = 'mysql-prod.example.com',
    port = '3306',
    user = 'databricks_cdc',
    password = secret('my-scope', 'mysql-erp-password')
);

-- 연결 테스트 (권한 확인)
-- Catalog Explorer > External Data > Connections에서 "Test Connection" 클릭

Step 2: Ingestion Pipeline 생성 (UI)

  1. Pipelines 메뉴 → Create Pipeline 클릭
  2. Ingestion (Lakeflow Connect) 선택
  3. 소스 유형: MySQL 선택
  4. Connection: mysql_erp 선택
  5. 수집할 스키마/테이블 선택
  6. 대상 카탈로그/스키마 지정 (예: analytics.bronze)
  7. 실행 모드: Continuous(실시간) 또는 Triggered(주기적)
  8. Create 클릭

Step 3: 수집 결과 확인

-- 수집된 데이터 확인
SELECT * FROM analytics.bronze.customers LIMIT 10;

-- 수집 메타데이터 확인 (CDC 타임스탬프)
SELECT _ingested_at, _change_type, *
FROM analytics.bronze.orders
ORDER BY _ingested_at DESC
LIMIT 20;

-- 소스와 대상 건수 비교
SELECT 'source' AS origin, COUNT(*) AS cnt
FROM mysql_connection.ecommerce.customers
UNION ALL
SELECT 'target', COUNT(*)
FROM analytics.bronze.customers;

현업 사례: Fivetran에서 Lakeflow Connect로 전환한 기업의 비용 비교

🔥 실전 경험담 한 중견 이커머스 기업에서 Fivetran으로 MySQL(주문, 고객, 상품 등 15개 테이블)과 Salesforce(10개 오브젝트)를 수집하고 있었습니다. Fivetran의 월 비용은 행(Row) 기반 과금으로 월 약 $3,500 이었습니다. Lakeflow Connect GA 이후, MySQL 커넥터를 Lakeflow Connect로 전환한 결과는 다음과 같았습니다:
항목FivetranLakeflow Connect절감
MySQL (15 테이블)$2,100/월$800/월 (DBU)62% 절감
Salesforce (10 오브젝트)$1,400/월$1,400/월 (Fivetran 유지)0%
합계$3,500/월$2,200/월37% 절감
Salesforce는 Lakeflow Connect로 아직 전환하지 않았습니다 (당시 GA가 아니었기 때문). 핵심 절감 요인은 Fivetran의 행 기반 과금 vs Lakeflow Connect의 DBU 과금 차이 였습니다. CDC로 변경분만 수집하면 실제 처리량이 적어 DBU 비용이 낮게 유지됩니다.
💡 현업 팁: 비용 절감 외에도, Lakeflow Connect 전환의 숨은 장점은 관리 포인트 감소 입니다. Fivetran은 별도 SaaS 콘솔에서 관리해야 하지만, Lakeflow Connect는 Databricks 내에서 모든 것을 관리합니다. Unity Catalog 리니지도 자동으로 추적되어 “이 데이터가 어디에서 온 것인지” 한눈에 파악할 수 있습니다.

CDC 지연시간의 현실

공식 문서에서는 “수초~수분”이라고 안내하지만, 현업에서 체감하는 지연시간은 여러 요인에 따라 달라집니다.
영향 요인최적 조건현실적 조건최악의 경우
소스 DB 위치같은 리전다른 리전다른 대륙
네트워크Private LinkVPN퍼블릭 인터넷
트랜잭션 빈도초당 10건초당 1,000건초당 10,000건+
행 크기1KB 미만1~10KB100KB+ (LOB 포함)
체감 지연5~15초30초~2분5~10분
🔥 이것을 안 하면: “CDC니까 실시간이겠지”라고 기대하면 안 됩니다. 한 고객사에서 “주문 후 1초 이내에 대시보드에 반영되어야 한다”는 요구사항을 가지고 Lakeflow Connect를 도입했다가, 실제 지연이 30초~1분이라는 것을 알고 실망한 적이 있습니다. CDC의 지연시간은 “분 단위 준실시간”이지, “초 단위 실시간”이 아닙니다. 초 단위 실시간이 필요하면 Kafka + Structured Streaming 조합을 고려해야 합니다.

지연시간을 최소화하는 팁

  1. 소스 DB와 같은 리전에 Databricks 배포: 네트워크 지연 최소화
  2. Private Link 사용: 퍼블릭 인터넷 대비 지연 50% 이상 감소
  3. 대형 LOB 컬럼 제외: TEXT, BLOB 같은 대용량 컬럼은 별도 수집
  4. Continuous 모드 사용: Triggered 모드는 폴링 간격만큼 추가 지연 발생

커넥터가 없는 소스 대응 전략

Lakeflow Connect의 커넥터 수는 아직 Fivetran(300+)이나 Airbyte(350+)에 비해 적습니다. 커넥터가 없는 소스를 처리해야 할 때의 현실적인 대응 전략입니다.
대안적합한 경우구현 난이도비용
Fivetran/Airbyte 병행커넥터가 없는 소스가 5개 이상낮음높음 (별도 SaaS 비용)
Lakeflow Jobs + JDBCRDBMS 소스, 배치 OK중간낮음 (DBU만)
Lakeflow Jobs + REST APISaaS 소스, API 제공중간~높음낮음
Auto Loader + 파일소스가 파일을 제공(SFTP, S3)낮음매우 낮음
Kafka + Structured Streaming초 단위 실시간 필요높음중간

커스텀 JDBC 수집 예시

# Lakeflow Jobs에서 JDBC로 직접 수집하는 패턴
# Lakeflow Connect에 없는 DB2 같은 소스에 활용

def incremental_jdbc_load(spark, source_table, target_table, watermark_col):
    """증분 수집 패턴: 마지막 수집 시점 이후 변경분만 가져오기"""

    # 마지막 수집 시점 확인
    last_watermark = spark.sql(f"""
        SELECT COALESCE(MAX({watermark_col}), '1970-01-01')
        FROM {target_table}
    """).collect()[0][0]

    # 변경분만 수집
    jdbc_url = dbutils.secrets.get("prod-secrets", "db2-jdbc-url")
    new_data = (spark.read.format("jdbc")
        .option("url", jdbc_url)
        .option("user", dbutils.secrets.get("prod-secrets", "db2-user"))
        .option("password", dbutils.secrets.get("prod-secrets", "db2-pass"))
        .option("query", f"""
            SELECT * FROM {source_table}
            WHERE {watermark_col} > '{last_watermark}'
        """)
        .load())

    # Delta 테이블에 MERGE
    new_data.createOrReplaceTempView("new_data")
    spark.sql(f"""
        MERGE INTO {target_table} AS t
        USING new_data AS s
        ON t.id = s.id
        WHEN MATCHED THEN UPDATE SET *
        WHEN NOT MATCHED THEN INSERT *
    """)
💡 현업 팁: 커넥터가 없는 소스가 1~2개라면 커스텀 JDBC로 충분합니다. 하지만 5개 이상이면 Fivetran을 병행하는 것이 총 비용(개발 인건비 포함)에서 유리 합니다. 커스텀 코드는 유지보수 비용이 숨어 있기 때문입니다 (스키마 변경 대응, 에러 처리, 모니터링 등).

다른 수집 도구와의 비교

Lakeflow Connect와 유사한 역할을 하는 외부 도구들과의 비교입니다.
비교 항목Lakeflow ConnectFivetranAirbyte커스텀 코드 (JDBC)
설정 난이도매우 쉬움 (No-code)쉬움중간어려움
Databricks 통합네이티브커넥터 필요커넥터 필요직접 구현
Unity Catalog 연동자동설정 필요설정 필요수동
데이터 리니지자동 추적제한적제한적없음
CDC 지원내장내장내장직접 구현
스키마 진화자동자동자동직접 구현
비용 모델DBU 과금행 기반 과금행 기반/오픈소스컴퓨트 비용만
커넥터 수증가 중 (20+)300+350+무제한 (직접 구현)
서버리스기본값SaaS자체 호스팅/Cloud클러스터 필요
💡 선택 기준: Lakeflow Connect가 지원하는 소스라면 네이티브 통합의 이점(Unity Catalog 자동 연동, 리니지, 서버리스)이 크므로 Lakeflow Connect를 우선 사용합니다. 지원되지 않는 소스가 많다면 Fivetran이나 Airbyte를 보조적으로 활용할 수 있습니다.

정리

  • Lakeflow Connect 는 외부 DB/SaaS에서 코드 없이 관리형으로 데이터를 수집하는 서비스입니다
  • 초기 스냅샷 + CDC 증분 수집 을 자동으로 처리하여 소스 시스템 부하를 최소화합니다
  • 스키마 진화를 자동으로 감지 하고 대상 테이블에 반영합니다
  • Unity Catalog와 네이티브로 통합되어 자격증명 관리, 메타데이터, 리니지 가 자동화됩니다
  • 지원 커넥터가 없는 소스는 Lakeflow Jobs + 커스텀 코드 로 대응합니다

참고 링크