스트림 객체의 백필 관리

Datastream의 백필을 사용하면 진행 중인 변경 데이터 캡처와 함께 소스 객체의 이전 데이터 스냅샷을 대상으로 로드할 수 있습니다. 소스를 구성할 때 이전 데이터 백필을 선택하지 않은 경우 전체 또는 부분 백필을 수동으로 시작할 수 있습니다. 백필을 시작하면 데이터가 실수로 삭제된 경우 대상 객체를 다시 동기화할 수도 있습니다.

스트림이 실행되는 동안 객체 상태를 모니터링하고 언제든지 활성 백필을 중지할 수 있습니다. 작업을 중지하면 손상된 스키마 또는 데이터가 복제되지 않으며 동시 작업을 한 번에 하나씩 실행하여 소스 부하를 줄일 수 있습니다.

객체 상태

객체의 백필을 시작하고 중지하는 수명 주기의 다양한 상태는 다음과 같습니다.

  • 상태 없음 (UI에서 -로 표시됨): 객체가 이 상태를 수신하는 이유는 다음과 같습니다.

    • 스트림이 시작되지 않았습니다.
    • 이전 데이터 백필 체크박스가 선택되지 않았습니다 (따라서 백필이 수동으로 정의됨).
    • 객체가 자동 백필에서 명시적으로 제외되었습니다.
    • 스트림은 향후 테이블을 포함하도록 구성됩니다. 이 경우 새 테이블이 소스에 추가되면 새 테이블에 대한 자동 백필 태스크가 생성되지 않습니다 (새 테이블에는 일반적으로 백필할 이전 데이터가 없기 때문).
  • Pending: 객체의 백필이 아직 시작되지 않았습니다.

  • Active: 객체의 백필이 진행 중입니다.

  • Completed: 객체의 백필이 완료되었습니다.

  • Stopped: 객체의 백필이 중지되었습니다. 객체에 대해 백필이 다시 시작되면 Datastream은 객체와 연결된 모든 기존 데이터를 소스에서 대상으로 스트리밍합니다.

  • Failed: 객체에 대해 백필이 실패했고 백필을 다시 시작해야 합니다.

백필 시작

  1. Google Cloud 콘솔에서 스트림 페이지로 이동합니다.

    스트림 페이지로 이동

  2. 백필을 시작할 객체가 포함된 스트림을 클릭합니다.

  3. 객체 탭을 클릭합니다.

  4. 백필을 시작할 각 객체에 대해 체크박스를 선택합니다.

  5. 백필 시작을 클릭합니다.

  6. 객체를 하나만 선택했으면 대화상자에서 객체 백필 시작을 클릭합니다. 그렇지 않고 여러 객체를 선택했으면 여러 객체 백필 선택을 클릭합니다.

    Datastream이 선택한 객체에 대해 백필을 시작하고 각 객체의 상태가 Pending에서 Active 및 Completed로 변경됩니다. 객체 상태가 Completed이면 Datastream이 객체의 모든 데이터를 읽었지만 데이터가 아직 대상에 로드되고 있을 수 있다는 의미입니다.

부분 백필 시작

전체 백필 외에도 부분 백필을 수행하여 소스에서 대상으로 특정 데이터 하위 집합을 로드할 수 있습니다. 이렇게 하려면 SQL WHERE 절을 커스텀 필터로 제공합니다.

Datastream은 다음 소스에 대한 부분 백필을 지원합니다.

  • SQL Server
  • Spanner
  • Oracle
  • PostgreSQL
  • MySQL

부분 백필을 시작하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 스트림 페이지로 이동합니다.

    스트림 페이지로 이동

  2. 백필을 시작할 객체가 포함된 스트림을 클릭합니다.

  3. 객체 탭을 클릭합니다.

  4. 백필을 시작할 객체를 선택합니다.

  5. 백필 시작을 클릭합니다.

  6. 표시되는 패널에서 커스텀 필터 사용 설정 체크박스를 선택합니다.

  7. SQL WHERE 절을 입력합니다. 예를 들면 product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'입니다.

  8. 백필 시작을 클릭합니다.

Datastream에서 필터를 검증합니다. 검증이 실패하면 편집기 위에 오류 메시지가 표시됩니다. 검증에 성공하면 Datastream이 백필 작업을 시작합니다.

지원되는 맞춤 필터 문법

커스텀 필터를 제공하면 Datastream은 SQL WHERE 절 구문의 기본 하위 집합을 지원합니다. 지원되는 요소는 다음과 같습니다.

  • 논리 연산자: AND, OR
  • 비교 연산자: =, <, >, <=, >=, !=
  • 조건: IN, NOT IN, IS NULL, IS NOT NULL
  • 그룹화: 조건 그룹을 정의하는 괄호 ()
  • 값:

    • 문자열: 작은따옴표로 묶인 텍스트(예: 'value')
    • 숫자: 정수 (123), 소수 (123.45), 음수(-10), 지수가 있는 숫자 (1.2e3)
    • 불리언 값: TRUE 또는 FALSE 대소문자 구분 키워드
  • 식별자:

    • 정규화: 열 이름은 점을 사용하여 스키마 또는 테이블을 지정하는 방식으로 정규화할 수 있습니다(예: myColumn, myTable.myColumn, mySchema.myTable.myColumn).
    • 따옴표가 없는 식별자: 문자, 숫자, 밑줄을 포함할 수 있으며 문자 또는 밑줄로 시작해야 합니다. 열 또는 테이블 이름의 대소문자 구분은 대상 데이터베이스에 따라 다릅니다.
    • 큰따옴표로 묶인 식별자: 큰따옴표 (")로 묶어야 합니다.

부분 백필 제한사항

특정 문, 연산자, 키워드는 명시적으로 금지되며 이를 사용하면 오류가 발생합니다. 예를 들면 다음과 같습니다.

  • -- 또는 /* */와 같은 댓글
  • 함수(예: UPPER(column) 및 NOW())
  • 산술 표현식(예: column + 1 > 10)
  • LIKE 연산자입니다. % 또는 _와 같은 와일드 카드는 LIKE에서 지원되지 않습니다.
  • BETWEEN 연산자입니다. 대신 >= 및 <=를 사용합니다.
  • 하위 쿼리(예: WHERE 절 내의 (SELECT ...))
  • CASE 문(예: CASE WHEN ... END)
  • 열 비교(예: column1 = column2) 리터럴과 비교해야 합니다.
  • DATE 및 TIME 특정 유형 또는 함수
  • 배열 또는 JSON 관련 연산자입니다.
  • 명시적 변환: 예를 들면 CAST(column AS INT)입니다.

백필 중지

  1. Google Cloud 콘솔에서 스트림 페이지로 이동합니다.

    스트림 페이지로 이동

  2. 백필을 중지할 객체가 포함된 스트림을 클릭합니다.

  3. 객체 탭을 클릭합니다.

  4. 백필을 중지할 각 객체에 대해 체크박스를 선택합니다.

  5. 백필 중지를 클릭합니다.

  6. 객체를 하나만 선택했으면 대화상자에서 객체 백필 중지를 클릭합니다. 그렇지 않고 여러 객체를 선택했으면 객체 백필 중지를 클릭합니다.

    Datastream이 선택한 객체에 대해 백필을 중지하고 각 객체의 상태가 Stopped로 변경됩니다.

    객체가 이 상태이면 객체에 대해 백필이 중지됩니다. 객체에 대해 백필이 다시 시작되면 Datastream은 객체와 연결된 모든 기존 데이터를 소스에서 대상으로 스트리밍합니다.

다음 단계