Oracle 데이터베이스에서 BigQuery로 데이터 복제

이 튜토리얼에서는 Cloud Data Fusion 복제를 사용하여 Oracle 데이터베이스에서 변경된 데이터를 BigQuery 데이터 세트로 지속적으로 복제하는 작업을 배포하는 방법을 보여줍니다. 이 기능은 Google Cloud의 클라우드 기반 변경 제공업체 및 복제 서비스인 Datastream에서 제공합니다.

목표

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

  1. 추가 로깅을 사용 설정하도록 Oracle 데이터베이스를 구성합니다.
  2. Cloud Data Fusion 복제 작업을 만들고 실행하기
  3. BigQuery에서 결과 확인하기

비용

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

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

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

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud Data Fusion, Dataproc, Datastream, BigQuery, and Cloud Storage API를 사용 설정합니다.

    API 사용 설정

  5. 버전 6.4.0 이상에서 비공개 Cloud Data Fusion 인스턴스를 만듭니다. 인스턴스를 설정하는 경우:

기존 인스턴스를 사용하거나 Cloud Data Fusion 메뉴 에 복제가 표시되지 않으면 복제를 사용 설정하도록 업그레이드를 참조하세요.

Compute Engine에 Oracle 설치

이 섹션(선택사항)에서는 예시 데이터베이스를 설정하는 방법을 보여줍니다. 이미 다른 곳에 데이터베이스를 설정한 경우 이 섹션을 건너뛸 수 있습니다. Datastream은 특정 버전의 Oracle 데이터베이스만 지원합니다.

  1. Oracle Server Docker 이미지를 다운로드합니다. (이 이미지는 Oracle 11g의 익스프레스 버전입니다. 기능 제한이 있습니다. 자세한 내용은 Oracle 데이터베이스 버전을 참조하세요.)

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

  3. Docker 이미지를 새 VM 인스턴스에 배포합니다. VM을 만들 때 디스크 크기를 500GB로 변경합니다.

  4. HR 샘플 스키마를 설치합니다.

Oracle 서버가 추가 로깅을 사용 설정하도록 구성

소스 Oracle 데이터베이스를 구성하는 단계를 따릅니다.

서비스 계정에 권한 부여

Cloud Data Fusion 서비스 계정과 Dataproc 서비스 계정에 Datastream API를 호출하고 Cloud Storage에 액세스할 수 있는 권한을 부여합니다.

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

    IAM 페이지로 이동

  2. 권한 테이블의 구성원 열에서 service-customer-project-number@gcp-sa-datafusion.iam.gserviceaccount.com 형식과 일치하는 Cloud Data Fusion 서비스 계정을 찾습니다.

  3. 서비스 계정 오른쪽에 있는 수정을 클릭합니다.

  4. 다른 역할 추가를 클릭합니다.

  5. 역할 선택을 클릭합니다.

  6. 검색창을 사용하여 Datastream 관리자를 검색하여 선택합니다.

    구성

  7. 저장을 클릭합니다.

  8. 권한 테이블의 역할 열에 Datastream 관리자가 표시되는지 확인합니다.

  9. 이 섹션을 반복하여 Dataproc 서비스 계정에 권한을 부여합니다.

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

    2. 권한 테이블의 구성원 열에서 <project-number>-compute@developer.gserviceaccount.com 형식과 일치하는 Dataproc VM 서비스 계정을 찾습니다.

    3. 위의 3~8단계를 반복합니다.

서비스 계정 및 서비스 계정 키에 대한 자세한 내용은 서비스 계정 키 만들기 및 관리를 참조하세요.

Oracle 서버의 VPC 네트워크 피어링 또는 방화벽 규칙 만들기

Oracle 데이터베이스가 공개 IP에서 오는 인그레스 트래픽을 허용하지 않는 경우 Datastream VPC와 Oracle 데이터베이스에 액세스할 수 있는 VPC 간에 VPC 피어링을 설정해야 합니다. 자세한 내용은 비공개 연결 구성 만들기를 참조하세요.

Oracle 데이터베이스가 공개 IP의 인그레스 트래픽을 허용하는 경우 Datastream 공개 IP의 인그레스 트래픽을 허용하도록 VM 인스턴스의 방화벽 규칙을 만듭니다.

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

  1. Cloud Data Fusion 웹 UI 오른쪽 상단에 있는 허브를 클릭합니다.

  2. Datastream 복제를 통한 Oracle 플러그인을 클릭하고 배포를 클릭합니다.

  3. 배포 창이 열리면 마침을 클릭합니다.

파이프라인 만들기

  1. Cloud Data Fusion UI에서 메뉴를 클릭하고 복제 페이지로 이동합니다. 오른쪽 상단의 녹색 동그라미 버튼을 클릭합니다.

  2. 새 복제 작업 만들기 페이지에서 복제 작업 이름을 지정합니다. 원하는 경우 설명을 지정합니다.

  3. 다음을 클릭합니다.

  4. 소스를 구성합니다.

    1. Oracle(Datastream별)을 소스로 선택합니다.

    2. 연결 메서드에서 Oracle 서버가 Datastream 공개 IP의 인그레스 트래픽을 허용하면 IP 허용 목록을 선택합니다. 그 이외의 경우 비공개 연결 이름으로 비공개 연결(VPC 피어링)을 선택하고 Oracle 서버의 VPC 피어링 또는 방화벽 규칙 만들기 섹션에서 만든 VPC 피어링 이름을 입력합니다.

    3. 호스트에 읽을 Oracle 서버의 호스트 이름을 입력합니다.

    4. 포트에서 Oracle 서버: 1521에 연결하는 데 사용할 포트를 입력합니다.

    5. 시스템 IDxe(Oracle 서버의 샘플 데이터베이스 이름)를 입력합니다.

    6. 사용자 인증 정보 섹션에서 Oracle 서버에 액세스하기 위한 사용자 이름과 비밀번호를 입력합니다.

    7. 다른 속성은 모두 그대로 둡니다.

  5. 다음을 클릭합니다.

  6. 연결에 성공하면 HR 샘플 스키마의 테이블 목록이 표시됩니다. 이 튜토리얼에서는 복제할 테이블 및 이벤트(삽입, 업데이트, 삭제 포함)를 모두 선택합니다.

  7. 다음을 클릭합니다.

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

    1. BigQuery 대상을 선택합니다.

    2. 프로젝트 ID서비스 계정 키는 자동으로 감지됩니다. 기본값을 그대로 유지합니다.

    3. (선택사항) 고급 섹션에서 스테이징 버킷의 이름과 위치, 로드 간격, 스테이징 테이블 프리픽스, 테이블 또는 데이터베이스가 삭제될 때 동작을 구성할 수 있습니다.

  9. 다음을 클릭합니다.

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

  11. 다음을 클릭합니다.

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

  13. Back(뒤로)을 클릭합니다.

  14. 다음을 클릭합니다.

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

작업 시작

복제 작업 세부정보 페이지에서 다음 안내를 따르세요.

시작을 클릭합니다.

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

작업 모니터링

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

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

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

  2. Monitoring을 클릭합니다.

BigQuery에서 결과 확인하기

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

  1. Cloud Console에서 BigQuery를 엽니다.

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

  3. xe 데이터 세트를 선택한 다음 보려는 테이블을 선택합니다.

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

삭제

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

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

VM 인스턴스 삭제

  1. Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 삭제할 인스턴스의 체크박스를 선택합니다.

  3. 인스턴스를 삭제하려면 삭제를 클릭합니다.

Cloud Data Fusion 인스턴스 삭제

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

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 가이드에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

다음 단계