MySQL에서 BigQuery로 데이터 복제


이 튜토리얼에서는 MySQL 데이터베이스에서 변경된 데이터를 BigQuery 테이블로 지속적으로 복제하는 작업을 만들고 배포하는 방법을 보여줍니다.

목표

이 튜토리얼의 목표는 다음과 같습니다.

  1. Compute Engine에 MySQL 데이터베이스 배포하기
  2. 복제를 사용 설정하도록 MySQL 데이터베이스 설정하기
  3. Cloud Data Fusion 복제 작업을 만들고 실행하기
  4. BigQuery에서 결과 확인하기

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요. Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

복제가 실행되면 Dataproc 클러스터 비용이 청구되고 BigQuery에 대한 처리 비용이 발생합니다. 이러한 비용을 최적화하려면 BigQuery 정액제를 사용하는 것이 좋습니다.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.

    Enable the APIs

  8. 버전 6.3.0 이상에서 공개 Cloud Data Fusion 인스턴스를 만듭니다. 비공개 인스턴스를 만드는 경우 VPC 네트워크 피어링을 설정합니다.
    • 인스턴스를 만들 때 가속기 추가를 클릭하고 복제 체크박스를 선택하여 복제를 사용 설정합니다.
    • 기존 인스턴스에서 복제를 사용 설정하려면 복제 사용 설정을 참고하세요.

필요한 역할

이 튜토리얼에 필요한 권한을 얻으려면 IAM으로 액세스 제어서비스 계정 사용자 권한 부여를 참고하세요.

Compute Engine에 MySQL 설치

  1. MySQL 서버 Docker 이미지를 다운로드합니다.

  2. Docker 이미지를 Artifact Registry에 업로드합니다.

  3. Docker 이미지를 새 VM 인스턴스에 배포합니다.

  4. Compute Engine 디스크 페이지에서 디스크 크기를 500 GB로 변경한 후 VM을 다시 시작합니다.

    디스크로 이동

  5. VM 인스턴스의 방화벽을 만듭니다.

  6. Sakila 샘플 데이터베이스를 설치합니다.

MySQL 데이터베이스에서 복제 사용 설정하기

복제를 사용 설정하려면 MySQL에서 변경 데이터 캡처(CDC)를 설정합니다.

Cloud Data Fusion 복제 작업을 만들고 실행하기

JDBC 드라이버 업로드

  1. 로컬 머신에 MySQL JDBC 드라이버(버전 8 이상)를 다운로드합니다.

  2. Cloud Data Fusion 웹 인터페이스에서 JDBC 드라이버를 업로드합니다.

    JDBC 드라이버를 구성하려면 다음 값을 사용합니다.

    • 이름 필드에 mysql을 입력합니다.
    • 버전 필드는 기본값을 그대로 둡니다.
    • 클래스 이름 필드에 com.mysql.jdbc.Driver를 입력합니다.

작업 만들기

  1. Cloud Data Fusion 웹 인터페이스에서 복제를 클릭합니다.

  2. 복제 작업 만들기를 클릭합니다.

  3. 새 복제 작업 만들기 페이지에서 복제 작업 이름을 지정하고 다음을 클릭합니다.

  4. 소스를 구성합니다.

    1. MySQL을 소스로 선택합니다.
    2. 호스트에 읽을 MySQL 서버의 호스트 이름을 입력합니다.
    3. 포트에서 MySQL 서버에 연결하는 데 사용할 포트(3306)를 입력합니다.
    4. JDBC 플러그인 이름mysql(또는 JDBC 드라이버를 구성할 때 지정한 이름)를 선택합니다.
    5. 데이터베이스 이름sakila를 입력합니다.
    6. 사용자 인증 정보 섹션에서 MySQL 서버에 액세스하려면 사용자 이름과 비밀번호를 입력합니다.
  5. 다음을 클릭합니다.

  6. 대상을 구성하려면 다음 안내를 따르세요.

    1. BigQuery 대상을 선택합니다.
    2. 프로젝트 ID서비스 계정 키는 자동으로 감지됩니다. 기본값을 그대로 둡니다.
    3. 선택사항: 고급 섹션에서 스테이징 버킷의 이름, 위치, 로드 간격, 스테이징 테이블 프리픽스, 테이블 또는 데이터베이스가 삭제될 때의 동작을 구성합니다.
  7. 다음을 클릭합니다.

  8. 연결에 성공하면 Sakila 샘플 데이터베이스 테이블 목록이 표시됩니다. 이 튜토리얼에서는 복제할 몇 가지 테이블과 삽입, 업데이트, 삭제 이벤트 등의 이벤트를 선택합니다.

  9. 선택사항: 고급 속성을 구성합니다. 이 튜토리얼에서는 기본 설정을 사용할 수 있습니다.

  10. 다음을 클릭합니다.

  11. 평가 검토 페이지에서 테이블 옆에 있는 매핑 보기를 클릭하여 복제 중에 발생할 수 있는 스키마 문제, 기능 누락, 연결 문제에 대한 평가를 확인합니다. 문제가 발생한 경우 해결 후 계속 진행해야 합니다. 이 튜토리얼에서는 문제가 발생한 테이블이 있으면 테이블을 선택한 단계로 돌아가 문제가 없는 테이블 또는 이벤트(삽입, 업데이트, 삭제)를 선택합니다.

    소스 데이터베이스에서 BigQuery 대상으로의 데이터 유형 변환에 대한 자세한 내용은 복제 데이터 유형을 참조하세요.

  12. 다음을 클릭합니다.

  13. 복제 작업 세부정보 요약을 검토한 후 복제 작업 배포를 클릭합니다.

작업 시작

  • 복제 작업 세부정보 페이지에서 시작을 클릭합니다.

복제 작업이 프로비저닝, 시작, 실행 중 상태로 차례로 전환됩니다. 실행 중 상태일 때 복제 작업에서 선택한 테이블 데이터의 초기 스냅샷을 BigQuery에 로드합니다. 이 상태에서는 테이블의 상태가 스냅샷 생성으로 표시됩니다. BigQuery에 초기 스냅샷이 로드되면 테이블의 변경사항이 BigQuery에 복제되고 테이블 상태가 복제 중으로 표시됩니다.

작업 모니터링

복제 작업을 시작 및 중지하고 구성과 로그를 검토하며 복제 작업을 모니터링할 수 있습니다.

복제 작업 세부정보 페이지에서 복제 작업 활동을 모니터링할 수 있습니다.

  1. 복제 페이지에서 복제 작업 이름을 클릭합니다.

  2. Monitoring을 클릭합니다.

BigQuery에서 결과 확인하기

복제 작업은 BigQuery에 복제된 데이터 세트 및 테이블을 만들고, 해당 MySQL 데이터베이스 및 테이블 이름으로부터 상속된 이름을 지정합니다.

  1. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 왼쪽 패널에서 프로젝트 이름을 선택하여 데이터 세트 목록을 펼칩니다.

  3. 결과를 보려면 sakila 데이터 세트를 선택하고 테이블을 선택합니다.

자세한 내용은 BigQuery 문서를 참조하세요.

삭제

이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.

튜토리얼을 마쳤으면 리소스가 할당량을 차지하지 않고 이후에 요금이 청구되지 않도록 Google Cloud에 만든 리소스를 삭제합니다. 다음 섹션은 이러한 리소스를 삭제하거나 사용 중지하는 방법을 설명합니다.

Cloud Data Fusion 인스턴스 삭제

안내를 따라 Cloud Data Fusion 인스턴스를 삭제합니다.

프로젝트 삭제

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

다음 단계