행동 개요

동작 및 사용 사례

Datastream은 관계형 데이터베이스 관리 시스템(RDBMS) 및 기타 소스의 소스 데이터를 거의 실시간으로 Cloud Storage와 같은 대상으로 가져올 수 있는 기능을 제공합니다. 이는 데이터 웨어하우징 및 데이터 레이크 생성을 위해 BigQuery에 데이터를 로드하거나 인공지능 및 머신러닝 사용 사례를 위해 데이터에 Spark 작업을 실행하는 등의 다운스트림 사용 사례를 제공합니다.

개념

변경 데이터 캡처

변경 데이터 캡처(CDC)는 변경된 데이터를 사용하여 조치를 취할 수 있도록 변경된 데이터를 확인하고 추적하는 데 사용되는 소프트웨어 설계 패턴 집합입니다. CDC는 기업 데이터 소스의 변경사항 식별, 캡처, 전송을 기반으로 하는 데이터 통합 방식이기도 합니다.

이벤트 소스

2005년에 도입된 이벤트 소스는 애플리케이션의 모든 상태 변경이 이벤트 객체에서 캡처되는 설계 패턴입니다. 애플리케이션은 이벤트 소싱을 활용하여 손쉽게 상태를 다시 빌드하거나, point-in-time recovery를 수행하거나(해당 지점까지 이벤트를 처리함), 로직이 변경되는 경우 상태를 다시 계산하거나, 명령어 쿼리 책임 분리(C QRS) 설계를 사용 설정합니다. 실시간 이벤트 처리를 위한 도구가 발전함에 따라 많은 애플리케이션이 이벤트 소스 모델로 이전하고 있습니다. 이전부터 트랜잭션 데이터베이스는 원자성, 일관성, 격리성, 내구성(ACID) 요구사항으로 인해 항상 이벤트 중심이었습니다.

트랜잭션 데이터베이스

트랜잭션 데이터베이스에서 데이터베이스가 수행할 작업 집합은 일반적으로 스토리지 엔진에서 작업이 실행되기 전에 WAL(미리 쓰기 로그)에 기록됩니다. 스토리지 엔진에서 작업이 실행되고 WAL에 커밋되면 작업은 성공한 것으로 간주됩니다. WAL을 사용하면 원자성과 내구성이 가능하며 데이터베이스의 고품질 복제도 가능합니다. 일부 데이터베이스는 스토리지 수준에서 발생할 정확한 작업(예: write 0x41 on location 20)을 로그에 기록하므로 이러한 작업은 동일한 스토리지 엔진에서만 복제(또는 다시 실행)될 수 있습니다. 다른 데이터베이스는 다른 스토리지 엔진에서 다시 실행할 수 있는 완전한 논리 문 또는 행을 로깅합니다.

이벤트 및 스트림

Datastream은 다양한 소스에서 많은 양의 데이터를 실시간으로 내부 데이터화하고 대상 위치에서 데이터를 사용할 수 있도록 합니다. Datastream에 저장된 데이터 단위는 이벤트입니다. 스트림은 소스의 이벤트를 지속적으로 수집하여 대상에 작성하는 것을 나타냅니다.

통합 유형

데이터 소스에는 자체 유형이 있으며, 일부는 데이터베이스 자체에만 해당되고, 일부는 일반적인 유형이며 데이터베이스 간에 공유됩니다. 통합 대상에 대한 스트림을 생성하는 소스는 다양하므로 모든 소스에서 원본 소스 유형을 표현할 수 있는 표준 통합 방법이 있어야 합니다. 통합 유형은 일관된 방식으로 사용할 수 있도록 모든 소스의 데이터 유형을 나타내기 위한 일반적이고 손실 없는 방법입니다. Datastream에서 지원되는 통합 유형은 지원되는 모든 소스 시스템에서 정규화된 모든 유형의 상위 집합을 나타내므로 모든 유형을 무손실으로 지원할 수 있습니다.

항목 컨텍스트

Datastream에는 5가지 항목이 있습니다.

  • 비공개 연결 구성을 사용하면 데이터 스트림이 안전한 비공개 네트워크 연결을 통해 데이터 소스와 통신할 수 있습니다. 이 통신은 Virtual Private Cloud(VPC) 피어링을 통해 이루어집니다.
  • 연결 프로필은 특정 소스 또는 대상 데이터베이스에 대한 연결 정보를 나타냅니다.
  • 스트림은 소스 및 대상 연결 프로필 쌍을 스트림별 설정과 함께 나타냅니다.
  • 객체는 스트림의 하위 부분을 나타냅니다. 예를 들어 데이터베이스 스트림에는 스트리밍되는 모든 테이블의 데이터 객체가 있습니다.
  • 이벤트는 지정된 객체의 모든 데이터 조작 언어(DML) 변경을 나타냅니다.

비공개 연결 구성을 만든 후 비공개 통신 채널을 통해 Google Cloud 또는 다른 위치에서 호스팅되는 소스에 연결할 수 있습니다. 비공개 연결은 선택사항이며, Datastream은 공개 네트워크를 통한 다른 연결 모드도 지원합니다.

소스 및 대상 위치에 대한 연결 프로필을 만든 후 연결 프로필에 저장된 정보를 사용하여 소스에서 대상으로 데이터를 전송하는 스트림을 만들 수 있습니다.

스트림을 만든 후 Datastream은 소스에 직접 연결하고 콘텐츠를 소비한 다음 이벤트 구조에 따라 이벤트를 처리하고 대상에 기록합니다.

비공개 연결 구성과 연결 프로필은 스트림과 별도로 관리할 수 있으며, 기업에서는 소스 또는 대상에 대한 연결을 설정할 수 있는 사람이 스트림을 만드는 사람과 다를 수 있습니다.

특징

Datastream의 기능은 다음과 같습니다.

  • 서버리스: 스트림을 구성할 수 있으며 데이터 이동이 시작됩니다. 설치, 리소스 할당 또는 유지보수 오버헤드가 없습니다. Datastream의 자동 확장 기능은 데이터 볼륨이 확장되거나 축소됨에 따라 리소스를 할당하여 데이터가 자동으로 실시간 이동하게 합니다.
  • 통합 Avro 기반 유형 스키마: Datastream은 모든 소스별 데이터 유형을 Avro 유형에 따라 통합 Datastream 유형 스키마로 변환하여 간단한 소스 독립적 처리를 지원합니다.
  • 이전 데이터 및 CDC 데이터 스트리밍: 데이터 스트림은 이전 데이터 및 CDC 소스 데이터를 동시에 실시간으로 스트리밍합니다.
  • 추가 라이선스가 없는 Oracle CDC: Datastream은 추가 라이선스 또는 소프트웨어 설치 비용을 지불할 필요 없이 Oracle 소스 버전 11.2g 이상에서 LogMiner 기반 CDC 스트리밍을 제공합니다.
  • Cloud Storage 대상 위치: CDC 데이터는 Cloud Storage에 있는 Avro 또는 JSON 파일을 자체 기술하기 위해 지속적으로 기록됩니다. 이 정보는 직접 또는 BigQuery와 같은 다른 대상으로 다운스트림으로 로드하여 추가 처리에 쉽게 사용할 수 있습니다.

사용 사례

Datastream을 사용하는 세 가지 주요 시나리오는 다음과 같습니다.

  • 데이터 통합: 데이터베이스 및 SaaS(Software-as-a-Service) 클라우드 서비스의 데이터 스트림은 Dataflow 또는 Cloud Data Fusion을 통해 BigQuery에 데이터를 로드하여 실시간에 가까운 데이터 통합 파이프라인을 제공할 수 있습니다.
  • 스트리밍 분석: 데이터베이스의 변경사항이 사기 감지, 보안 이벤트 처리, 이상 감지를 위한 Dataflow와 같은 스트리밍 파이프라인에 수집됩니다.
  • 데이터 변경사항에 대한 실시간에 가까운 가용성: 마케팅 활동을 통해 또는 프로덕션 시스템에 다시 피드하는 방식으로 이탈을 방지하거나 참여도를 높이기 위해 거의 실시간으로 데이터 변경을 지원하여 인공지능 및 머신러닝 애플리케이션을 구동합니다.

행동 개요

DataStream을 사용하면 고객이 여러 데이터 소스의 변경사항을 Google Cloud로 직접 스트리밍할 수 있습니다.

소스

  • 인증 및 추가 구성 옵션을 포함하여 소스를 Datastream과 함께 사용하는 데 필요한 설정 작업이 있습니다.
  • 각 소스는 모든 데이터 조작 언어(DML) 변경사항을 반영하는 이벤트를 생성합니다.
  • 각 스트림은 이전 데이터를 백필할 수 있을 뿐만 아니라 진행 중인 변경사항을 대상으로 스트리밍할 수도 있습니다.

대상

Datastream은 Cloud Storage를 대상으로 지원합니다. 스트림이 생성되면 원하는 Cloud Storage 버킷이 정의됩니다.

이벤트 전송

  • 이벤트 순서는 보장되지 않습니다. 이벤트 메타데이터에는 이벤트를 정렬하는 데 사용할 수 있는 정보가 포함됩니다.
  • 이벤트 전송은 한 번 이상 발생합니다. 이벤트 메타데이터에는 대상 위치에서 중복 데이터를 삭제하는 데 사용할 수 있는 데이터가 포함됩니다.
  • 이벤트 크기는 이벤트당 3MB로 제한됩니다.

이벤트에 대한 자세한 내용은 이벤트 및 스트림을 참조하세요.

성능

  • 데이터 스트림은 초당 5MB 이상의 처리량(또는 이벤트당 1,000회의 초당 이벤트 5,000개)을 보장하지만 처리량은 소스 제약 조건에 따라 소스별로 달라질 수 있습니다.
  • 엔드 투 엔드 서비스의 지연 시간(소스의 데이터 읽기부터 Cloud Storage의 대상 위치로 스트리밍)까지 120초 미만(기본 스트림 설정을 사용하는 경우)입니다.

고가용성 및 재해 복구

이 섹션에는 Datastream에서 고가용성 및 재해 복구와 관련된 시나리오를 처리하는 방법에 대한 정보가 포함되어 있습니다.

  • 고가용성: Datastream은 각 리전의 여러 영역에서 실행되는 리전 서비스입니다. 어느 한 영역에서 단일 영역이 실패해도 다른 영역에 있는 서비스의 가용성이나 품질은 영향을 받지 않습니다.
  • 재해 복구: 리전에 장애가 발생하면 장애가 발생한 동안 해당 리전에서 실행 중인 모든 스트림이 중단됩니다. 서비스 중단이 해결되면 Datastream은 중단된 지점부터 정확하게 계속 진행되고, 대상에 기록되지 않은 모든 데이터는 소스에서 다시 검색됩니다. 이 경우 대상의 데이터가 중복될 수 있습니다. 중복 데이터 삭제에 대한 자세한 내용은 이벤트 전송을 참조하세요.

초기 데이터 및 CDC 데이터

데이터 소스에는 소스가 스트림에 연결되기 전에 존재했던 데이터(이전 데이터)가 있으므로 Datastream은 이전 데이터 및 실시간으로 발생하는 데이터 변경사항 모두의 이벤트를 생성합니다.

빠른 데이터 액세스를 보장하기 위해 이전 데이터 및 실시간 데이터 변경사항이 동시에 대상에 복제됩니다. 이벤트 메타데이터는 이벤트가 백필에서 발생했는지 또는 CDC에서 발생했는지를 나타냅니다.