자동 흐름을 사용하여 Cloud SQL 스트림 만들기

Datastream의 자동 스트림 설정 흐름을 사용하면 인스턴스 개요 페이지에서 직접 Cloud SQL 인스턴스의 데이터를 BigQuery에 복제할 수 있습니다. 이 흐름은 PostgreSQL용 Cloud SQL, MySQL용 Cloud SQL, SQL Server용 Cloud SQL 소스를 지원합니다. Datastream은 가상 프라이빗 클라우드 (VPC) 연결, 소스 데이터베이스 설정, 스트림 리소스를 자동으로 구성합니다.

자동화된 흐름을 사용하려면 소스 Cloud SQL 인스턴스에 비공개 서비스 액세스가 사용 설정되어 있어야 하고 Private Service Connect 인터페이스를 사용해야 합니다. 소스 요구사항에 대한 자세한 내용은 시작하기 전에를 참조하세요.

시작하기 전에

  1. Datastream, 네트워크 연결, Compute Engine API를 사용 설정합니다.
  2. Datastream 리소스를 만들고 관리하는 데 필요한 Identity and Access Management (IAM) 권한이 있는지 확인합니다. 자세한 내용은 다음 섹션을 참조하세요.
  3. 복제를 위한 소스 Cloud SQL 데이터베이스를 만들고 구성합니다. 자세한 내용은 소스 구성을 참조하세요.
  4. 소스 데이터베이스가 비공개 서비스 액세스를 사용하도록 구성되어 있는지 확인합니다.
  5. PostgreSQL용 Cloud SQL 인스턴스: 스트림을 만들기 전에 인스턴스에 논리적 복제를 사용 설정하는 것이 좋습니다. 논리적 복제를 사용 설정하지 않으면 Datastream에서 사용 설정하여 소스 인스턴스를 다시 시작합니다.

  6. MySQL용 Cloud SQL 인스턴스: MySQL용 Cloud SQL 인스턴스에 PITR(point-in-time recovery)을 사용 설정하고 데이터베이스 버전이 8.0.14 이상인지 확인합니다. Datastream은 자동 스트림 설정을 사용할 때 표준 백업 등급에서 PITR(point-in-time recovery)을 사용 설정하는 것만 지원합니다.

  7. SQL Server용 Cloud SQL 인스턴스: Datastream이 인스턴스에서 사용하는 SQL Server 버전을 지원하는지 확인합니다.

필수 권한

자동 스트림 생성 흐름을 사용하려면 다음 Identity and Access Management (IAM) 역할 또는 권한이 필요합니다.

  • serviceusage.services.enable, compute.networkAdmin: 필수 API를 사용 설정하고 네트워크 구성 작업을 수행합니다.
  • 인스턴스 구성 태스크의 경우 cloudsql.admin
  • Datastream이 대신 수행하는 관리 태스크의 경우 datastream.admin

PostgreSQL용 Cloud SQL에 필요한 추가 권한

  • 선택한 데이터베이스의 모든 스키마 및 테이블에 대한 액세스 권한을 postgres 또는 cloudsqlsuperuser 역할에 부여했는지 확인합니다. 자동화된 흐름에는 기본적으로 데이터베이스의 모든 스키마와 테이블이 포함되므로 자동으로 생성된 데이터베이스 사용자가 스키마 또는 테이블에 대한 권한이 없으면 스트림 생성이 실패합니다.
  • 스트림 설정을 맞춤설정하는 경우 데이터베이스 관리자 사용자에게도 복제하려는 스키마에 대한 GRANT 권한과 소스 데이터베이스 내의 관리 및 구조적 태스크에 대한 몇 가지 추가 권한이 필요합니다. 소스 데이터베이스에 연결하고 다음을 실행합니다.

    GRANT cloudsqlsuperuser TO "USER_NAME";
    ALTER ROLE "USER_NAME" CREATEROLE;
    GRANT SELECT on ALL TABLES IN SCHEMA "SCHEMA_NAME" to "USER_NAME" WITH GRANT OPTION;
    ALTER DEFAULT PRIVILEGES
    IN SCHEMA "SCHEMA_NAME"
    GRANT SELECT ON TABLES TO "USER_NAME" WITH GRANT OPTION;
    GRANT CREATE ON DATABASE "DATABASE_NAME" TO "USER_NAME";
  • 향후 테이블은 자동화된 흐름 중에 인증을 위해 계정 세부정보를 제공하는 사용자가 만든 경우에만 스트림에 자동으로 추가됩니다. 향후 테이블이 다른 사용자에 의해 생성되는 경우 해당 사용자는 Datastream 리더 사용자에게 테이블에 대한 SELECT 권한을 명시적으로 부여해야 합니다.

스트림 만들기 및 시작

스트림을 만들고 시작하려면 다음 단계를 수행합니다.

콘솔

  1. 소스 Cloud SQL 데이터베이스 인스턴스 개요 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 데이터를 스트리밍할 인스턴스를 선택합니다.

  3. BigQuery에 데이터 복제 섹션에서 스트림 시작을 클릭합니다.

  4. 스트림을 시작하여 데이터 복제 창이 열립니다.

  5. PostgreSQL용 Cloud SQL 및 MySQL용 Cloud SQL 소스의 경우 스트림 설정에서 만드는 스트림의 기본 설정을 검토합니다. SQL Server용 Cloud SQL 소스의 경우 스트림 설정 맞춤설정 섹션으로 이동합니다.

  6. 스트림을 만들고 시작할 준비가 되면 스트림 시작을 클릭합니다.

스트림 설정을 변경해야 하는 경우 맞춤설정을 클릭합니다.

스트림 설정 맞춤설정

맞춤설정을 클릭하면 스트림 설정 맞춤설정 페이지가 표시됩니다. 스트림 설정을 맞춤설정하는 데 필요한 권한이 있는지 확인합니다.

시작하기

  1. 시작하기 페이지에서 스트림 이름 필드에 스트림 이름을 입력합니다. 고유 식별자가 자동으로 입력됩니다.
  2. 인스턴스 사용자 계정 세부정보 제공 섹션에서 인증 방법을 선택합니다.

    • IAM 데이터베이스 인증: 이 옵션은 사용자에게 Identity and Access Management (IAM) 주 구성원 ID가 할당된 경우에 사용할 수 있습니다. 자세한 내용은 IAM 주 구성원을 참조하세요. 이 옵션을 선택하는 경우 사용자에게 cloudsqlsuperuser 역할과 CREATEROLE 권한을 수동으로 부여해야 합니다.

      1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

      Cloud SQL 인스턴스로 이동

      1. Cloud SQL 인스턴스를 선택합니다.
      2. 탐색 메뉴에서 Cloud SQL Studio를 클릭하고 로그인합니다.
      3. 탐색기 창에서 사용자에 대해 다음 쿼리를 실행합니다.
    GRANT cloudsqlsuperuser TO "USER_NAME";
    ALTER ROLE "USER_NAME" CREATEROLE;
    • 기본 제공 데이터베이스 인증: cloudsqlsuperuser 역할이 있는 사용자의 사용자 이름과 비밀번호를 제공합니다. 이 옵션을 선택하는 경우 사용자에게 복제하려는 테이블에 대한 GRANT 권한이 있는지 확인합니다.
  3. 리전, 암호화, 라벨과 같은 추가 스트림 세부정보를 검토합니다. 필요한 경우 추가 스트림 세부정보 섹션을 펼쳐 변경사항을 적용합니다.

  4. 계속을 클릭합니다.

소스 구성

  1. 스트림 소스 구성 페이지에서 데이터를 복제할 데이터베이스를 선택합니다.

  2. 포함할 객체 목록은 기본적으로 사용 가능한 모든 객체를 선택합니다. 목록의 객체는 스트리밍에 필요한 권한이 있는 객체입니다. 선택한 객체를 변경하려면 목록에서 선택 항목을 수정합니다.

  3. 백필 모드 및 최대 동시 백필 연결 수와 같은 고급 스트림 구성을 검토합니다. 필요한 경우 고급 스트림 구성 섹션을 펼쳐 변경사항을 적용합니다.

  4. 계속을 클릭합니다.

대상 위치 구성

  1. 대상 구성 페이지에서 필요한 경우 BigQuery 대상 설정을 조정합니다. 자세한 내용은 스트림의 대상에 대한 정보 구성을 참조하세요.

스트림 만들기 및 시작

  1. 만들고 나중에 시작을 클릭하여 스트림을 만들고 나중에 Datastream에서 시작하거나 시작을 클릭하여 스트림을 만들고 바로 시작합니다.

  2. 자동으로 수행되는 작업에 관한 알림을 받습니다.

    • Datastream은 내부 IP 주소 범위, 서브네트워크, 네트워크 연결과 같은 필수 가상 프라이빗 클라우드 리소스를 만듭니다.
    • Datastream은 CDC용 테이블을 구성하고, 복제 슬롯을 설정하고, 데이터베이스의 모든 테이블에 대한 게시를 설정하고, 전용 Datastream 사용자를 만듭니다.
    • Datastream은 비공개 연결 구성과 소스 및 대상 연결 프로필을 만듭니다.
  3. 스트림을 만들거나 만들고 시작할 것인지 확인합니다.

스트림 모니터링

Google Cloud 콘솔의 소스 인스턴스 개요 페이지에서 기본 스트림 세부정보를 모니터링할 수 있습니다. 이 페이지에는 스트림 상태, 스트림 이름, 대상 BigQuery 데이터 세트, 대상 프로젝트 식별자와 같은 정보가 표시됩니다.

개요 페이지에서 스트림 시작 또는 일시중지와 같은 작업을 수행할 수도 있습니다. 더 세분화된 모니터링 정보를 보려면 스트림 이름을 클릭하여 Datastream으로 이동합니다.

스트림 삭제

자동화된 흐름을 사용하여 만든 스트림을 삭제하면 PostgreSQL 복제 슬롯과 같은 일부 리소스가 자동으로 삭제됩니다. 하지만 수동으로 삭제해야 하는 리소스가 있습니다.

  • 간행물입니다. 게시는 데이터베이스 관리자 사용자를 사용하여 생성되며 소유자(기본적으로 게시를 생성한 사용자)만 삭제할 수 있습니다.
  • Datastream 리더 사용자입니다.
  • Datastream 소스 및 대상 연결 프로필
  • 비공개 연결 리소스
  • 서브네트워크 및 네트워크 연결과 같이 자동화된 흐름 중에 생성된 모든 네트워크 리소스

다음 단계