변경 데이터 캡처 (CDC) 처리

이 페이지에서는 BigQuery의 Google Cloud Cortex Framework 내에서 변경 데이터 캡처 (CDC)를 안내합니다. BigQuery는 새 데이터를 효율적으로 저장하고 분석하도록 설계되었습니다.

CDC 프로세스

소스 데이터 시스템(예: SAP)에서 데이터가 변경되면 BigQuery는 기존 레코드를 수정하지 않습니다. 대신 업데이트된 정보가 새 레코드로 추가됩니다. 중복을 방지하려면 나중에 병합 작업을 적용해야 합니다. 이 프로세스를 변경 데이터 캡처 (CDC) 처리라고 합니다.

SAP용 Data Foundation에는 Cloud Composer 또는 Apache Airflow용 스크립트를 만들어 업데이트로 인한 새 레코드를 병합 또는 upsert하고 새 데이터 세트에는 최신 버전만 유지하는 옵션이 포함되어 있습니다. 이러한 스크립트를 사용하려면 표에 다음과 같은 특정 필드가 있어야 합니다.

  • operation_flag: 이 플래그는 레코드가 삽입, 업데이트 또는 삭제되었는지 스크립트에 알려줍니다.
  • recordstamp: 이 타임스탬프는 레코드의 최신 버전을 식별하는 데 도움이 됩니다. 이 플래그는 레코드가 다음 중 어느 것인지 나타냅니다.
    • 삽입됨 (I)
    • 업데이트됨 (U)
    • 삭제됨 (D)

CDC 처리를 활용하면 BigQuery 데이터에 소스 시스템의 최신 상태가 정확하게 반영되도록 할 수 있습니다. 이렇게 하면 중복 항목이 제거되고 데이터 분석을 위한 안정적인 기반이 마련됩니다.

데이터 세트 구조

지원되는 모든 데이터 소스의 경우 업스트림 시스템의 데이터가 먼저 BigQuery 데이터 세트 (source 또는 replicated dataset)에 복제되고 업데이트되거나 병합된 결과가 다른 데이터 세트(CDC 데이터 세트)에 삽입됩니다. 보고 도구와 애플리케이션에 항상 최신 버전의 테이블이 있도록 하기 위해 보고 뷰는 CDC 데이터 세트에서 데이터를 선택합니다.

다음 흐름은 operational_flagrecordstamp에 따라 SAP의 CDC 처리가 어떻게 이루어지는지 보여줍니다.

SAP의 CDC 처리 예시

그림 1 SAP의 CDC 처리 예시

다음 흐름은 Salesforce API에서 생성된 IdSystemModStamp 필드에 따라 API에서 Salesforce의 원시 데이터 및 CDC 처리로의 통합을 보여줍니다.

Salesforce의 API에서 원시 데이터 및 CDC 처리로의 통합

그림 2 API를 Salesforce의 원시 데이터 및 CDC 처리로 통합합니다.

일부 복제 도구는 레코드를 BigQuery에 삽입할 때 레코드를 병합하거나 upsert할 수 있으므로 이러한 스크립트 생성은 선택사항입니다. 이 경우 설정에는 데이터 세트가 하나만 있습니다. 보고 데이터 세트는 보고를 위해 업데이트된 레코드를 해당 데이터 세트에서 가져옵니다.