오늘날의 비즈니스, 특히 디지털 혁신을 우선시하는 비즈니스에는 실시간 데이터가 절실히 필요합니다. 기존의 주간 및 월간 일괄 처리는 더 이상 수요를 충족할 수 없습니다. 그러나 여러 소스에서 실시간 데이터를 얻고 이를 사용하여 프로세스를 자동화하고 의사결정을 동적으로 최적화하는 것은 쉽지 않습니다.
최근 우리는 고객의 레거시 시스템을 재설계하고 모놀리식 아키텍처를 마이크로서비스로 분할할 때 문제에 직면했습니다. 우리는 데이터베이스를 변경하고 모듈별로 시스템을 현대화하기 시작했습니다. 이 단계에서는 서로 다른 모듈에 동일한 데이터가 필요할 수 있으므로 두 데이터베이스가 동기화 상태를 유지하는지 확인해야 합니다. 즉, 이전 시스템에는 새 데이터베이스의 새 시스템에서 생성된 데이터가 필요하고 그 반대의 경우도 마찬가지입니다.
우리는 변경 데이터 캡처(CDC) 기술을 조사하여 그것이 우리의 요구 사항에 맞는지 판단했습니다. 이 기사에서는 CDC의 정의, 테스트한 도구, 작동 방식 및 장점에 대해 자세히 설명합니다. 동시에 다른 기술자가 특정 상황에서 적절한 CDC 도구를 선택하는 데 도움이 되는 몇 가지 사례와 제안을 공유했습니다.
데이터 캡처는 소스 시스템의 변경 사항을 감지하고 캡처한 다음 이러한 변경 사항을 거의 실시간으로 대상 시스템에 전달하는 프로세스를 의미합니다. 이러한 변경 사항에는 삽입, 삭제, 업데이트 작업 및 데이터베이스 구조에 대한 DDL 변경 사항이 포함될 수 있습니다.
CDC 도구는 소스 시스템의 데이터 변경을 모니터링하여 기능을 구현합니다. 변경 사항이 발견되면 CDC 도구는 이를 캡처하여 데이터베이스나 로그 파일과 같은 지정된 위치에 기록합니다. 처리되고 변환된 데이터는 데이터 웨어하우스나 분석 플랫폼과 같은 대상 시스템에 로드됩니다.
데이터베이스 변경 사항을 캡처하는 방법에는 여러 가지가 있습니다. 그 중 일부를 살펴보겠습니다:
이 방법에서는 소스에서 CREATED_AT, LAST_UPDATED 또는 DATE_MODIFIED와 유사한 일부 감사 열을 유지하고 소스의 데이터를 쿼리하여 데이터 변경 사항을 캡처하여 이러한 열의 변경 사항을 감지합니다. 이 방법은 삭제 작업을 기록하지 않는다는 점에 유의해야 합니다.
트리거는 특정 이벤트를 기반으로 작업을 수행하는 데이터베이스의 기능입니다. 삭제 작업을 포함한 모든 변경 사항을 캡처하는 데 유용하지만 각 이벤트에 여러 번 쓰기가 필요하므로 데이터베이스 성능이 저하됩니다.
데이터베이스에는 충돌 발생 시 복구를 위한 트랜잭션 로그가 포함되어 있으며 모든 이벤트를 저장합니다. 로그 기반 CDC를 사용하면 새 데이터베이스 트랜잭션을 기본 로그에서 직접 읽을 수 있으므로 소스 테이블을 스캔하지 않고도 변경 사항을 캡처할 수 있으므로 더 효율적입니다.
이 접근 방식은 이벤트 기반 아키텍처의 이벤트 소싱과 유사합니다. 시스템 상태가 변경될 때마다 이를 이벤트로 기록합니다. 기록된 이벤트는 언제든지 동일한 순서로 재생되어 시스템 상태를 재구성할 수 있습니다.
CDC는 상황, 애플리케이션, 아키텍처, 비즈니스 요구 사항에 따른 다양한 시나리오에서 매우 중요합니다. CDC가 엔지니어링 프로세스에 도움을 주는 몇 가지 방법은 다음과 같습니다.
시장에는 Oracle Golden Gate, Debezium, IBM Infosphere, Striim, StreamSets 및 Qlik Replicate와 같은 여러 CDC 도구가 있습니다. 이러한 도구는 오픈 소스이거나 유료일 수 있습니다. 일반적으로 온프레미스 및 클라우드 환경을 지원하며 다양한 데이터 소스를 처리할 수 있습니다. 선택할 때 다음 사항을 고려하세요:
비즈니스가 기술 중심으로 변하면서 과거 및 현재 데이터가 중요한 차별화 요소가 될 것입니다. 정확하고 시의적절하며 효율적이고 비용 효율적인 변경 데이터 캡처를 달성하는 것은 모든 기술 혁신 프로그램에서 중요한 부분이 될 것입니다. 이런 상황에 직면했을 때, 이 글이 도움이 되기를 바랍니다.
위 내용은 변경 데이터 캡처: 개요, 이유 및 모범 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!