Databricks Zerobus CDC, Kafka를 경로에서 제거하고 캡처는 데이터베이스 팀에 유지
Databricks는 캡처를 데이터베이스 팀의 통제하에 두면서 Kafka를 우회하는 데이터베이스 복제 경로를 공개했다. Databricks Zerobus CDC는 관리형 수집 서비스인 Zerobus Ingest와 오픈소스 변경 데이터 캡처 플랫폼 Debezium을 결합한다. 변경 데이터 캡처, 즉 CDC는 다른 곳에서 처리할 수 있도록 데이터베이스 변경 사항을 기록한다. 분석 환경으로 향하는 경로가 짧아진다는 점이 매력적이지만, 신뢰성에 대한 책임은 여전히 신중한 엔지니어링을 요구한다.
이 아키텍처는 특정 조직 문제를 다룬다. 데이터베이스 팀은 외부 분석 서비스의 인바운드 연결은 거부하면서 아웃바운드 트래픽은 허용할 수 있다. 이벤트 스트리밍 플랫폼인 Apache Kafka는 이미 소스 제어 캡처를 사용하는 아키텍처를 지원한다. 여기서의 변화는 Databricks가 최종 목적지일 때 그 중간 플랫폼을 제거하는 데 있다.
이 구분은 또 하나의 수집 옵션을 검토하는 데이터베이스 관리자, 플랫폼 엔지니어, 분석 도입 담당자에게 중요하다. 더 짧은 전송 경로는 인프라 운영 부담을 줄일 수 있다. 그러나 그것만으로 올바른 복제본이 자동으로 만들어지거나, 복구 정책이 수립되거나, 실패한 업데이트를 어느 팀이 처리할지 결정되지는 않는다. 이러한 결정이 단순화가 프로덕션 환경에서도 유지될지를 좌우한다.
Databricks Zerobus CDC, 소스 팀에 직접 목적지 제공
Databricks는 2026년 11월 5일자 엔지니어링 게시물에서 이 아키텍처를 설명했다. 푸시 기반 CDC 아키텍처는 Debezium Server를 Zerobus Ingest를 통해 Databricks의 거버넌스 계층인 Unity Catalog에 직접 연결한다. 목적지는 오픈 Delta Lake 스토리지 형식을 사용하는 테이블인 Delta 테이블에 이벤트를 저장한다.
Databricks에 따르면, 자사 엔지니어는 캡처된 레코드를 목적지로 전달하는 구성 요소인 타입 지정 싱크를 구축했다. NVIDIA는 변경 이벤트와 관련 전달 메타데이터를 보존하는 엔벌로프 모드를 기여했다. Databricks는 이 싱크가 Debezium Server 3.7과 함께 제공된다고 밝혔다.
구체적인 변화는 소스 팀 환경 안에 캡처를 유지하는 지원되는 직접 전달 경로다.
이러한 분리는 조직에 책임을 배정하는 다른 방식을 제공한다. 데이터베이스 팀은 데이터베이스 가까이에서 캡처를 운영한다. 분석 플랫폼은 해당 팀이 전송만을 위해 중간 이벤트 플랫폼을 도입하지 않아도 변경 사항을 수신한다.
비공개로 호스팅되는 주문 데이터베이스를 사용하는 가상의 엔터프라이즈 배포를 생각해 볼 수 있다. 보안 검토자는 로컬 프로세스가 승인된 데이터를 외부로 전송하는 것은 허용한다. 그러나 외부 서비스가 데이터베이스 연결을 시작하는 것은 허용하지 않는다. 검토자가 목적지, ID 및 허용 데이터에 동의한다면 소스에서 운영되는 프로세스는 이러한 접근 방향에 부합한다.
이 사례는 문서화된 고객 도입 사례가 아니라 아키텍처 적합성을 설명한다. 이번 발표는 통합과 의도된 사용 방식을 확립한다. 모든 제한된 엔터프라이즈 네트워크가 이 연결을 승인할 수 있다거나, 모든 데이터베이스 워크로드에 이 설계가 필요하다는 점까지 입증하지는 않는다.
도입 검토자에게 중요한 구분은 통합이 제공된다는 것과 마이그레이션이 정당화된다는 것 사이에 있다. 이미 정상적으로 작동하는 인프라를 가진 팀에는 경로 변경이 자체 운영 모델을 개선한다는 근거가 필요하다. 발표만으로는 그 질문에 답할 수 없다.
다만 새 파이프라인을 설계하는 팀에는 출발점의 결정이 달라진다. 목적지에 중간 전송 서비스가 실제로 필요한지를 평가할 수 있다. 특정 구성 요소가 필수처럼 느껴지게 만드는 배포 표준이 자리 잡기 전에, 이 질문은 아키텍처 검토 초기 단계에서 다뤄져야 한다.
즉각적인 영향은 엔터프라이즈 스트리밍 플랫폼을 대체하는 것보다 더 제한적이다. Databricks는 특정 작업, 즉 데이터베이스 변경 사항을 자사의 거버넌스 분석 환경으로 옮기는 경로를 설명했다. 실제 요구 사항이 그 작업과 얼마나 긴밀히 맞는지에 따라 유용성이 달라진다.
따라서 합리적인 평가는 소유권과 목적지 요구 사항에서 시작한다. 어느 팀이 데이터베이스 접근을 통제하는가? 변경 사항은 어디로 가야 하는가? 분석 처리 이전에 독립적으로 접근해야 하는 주체는 누구인가? 이 답변에 따라 직접 싱크가 불필요한 작업을 제거하는지, 아니면 누군가 여전히 필요로 하는 기능을 없애는지가 결정된다.
단일 목적지를 위해 구축된 파이프라인에 가해지는 압박
가장 큰 도전은 Databricks로 변경 사항을 전달하는 일만을 목적으로 하는 중간 인프라를 겨냥한다.
이러한 틀은 비교를 정직하게 유지한다. Kafka는 레코드를 분석 테이블로 전달하는 것 이상의 기능을 제공한다. Kafka의 이벤트 스트리밍 모델에는 내구성 있는 이벤트 저장, 구독, 처리가 포함된다. 여러 애플리케이션이 같은 스트림을 소비하거나 독립적인 처리 일정을 필요로 할 때 이러한 기능은 중요하다.
직접 목적지는 이 관계를 바꾼다. 분석 플랫폼이 즉각적인 수신 시스템이 된다. 요구 사항이 거기서 끝나는 파이프라인에는 적합할 수 있다. 다른 팀이 수집 계층이 자신의 애플리케이션에도 서비스를 제공하길 기대한다면 더 면밀한 검토가 필요하다.
보고, 검색 인덱싱, 애플리케이션 알림에 사용되는 데이터베이스 피드를 상상해 보자. 아키텍처 결정은 모든 소비자를 고려해야 한다. 보고 경로만 계산하면 시스템의 책임을 축소해 보게 되며, 직접 경로가 실제보다 더 포괄적인 것처럼 보이게 된다.
다른 조직을 생각해 보자. 이 조직의 데이터베이스 변경 사항은 분석 복제본에만 공급되며, 공유 이벤트 배포 계층을 필요로 하는 사람도 없다. 이런 상황에서는 중간 플랫폼을 유지하려면 별도의 정당화가 필요하다. 기존의 익숙함이 그 정당화를 뒷받침할 수는 있지만, 익숙함만으로 필요성이 확립되지는 않는다.
이는 플랫폼 팀이 각 구성 요소의 목적을 설명해야 한다는 압박을 만든다. 유용한 질문은 구성 요소가 사라졌을 때 어떤 운영 역량이 함께 사라지는가이다. 명확한 답변은 해당 구성 요소를 유지할 근거가 된다. 불명확한 답변은 단순화 후보를 드러낸다.
이번 발표는 구성 요소 목록을 중심으로 이뤄지는 조달 논의에도 압박을 가한다. 관리형 수집 서비스와 이벤트 플랫폼은 동일한 작업을 수행하지 않는다. 비교하려면 공통 워크로드, 공통 복구 목표, 남은 소프트웨어를 누가 운영하는지에 대한 명시적 설명이 필요하다.
여기에는 보편적인 비용 절감이나 더 나은 종단 간 성능을 입증하는 검증된 워크로드 비교가 없다. 도입자는 더 짧은 다이어그램을 재무적 결론으로 바꾸는 일을 경계해야 한다. 인력, 기존 서비스, 인시던트 처리, 다운스트림 처리가 모두 결과에 영향을 미친다.
마이그레이션의 긴급성에도 같은 절제가 적용된다. 여러 소비자에게 서비스를 제공하는 안정적인 Kafka 배포는 단일 목적지를 위한 제안된 클러스터와는 다른 결정 사안이다. 직접 경로의 논거가 가장 분명한 경우는 중간 전송이 그렇지 않으면 새로운 운영 의무가 되는 상황이다.
엔지니어링 리더에게 이는 책임 경계를 재검토할 기회다. 데이터베이스 관리자는 허용 가능한 캡처 동작을 정의해야 한다. 플랫폼 팀은 목적지 운영을 정의해야 한다. 분석 팀은 허용 가능한 최신성과 정확성을 정의해야 한다. 이러한 책임이 명시적으로 유지될 때 더 작은 전송 계층이 유용해진다.
그 결과의 경쟁적 질문은 실용적이다. 조직이 실제로 필요한 데이터 제품을 제공하려면 얼마나 많은 인프라를 운영해야 하는가? Databricks는 목적지 중심 워크로드에 대해 그 답을 강화했다. 더 광범위한 스트리밍 요구 사항에는 여전히 더 폭넓은 비교가 필요하다.
내구성 있는 전달과 올바른 복제는 여전히 별개의 작업
Databricks Zerobus CDC에서 가장 중요한 세부 사항은 승인 경계다. 승인은 목적지가 데이터에 대한 책임을 수락했음을 생산자에게 알린다. 소스 오프셋은 캡처 진행 상황을 기록하여 생산자가 알려진 위치에서 재개할 수 있게 한다.
Debezium Server 싱크는 재시도로 인해 이벤트가 한 번 이상 전달될 수 있음을 의미하는 최소 한 번 전달을 문서화한다. 이 싱크는 대상 테이블 그룹 내에서 레코드를 검증하고, 소스 진행 상황을 완료하기 전에 승인을 기다린다. 이후의 실패는 이전에 승인된 그룹이 재처리되게 할 수 있다.
엔벌로프 모드는 반복 전달을 인식하는 데 사용하는 이벤트 식별자인 idempotency_key를 제공한다. 다운스트림 처리는 이 ID를 사용해 중복을 제거해야 한다. 반복된 이벤트를 식별한다고 해서 서로 다른 이벤트 중 어느 것이 우선해야 하는지가 정해지는 것은 아니다.
내구성 있는 전달은 인계를 보호하지만, 올바른 비즈니스 상태는 여전히 다운스트림 로직이 확립해야 한다.
가상의 주문 업데이트는 이것이 중요한 이유를 보여 준다. 고객이 주문 배송 주소를 변경했다고 가정해 보자. 목적지는 업데이트를 수락하지만, 캡처 진행 상황이 완전히 커밋되기 전에 캡처가 재시작된다. 중복 처리를 거친 뒤 이 업데이트를 재처리해도 분석 표현은 변경되지 않아야 한다.
수신한 모든 레코드를 추가하면 반복 전달도 보존된다. 이는 원시 이벤트 컬렉션에서는 유용한 증거가 될 수 있다. 그러나 보고가 모든 도착을 별개의 비즈니스 작업으로 취급한다면 문제가 된다. 전송 성공과 분석적 해석은 서로 다른 질문에 답한다.
순서는 또 다른 구분을 만든다. 주문 상태가 대기에서 승인으로, 이후 승인에서 취소로 변경된다고 가정해 보자. 승인 이벤트를 반복한다고 해서 이전 상태가 복원되어서는 안 된다. 파이프라인에는 소스 순서와 도착 시간을 구분하는 규칙이 필요하다.
이 때문에 조달 및 아키텍처 검토에서 전달 메타데이터에 주의를 기울일 가치가 있다. 팀은 어떤 정보가 전송을 거쳐 보존되며 다운스트림 엔진이 무엇을 요구하는지 알아야 한다. 유용한 증거를 보존하는 통합도 이를 올바르게 소비하는 처리 계약이 필요하다.
실패 경계는 인시던트 조사 방식도 형성한다. 운영자는 전달을 기다리는 이벤트와 처리를 기다리는 이벤트를 구분할 수 있어야 한다. 반복 전달을 반복된 비즈니스 활동과 혼동하지 않고 식별해야 한다. 그렇지 않으면 사람들이 명확한 증거를 가장 필요로 할 때 복구가 불확실성을 만든다.
이는 설계를 거부할 이유라기보다 실질적인 수용 기준이다. 직접 경로는 책임이 이해될 때 신뢰할 수 있다. 팀이 수집 보장을 최종 분석 테이블에 대한 보장으로 해석할 때 문제가 발생한다.
따라서 적절한 테스트는 레코드가 도착하는지 확인하는 것보다 더 엄격하다. 성공적으로 전달한 뒤 캡처를 중단하고 재시작한 다음, 그 결과 비즈니스 상태를 점검해야 한다. 삽입뿐 아니라 업데이트와 삭제도 시험해야 한다. 파이프라인은 단순한 연결성이 아니라 복구가 의미를 보존할 때 신뢰를 얻는다.
이 평가는 보고서를 책임지는 사람들을 포함해야 한다. 엔지니어는 이벤트 처리를 검증하고, 분석가는 그 결과 해석을 검증할 수 있다. 이러한 관점 간 합의는 어느 한 팀만으로 제공할 수 있는 것보다 더 강력한 수용 경계를 확립한다.
도착한 변경 스트림에도 분석 계약은 필요하다
내구성 있는 저장과 쿼리 가능성 사이에는 별도의 경계가 있다. Databricks의 내구성 승인 문서는 이를 명시적으로 구분한다. 승인은 레코드가 Delta 테이블에서 쿼리 가능해지기 전에 내구성이 확보되었음을 확인한다.
그 구분은 흔한 측정 오류를 막아줍니다. 수집이 성공했다고 해서 분석가가 이미 그에 상응하는 비즈니스 변화를 확인할 수 있다는 뜻은 아닙니다. 최신성 약속은 원본 트랜잭션에서 사람들이 실제로 사용하는 테이블이나 보고서까지의 경로를 포괄해야 합니다.
유용한 서비스 목표는 올바른 정보가 의도된 소비자에게 언제 제공되는지를 측정합니다.
운영 대시보드의 경우 그 종점은 현재 주문 상태일 수 있습니다. 감사 워크플로에서는 보존된 변경 이력일 수 있습니다. 이러한 제품은 캡처된 이벤트를 공유할 수 있지만, 서로 다른 다운스트림 동작과 서로 다른 승인 검증이 필요합니다.
Databricks는 이러한 표현을 구축하기 위한 AUTO CDC processing을 문서화하고 있습니다. AUTO CDC는 정의된 키와 순서를 사용해 변경 레코드를 적용하는 파이프라인 인터페이스입니다. Type 1 처리는 현재 상태를 유지하며, Type 2 처리는 과거 버전을 유지합니다.
이러한 비즈니스상의 차이는 구현 전에 주의 깊게 살펴볼 필요가 있습니다. 현재 상태 테이블은 레코드가 지금 어떤 모습인지를 보여 줍니다. 이력 테이블은 이전 상태에 대한 질문을 지원합니다. 둘 중 무엇을 선택하느냐에 따라 사고나 이의가 제기된 보고서 이후 사용자가 조사할 수 있는 범위가 달라집니다.
취소된 주문과 관련된 예시 지원 워크플로를 생각해 보겠습니다. 현재 상태를 조회하는 상담원에게는 취소가 정확하게 반영되어야 합니다. 사례를 검토하는 조사자는 그에 앞선 승인 과정도 이해해야 할 수 있습니다. 데이터 제품은 어떤 질문에 답하겠다고 약속하는지 명확히 해야 합니다.
원시 이벤트 수집만으로는 그 약속이 불분명합니다. 사용자는 반복 수신을 반복된 작업으로 해석하거나, 저장된 모든 버전이 각각 별개의 비즈니스 전환을 나타낸다고 가정할 수 있습니다. 문서화된 분석 계약은 캡처된 이벤트와 게시된 레코드의 관계를 설명해야 합니다.
이 계약은 팀에 유용한 조정 검증 기준도 제공합니다. 팀은 원본 상태와 게시된 현재 상태 표현을 비교할 수 있습니다. 또한 보존된 이력이 의도한 비즈니스 해석과 일치하는지 별도로 검토할 수 있습니다. 각 비교는 서로 다른 책임을 검증합니다.
Databricks 커뮤니티의 PostgreSQL CDC walkthrough는 구체적인 기술 사례를 제공합니다. 이 가이드는 PostgreSQL 변경 사항을 수집 과정을 거쳐 현재 상태 테이블까지 추적합니다. 삽입, 업데이트, 삭제를 확인하여 이러한 작업을 가시적인 승인 사례로 만듭니다.
이 사례는 통합을 이해하는 데 유용합니다. 모든 프로덕션 데이터셋, 네트워크 정책 또는 복구 시나리오에서의 성능을 입증하지는 않습니다. 팀은 이 가이드를 재현 가능한 출발점으로 활용하고, 자체 장애 조건에 맞춰 검증을 확장해야 합니다.
조직적 의미는 명확합니다. 중간 전송 단계를 제거한다고 해서 데이터 제품 책임자가 필요 없어지는 것은 아닙니다. 여전히 누군가는 정확성을 정의하고, 최신성 기대치를 승인하며, 이력 해석이 비즈니스 요구를 충족하는지 결정해야 합니다.



