스트림 만들기

개요

이 섹션에서는 스트림을 만드는 방법을 알아봅니다. Datastream은 이 스트림을 사용해서 소스 Oracle, MySQL, SQL Server(미리보기) 또는 PostgreSQL 데이터베이스의 데이터를 BigQuery 또는 Cloud Storage로 전송합니다.

스트림 만들기에는 다음이 포함됩니다.

  • 스트림의 설정을 정의합니다.
  • 소스 Oracle, MySQL SQL Server(미리보기) 또는 PostgreSQL 데이터베이스(소스 연결 프로필)용으로 만든 연결 프로필을 선택하거나, 아직 만들지 않았으면 소스 연결 프로필을 만듭니다.
  • 소스 데이터베이스의 테이블 및 스키마를 지정하여 스트림의 소스 데이터베이스에 대한 정보를 구성하여 Datastream이 다음을 수행합니다.
    • 대상으로 전송합니다.
    • 대상으로 전송이 제한됩니다.
  • Datastream이 계속되는 스트림 변경사항 뿐만 아니라 이전 데이터를 대상으로 백필하거나 변경사항만 데이터로 스트리밍할지 결정합니다. 내역 백필을 사용 설정하면 Datastream이 대상으로 백필하지 않아야 할 스키마 및 테이블을 소스 데이터베이스에서 선택적으로 지정할 수 있습니다.

  • BigQuery 또는 Cloud Storage(대상 연결 프로필)용으로 만든 연결 프로필을 선택하거나 대상 연결 프로필을 만들지 않았으면 이를 만듭니다.

  • 스트림의 대상 정보를 구성합니다. 이러한 정보에는 다음이 포함됩니다.

    • BigQuery:
      • Datastream이 소스 데이터베이스에서 스키마, 테이블, 데이터를 복제할 데이터 세트입니다.
    • Cloud Storage:
      • Datastream이 소스 데이터베이스에서 스키마, 테이블, 데이터를 전송할 대상 버킷의 폴더입니다.
  • 스트림이 성공적으로 실행될지 확인합니다. 스트림 검사 시 다음을 확인합니다.

    • Datastream이 데이터를 스트림하도록 소스가 올바르게 구성되었는지 확인합니다.
    • 스트림이 소스 및 대상에 모두 연결할 수 있는지 확인합니다.

    • 스트림의 엔드 투 엔드 구성을 확인합니다.

스트림 설정 정의

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

    스트림 페이지로 이동

  2. 스트림 만들기를 클릭합니다.

  3. 다음 표에 따라 스트림 만들기 페이지에서 스트림 세부정보 정의 섹션의 각 필드를 작성합니다.

    필드설명
    스트림 이름스트림의 표시 이름을 입력합니다.
    스트림 IDDatastream은 입력한 스트림 이름을 기반으로 이 필드를 자동으로 채웁니다. 자동으로 생성된 ID를 유지하거나 변경할 수 있습니다.
    리전스트림이 저장된 리전을 선택합니다. 모든 리소스와 마찬가지로 스트림이 리전에 저장됩니다. 리전 선택은 스트림이 소스 데이터베이스 또는 대상에 연결될 수 있는지 여부에 영향을 주지 않지만 리전에 다운타임이 발생할 때 가용성에 영향을 줄 수 있습니다.
    소스 유형

    소스 Oracle, MySQL, SQL Server(미리보기) 또는 PostgreSQL 데이터베이스용으로 연결 프로필을 만들 때 지정한 프로필 유형을 선택합니다. 또는 소스 데이터베이스에 대해 연결 프로필을 만들지 않았으면 지금 만들 수 있습니다.

    대상 위치 유형

    BigQuery 또는 Cloud Storage 대상의 연결 프로필을 만들 때 지정한 프로필 유형을 선택합니다. 또는 대상에 대해 연결 프로필을 만들지 않았으면 지금 만들 수 있습니다.

    암호화

    기본적으로 데이터는 Google Cloud에서 관리하는 키로 암호화됩니다. 암호화를 직접 관리하려면 고객 관리 암호화 키(CMEK)를 사용하면 됩니다.

    1. CMEK 사용 체크박스를 선택합니다.
    2. CMEK 선택 드롭다운 메뉴에서 CMEK를 선택합니다.

    키가 표시되지 않으면 키 리소스 이름 입력을 클릭하여 사용하려는 키의 리소스 이름을 제공합니다. 예를 들어 키 리소스 이름 필드에 projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key를 입력한 후 저장을 클릭할 수 있습니다.

  4. 필요에 따라 라벨을 사용해서 Datastream 리소스를 정리합니다.

    1. 라벨을 만들려면 라벨 추가를 클릭한 후 라벨의 키-값 쌍을 입력합니다.
    2. 라벨을 삭제하려면 라벨이 포함된 행 오른쪽의 휴지통 아이콘을 클릭합니다.
  5. 선택적으로 스트림에 대해 알림 정책을 추가합니다. 알림 정책은 스트림 오류 시 알림을 받을 시기 및 방법을 정의합니다.

    1. 알림 정책을 만들려면 알림 정책 추가를 클릭합니다.
    2. 알림 정책 만들기 페이지가 Cloud Monitoring에 표시됩니다. 이 페이지에서는 스트림 실패 시 알림 정책을 정의합니다.

    알림 정책에 대한 자세한 내용은 측정항목 기반 알림 정책 관리를 참조하세요.

  6. 스트림에 맞게 환경을 준비해야 하는 방법이 자동으로 반영되도록 생성된 필수 기본 요건을 검토합니다. 이러한 기본 요건에는 소스 데이터베이스 구성 방법과 대상에 연결하는 방법이 포함될 수 있습니다. 이 단계에서 이러한 기본 요건을 완료하는 것이 가장 좋지만, 스트림을 테스트하거나 시작하기 전 언제라도 이를 완료할 수 있습니다. 이러한 기본 요건에 대한 자세한 내용은 소스를 참조하세요.

  7. 계속을 클릭합니다. 스트림 만들기 페이지의 연결 프로필 정의 패널이 소스 데이터베이스 유형에 대해 표시됩니다.

소스 연결 프로필 정보 지정

  1. Oracle, MySQL, SQL Server(미리보기) 또는 PostgreSQL용 연결 프로필을 만든 경우 연결 프로필 목록에서 선택합니다.

    소스 연결 프로필을 만들지 않았으면 드롭다운 목록 아래에서 연결 프로필 만들기를 클릭하여 프로필을 하나 만들고 연결 프로필 만들기와 동일한 단계를 수행합니다.

  2. 테스트 실행을 클릭하여 소스 데이터베이스 및 Datastream이 서로 통신할 수 있는지 확인합니다.

    테스트에 실패하면 연결 프로필과 관련된 문제가 표시됩니다. 문제 해결 단계는 문제 진단 페이지를 참조하세요. 문제 해결을 위해 필요한 항목을 변경한 후 다시 테스트합니다.

  3. 계속을 클릭합니다. 스트림 만들기 페이지의 스트림 소스 구성 패널이 표시됩니다.

스트림의 소스 데이터베이스에 대한 정보 구성

PostgreSQL 소스 데이터베이스 구성

PostgreSQL을 소스 데이터베이스로 선택한 경우 복제 속성을 정의해야 합니다.

  1. 복제 속성 섹션에서 다음 속성을 지정합니다.
    1. 복제 슬롯 이름 필드에 이 스트림을 위해 특별히 만든 슬롯의 이름을 입력합니다. 데이터베이스에서 이 슬롯을 사용하여 Datastream에 이벤트를 전송합니다.
    2. 게시 이름 필드에 데이터베이스에서 만든 게시의 이름을 입력합니다. 게시는 이 스트림을 사용하면서 변경된 사항을 복제할 모든 테이블 그룹입니다.
  2. 계속을 클릭합니다. 아래의 소스 데이터베이스 구성 섹션에 설명된 단계를 따릅니다.

소스 데이터베이스 구성

  1. 포함할 객체 선택 섹션에서 포함할 객체 드롭다운 메뉴를 사용하여 Datastream이 대상으로 전송할 수 있는 소스 데이터베이스의 테이블과 스키마를 지정합니다.

    1. Datastream이 모든 테이블 및 스키마를 전송하도록 하려면 모든 스키마의 모든 테이블을 선택합니다.
    2. Datastream이 특정 테이블 및 스키마만 전송하도록 하려면 특정 스키마 및 테이블을 선택한 후 Datastream이 전송할 스키마 및 테이블의 체크박스를 선택합니다.

    3. Datastream이 전송할 테이블 및 스키마에 대해 텍스트 정의를 제공하려면 커스텀을 선택한 후 객체 일치 조건 필드에서 Datastream이 전송할 스키마 및 테이블을 입력합니다.

      데이터베이스에 테이블 및 스키마가 많으면 일부 테이블 및 스키마가 가져올 객체 목록에 포함되지 않을 수 있기 때문에 커스텀 옵션을 사용하는 것이 좋습니다.

  2. 필요에 따라 제외할 객체 선택 노드를 확장합니다. 제외할 객체 필드에서 Datastream이 가져오지 못하도록 제한할 소스 데이터베이스의 테이블 및 스키마를 입력합니다. 제외할 객체 목록이 포함할 객체 목록보다 우선 적용됩니다. 객체가 포함 목록 및 제외 목록의 기준을 모두 충족하면 객체가 스트림에서 제외됩니다.

  3. 필요에 따라 이전 데이터의 백필 모드 선택 노드를 확장한 후 다음 항목 중 하나를 선택합니다.
    1. 데이터 변경사항 외에도 소스에서 대상으로 모든 기존 데이터를 스트리밍하려면 자동 옵션을 선택합니다.

      자동 백필에서 제외된 객체 필드에서 Datastream이 대상에 백필하지 못하도록 제한할 소스 데이터베이스의 테이블 및 스키마를 입력합니다.

    2. 변경사항만 대상의 데이터에 스트리밍하려면 수동 옵션을 선택합니다.
  4. 계속을 클릭합니다. 스트림 만들기 페이지의 연결 프로필 정의 패널이 대상 유형에 대해 표시됩니다.

대상 연결 프로필 선택

  1. 대상 연결 프로필을 만들었으면 연결 프로필 목록에서 선택합니다.

    대상 연결 프로필을 만들지 않았으면 드롭다운 목록 아래에서 연결 프로필 만들기를 클릭하여 프로필을 하나 만들고 연결 프로필 만들기와 동일한 단계를 수행합니다.

  2. 계속을 클릭합니다. 스트림 만들기 페이지의 스트림 대상 구성 패널이 표시됩니다.

스트림의 대상 정보 구성

BigQuery 대상

  1. Datastream에서 BigQuery 방향으로 연결 구성에서 Datastream이 BigQuery 데이터 세트로 스트리밍되는 방법을 지정합니다. 다음 옵션 중 하나를 선택합니다.

    • 각 스키마를 위한 데이터 세트: Datastream이 스키마 이름을 기준으로 각 소스 스키마의 BigQuery 데이터 세트를 만듭니다.

      이 옵션을 선택하면 Datastream이 소스 데이터베이스의 모든 스키마에 대해 스트림이 포함된 프로젝트의 데이터 세트를 만듭니다.

      또한 각 스키마를 위한 데이터 세트 옵션을 선택할 때는 다음을 수행합니다.

      1. 위치 필드에 새 데이터 세트를 만들 리전을 입력합니다.
      2. (선택사항) 프리픽스 필드에 스트림에서 만든 데이터 세트의 프리픽스를 정의합니다. 지정한 문자열이 소스 스키마 이름에 추가됩니다. 예를 들어 스키마를 <mySchema>로 지정하고 데이터 세트 프리픽스를 <myPrefix>로 정의하면 Datastream이 <myPrefix><mySchema>라는 데이터 세트를 만듭니다.
      3. Google 관리 또는 고객 관리 암호화 키를 선택하여 BigQuery에서 데이터를 암호화하는 방법을 지정합니다.
    • 모든 스키마를 위한 단일 데이터 세트: Datastream이 사용자가 지정한 기존 BigQuery 데이터 세트 내에 모든 테이블을 만듭니다. Datastream이 만드는 각 테이블의 이름은 소스 스키마 이름과 테이블 이름을 밑줄로 구분하여 조합해 지정됩니다(예: <mySchemaName>_<myTableName>).

  2. 데이터 비활성 한도 지정. BigQuery 쿼리 성능과 비용 및 데이터 최신 상태 간에 균형을 이룰 한도를 선택합니다. BigQuery는 비활성 한도에 따라 지속적으로 또는 쿼리 실행 시 백그라운드에서 변경사항을 적용합니다. 비활성화 정도가 낮을 경우(보다 최신 데이터) BigQuery 처리 비용이 증가할 수 있습니다.

  3. 계속을 클릭합니다. 스트림 만들기 페이지의 스트림 세부정보 검토 및 만들기 패널이 표시됩니다.

Cloud Storage 대상

  1. 선택적으로 스트림 경로 프리픽스 필드에 Datastream이 소스 데이터베이스에서 스키마, 테이블, 데이터를 전송할 대상 버킷의 폴더를 입력합니다.

    예를 들어 Datastream이 소스 데이터베이스의 데이터를 대상 버킷의 /root/example 폴더로 전송하도록 하려면 스트림 경로 프리픽스 필드에 /root/example을 입력합니다.

  2. 출력 형식 필드에서 Cloud Storage에 기록된 파일 형식을 선택합니다.

  3. 선택사항입니다. JSON 형식을 선택하면 다음 두 가지 체크박스가 표시됩니다.

    1. 파일 경로에 통합 유형 스키마 파일 포함: 이 체크박스를 선택하면 Datastream이 Cloud Storage에 JSON 데이터 파일 및 Avro 스키마 파일의 두 가지 파일을 기록합니다. 스키마 파일에는 .schema 확장자와 함께 데이터 파일과 동일한 이름이 사용됩니다. 이 체크박스를 선택하지 않으면 Datastream이 JSON 데이터 파일만 Cloud Storage에 기록합니다. 이 체크박스는 기본적으로 선택되지 않습니다.
    2. gzip 압축 사용 설정: 이 체크박스를 선택하면 Datastream이 gzip 유틸리티를 사용해서 Datastream이 Cloud Storage에 기록하는 파일을 압축합니다. 이 체크박스를 선택하지 않으면 Datastream이 파일을 압축하지 않고 Cloud Storage에 기록합니다. 이 체크박스는 기본적으로 선택되어 있습니다.
  4. 계속을 클릭합니다. 스트림 만들기 페이지의 스트림 세부정보 검토 및 만들기 패널이 표시됩니다.

스트림 만들기

  1. 스트림은 물론 소스 데이터베이스에서 대상으로 데이터를 전송하기 위해 스트림에 사용되는 소스 및 대상 연결 프로필에 대한 세부정보를 확인합니다.
  2. 검증 실행을 클릭하여 스트림을 검증합니다. Datastream은 스트림을 검증하여 소스가 올바르게 구성되었는지 확인하고, 스트림이 소스 및 대상 모두에 연결할 수 있는지 확인하고, 스트림의 엔드 투 엔드 구성을 확인합니다.

    1. 소스 데이터베이스가 Oracle인 경우 Datastream이 다음 확인을 수행합니다.

      확인설명
      객체 목록 유효성Datastream이 제외 목록에 포함 목록이 포함되지 않는지 확인합니다.
      정방향 SSH 터널 연결Datastream이 정방향 SSH 터널을 통해 배스천 호스트에 연결할 수 있는지 확인합니다.
      Oracle 데이터베이스에 대한 연결Datastream이 소스 Oracle 데이터베이스에 연결할 수 있는지 확인합니다.
      Oracle 사용자 권한Datastream이 소스 데이터베이스 연결을 위해 사용되는 사용자에게 데이터베이스에서 스키마, 테이블, 데이터를 검색하는 데 필요한 모든 권한이 있어서 Datastream은 이 정보를 대상으로 스트리밍할 수 있는지 확인합니다.
      로깅 모드 구성Datastream이 Oracle 데이터베이스의 로깅 모드가 ARCHIVELOG로 설정되었는지 확인합니다.
      추가 로깅 구성Datastream이 소스에서 대상으로 스트리밍되는 데이터베이스 테이블에 대해 보조 로깅이 설정되었는지 확인합니다.
      로그 파일 구성 보관처리Datastream이 보관처리 로깅이 소스에 구성되어 있고 보관처리 로그 파일이 제공되었는지 확인합니다.
      Cloud Storage 권한(Cloud Storage 대상) Datastream이 Cloud Storage의 대상 버킷에 기록하는 데 필요한 권한이 있는지 확인합니다.
    2. 소스 데이터베이스가 MySQL인 경우 Datastream이 다음 확인을 수행합니다.

      확인설명
      객체 목록 유효성Datastream이 제외 목록에 포함 목록이 포함되지 않는지 확인합니다.
      정방향 SSH 터널 연결Datastream이 정방향 SSH 터널을 통해 배스천 호스트에 연결할 수 있는지 확인합니다.
      MySQL 데이터베이스에 대한 연결Datastream이 소스 MySQL 데이터베이스에 연결할 수 있는지 확인합니다.
      바이너리 로깅을 사용 설정했습니다.Datastream이 바이너리 로그 파일이 올바르게 구성되었고 로그 파일이 제공되었는지 확인합니다.
      바이너리 로그 형식 구성Datastream이 MySQL 데이터베이스의 바이너리 로그 형식이 ROW로 설정되었는지 확인합니다.
      복제 권한Datastream이 MySQL 데이터베이스를 복제하는 데 필요한 권한이 있는지 확인합니다.
      Cloud Storage 권한(Cloud Storage 대상)Datastream이 Cloud Storage의 대상 버킷에 기록하는 데 필요한 권한이 있는지 확인합니다.
    3. 소스 데이터베이스가 PostgreSQL인 경우 Datastream이 다음 확인을 수행합니다.

      확인설명
      PostgreSQL 데이터베이스에 대한 연결Datastream에서 소스 PostgreSQL 데이터베이스에 연결할 수 있는지 확인합니다.
      논리 디코딩 사용 설정Datastream에서 PostgreSQL 데이터베이스의 wal_level 매개변수가 logical로 설정되었는지 확인합니다.
      복제 슬롯 구성Datastream에서 PostgreSQL 복제 슬롯이 존재하고 활성 상태인지, Datastream에 액세스에 필요한 권한이 있는지, 올바르게 구성되었는지 확인합니다.
      게시 구성Datastream에서 게시가 존재하는지 확인하고 스트림을 위해 복제할 테이블이 게시에 포함되어 있는지 확인합니다.
      백필 권한Datastream에서 이전 데이터를 백필하는 데 필요한 테이블이 존재하는지, 이를 읽는 데 필요한 권한이 있는지 확인합니다.
    4. 소스 데이터베이스가 SQL Server(미리보기)인 경우 Datastream이 다음 확인을 수행합니다.

      확인설명
      SQL Server 버전Datastream이 소스 SQL Server 데이터베이스 버전이 지원되는지 확인합니다. 지원되는 버전에 대한 자세한 내용은 버전을 참조하세요.
      SQL Server 사용자 권한Datastream이 사용자에게 소스 SQL Server 데이터베이스에 액세스하는 데 필요한 권한이 있는지 확인합니다.
      SQL Server CDC가 사용 설정됨Datastream이 데이터베이스 및 스트림에 포함된 모든 테이블에 CDC가 사용 설정되었는지 확인합니다.
      SQL Server 데이터베이스 검증Datastream이 소스 데이터베이스가 올바르게 구성되었는지, 모든 복제 요구사항이 충족되었는지, 열에 지원되지 않는 데이터 유형이 없는지 확인합니다.
      Cloud Storage 또는 BigQuery 권한Datastream이 사용자에게 대상에 쓰는 데 필요한 권한이 있는지 확인합니다.
  3. 모든 검증 확인을 통과했으면 만들기 및 시작을 클릭하여 스트림을 만들고 이를 즉시 시작하거나 만들기를 클릭하여 스트림을 만들고 이를 즉시 시작하지는 않습니다.

    스트림을 지금 시작하지 않을 경우에는 시작을 클릭하여 스트림 페이지에서 시작할 수 있습니다.

스트림을 만든 후에는 이에 대한 개요 및 세부정보를 확인할 수 있습니다.