Teradata에서 데이터 마이그레이션

BigQuery Data Transfer Service와 특수 마이그레이션 에이전트를 함께 사용하면 Teradata 온프레미스 데이터웨어 하우스 인스턴스에서 BigQuery로 데이터를 복사할 수 있습니다. 이 문서는 BigQuery Data Transfer Service를 사용하여 Teradata에서 데이터를 마이그레이션하는 단계별 절차를 설명합니다.

시작하기 전에

성공적인 Teradata 데이터웨어 하우스 마이그레이션을 보장하려면 다음 전제 조건을 충족해야 합니다.

Google Cloud 요구사항

  1. 마이그레이션 데이터를 저장할 Google Cloud 프로젝트를 선택하거나 만듭니다. 전송을 설정하려면 Google Cloud 프로젝트에 대한 owner 권한이 있어야 합니다.

    • Cloud Console에서 프로젝트 선택기 페이지로 이동합니다.

      프로젝트 선택기 페이지로 이동

    • Cloud 프로젝트를 선택하거나 만듭니다.

  2. 이 Google Cloud API를 사용하도록 설정하세요.

    Console

    Cloud Console의 다음 두 페이지 모두에서 사용 설정 버튼을 클릭합니다.

    BigQuery는 새 프로젝트에서 자동으로 사용 설정됩니다. 기존 프로젝트의 경우 BigQuery API를 사용 설정해야 할 수 있습니다.

    예시:

    API 사용 설정

    녹색 체크 표시는 API가 이미 사용 설정되었음을 나타냅니다.

    사용 설정된 API

    gcloud

    API를 사용 설정하기 위해 gcloud 명령줄 도구를 선택적으로 사용할 수 있습니다.

    다음과 같이 Cloud Shell에서 gcloud 명령어를 실행하거나 gcloud 도구를 다운로드하고 로컬 머신에 설치할 수 있습니다.

    • gcloud 도구를 실행하려면 자바 8을 설치해야 합니다. 이 링크를 사용하여 다운로드하세요.
    • Cloud SDK가 설치초기화되어야 합니다.

    다음 gcloud 명령어를 입력하세요.

    gcloud services enable bigquerydatatransfer.googleapis.com
    gcloud services enable storage-component.googleapis.com
    gcloud services enable pubsub.googleapis.com
    

    BigQuery는 새 프로젝트에서 자동으로 사용 설정됩니다. 기존 프로젝트의 경우 BigQuery API도 사용하세요.

    gcloud services enable bigquery.googleapis.com
    
  3. 데이터를 저장할 BigQuery 데이터세트를 만듭니다. 테이블을 만들 필요는 없습니다.

  4. Identity and Access Management(IAM) 서비스 계정을 만듭니다. 서비스 계정 작성에 대한 정보는 서비스 계정 작성 및 관리를 참조하세요.

  5. 서비스 계정에 다음 IAM 역할을 부여합니다. 서비스 계정에 역할 부여를 참조하세요.

    • BigQuery: 사전 정의된 IAM 역할 bigquery.admin.
    • Cloud Storage: 사전 정의된 IAM 역할 storage.objectAdmin.
  6. 데이터를 준비하기 위한 Cloud Storage 버킷을 만듭니다. 나중에 마이그레이션 절차에서 이 버킷 이름을 사용합니다.

  7. 전송을 설정할 때 권한 창을 볼 수 있도록 bigquery.cloud.google.com에서 브라우저 팝업을 허용합니다. 전송을 관리하려면 BigQuery Data Transfer Service 권한을 부여해야 합니다.

온프레미스 요구 사항

  1. 로컬 머신 요구 사항
    • 마이그레이션 에이전트는 Teradata 인스턴스 및 Google Cloud APIs에 JDBC 연결을 사용합니다. 네트워크 액세스가 방화벽으로 차단되지 않았는지 확인합니다.
    • Java Runtime Environment 8 이상이 설치되어 있는지 확인하세요.
    • 스테이징 공간 요구 사항에 설명된대로 최소 권장 저장 공간이 있는지 확인하세요.
  2. Teradata 연결 세부정보
    • 마이그레이션 중인 시스템 테이블 및 테이블에 대한 읽기 권한이 있는 사용자의 사용자 이름 및 비밀번호입니다.
    • Teradata 인스턴스에 연결할 호스트 이름 및 포트 번호
  3. Teradata에서 필수 JDBC 드라이버 다운로드: tdgssconfig.jar 및 terajdbc4.jar.
  4. Google 클라우드 자격 증명 다운로드.

전송 모드 및 옵션

모든 마이그레이션에는 고유한 요구사항이 있으므로 다음과 같은 방법으로 마이그레이션 에이전트를 맞춤설정할 수 있습니다. Teradata에서 BigQuery로의 데이터 전송을 설정할 때 세 가지 주요 옵션이 있습니다.

추출 방법

BigQuery Data Transfer Service는 Teradata에서 BigQuery로 데이터를 전송하기 위한 두 가지 추출 방법을 지원합니다.

  1. JDBC 드라이버를 사용하여 FastExport 연결로 추출 이 모드에서 테이블은 로컬 파일 시스템의 지정된 위치에 AVRO 파일 컬렉션으로 추출됩니다. 추출된 파일은 지정된 Cloud Storage 버킷으로 업로드되며 전송이 성공적으로 완료되면 파일은 로컬 파일 시스템에서 삭제됩니다.
    • 로컬 파일 시스템의 공간 제한이 엄격하게 적용되며, 추출된 파일이 업로드되어 로컬 파일 시스템에서 삭제될 때까지 추출이 일시 중지됩니다.
    • 로컬 저장공간이 빠듯하거나 TPT를 사용할 수 없는 경우 이 추출 방법을 사용합니다.
    • FastExport를 사용하는 JDBC 드라이버가 기본 추출 방법입니다.
  2. Teradata Parallel Transporter(TPT) tbuild 유틸리티를 사용한 추출 이 모드에서 에이전트는 파티션별로 분산된 행을 사용하여 추출 배치를 계산합니다. 각 배치에 대해 TPT 추출 스크립트가 배출 및 실행되어 파이프로 구분된 파일 세트를 생성합니다. 각 배치 추출 후 파일은 지정된 Cloud Storage 버킷으로 업로드되고 로컬 파일 시스템에서 삭제됩니다. 로컬 파일 시스템의 공간 제한이 적용되지 않으므로 로컬 파일 시스템에 Teradata 테이블의 가장 큰 파티션을 추출할 공간이 충분한지 확인합니다.
    • TPT로 추출하고 파티션 열을 나타내도록 스키마를 맞춤설정하는 것이 좋습니다. 이것이 가장 빠른 데이터 추출 방법입니다.

추출 방법 지정에 대한 자세한 내용은 단계별 전송 설정 안내의 마이그레이션 에이전트의 구성 섹션을 참조하세요.

커스텀 스키마 파일

스키마 파일은 데이터베이스 객체를 설명하는 JSON 파일입니다. 스키마에는 데이터베이스 집합이 포함되며 각 데이터베이스에는 테이블 집합이, 각 테이블에는 집합이 포함됩니다. 각 열에는 BigQuery의 열에 할당되는 유형인 type 필드가 있습니다.

스키마 파일에서 각 객체에는 name 필드가 있으며, 이는 BigQuery에서 객체에 할당될 이름입니다. 또한 각 객체에는 originalName 필드가 있으며, 이는 Teradata 데이터베이스에서 일치하는 객체의 이름입니다.

BigQuery Data Transfer Service는 Teradata에서 BigQuery로의 데이터 전송 중에 자동 스키마 감지 및 데이터 변환을 제공합니다. 선택적으로 커스텀 스키마 파일을 지정할 수도 있습니다. 일부 상황에서는 스키마를 맞춤설정하는 것이 권장됩니다. 예를 들면 다음과 같습니다.

  • 커스텀 스키마 파일은 파티션 나누기와 같이 스키마 파일이 지정되지 않은 경우 마이그레이션 중에 손실되는 테이블에 대한 추가 정보를 포함하는 데 특히 유용합니다.
  • 데이터 전송 중에 객체의 name 필드나 열의 usageType 배열과 같은 필드를 변환할 커스텀 스키마 파일을 제공하도록 선택할 수 있습니다.
  • 자세한 내용은 커스텀 스키마 파일을 참조하세요.

주문형 또는 증분 전송

Teradata 데이터베이스 인스턴스에서 BigQuery로 데이터를 마이그레이션할 때 BigQuery Data Transfer Service는 일회성 스냅샷 데이터 전송('주문형 전송')과 새로운 행과 업데이트된 행의 반복적, 주기적 전송('증분 전송' - 베타), 두 가지를 모두 지원합니다. 전송 설정 시, 일정 옵션에서 전송을 주문형 또는 증분으로 지정합니다.

  • 주문형 데이터 전송
    • 테이블이 매우 크고 TPT로 추출하여 성능을 높일 수 있는 경우 Teradata 테이블을 파티션으로 나누어 파티션별 추출을 허용하는 것이 좋습니다. 자세한 내용은 커스텀 스키마 파일을 참조하세요.
    • 테이블이 작거나 TPT를 사용할 수 없는 경우 기본 안내를 따르세요. 스키마 맞춤설정은 필요하지 않습니다.
  • 증분 데이터 전송
    • Teradata에서 BigQuery로 정기적으로 변경사항을 마이그레이션하려면 증분 모드를 사용하면 됩니다. Teradata의 새로운 레코드와 변경된 레코드가 반복적으로 BigQuery 테이블에 추가됩니다.
    • 이 방법을 사용하려면 스키마를 맞춤설정하여 COMMIT_TIMESTAMP 열을 주석 처리해야 합니다.
    • 증분 전송을 설정할 때 특정 조건이 적용됩니다. 자세한 내용은 증분 전송을 참조하세요.

Teradata 마이그레이션 설정

이 섹션에서는 Teradata에서 BigQuery로 데이터 마이그레이션을 설정하는 단계별 프로세스를 설명합니다. 단계는 다음과 같습니다.

  • 마이그레이션 에이전트를 다운로드하세요.
  • BigQuery Data Transfer Service 전송을 설정하세요.
  • 마이그레이션 에이전트를 초기화하세요.
  • 마이그레이션 에이전트를 실행하세요.

마이그레이션 에이전트 다운로드

이 링크를 사용하여 마이그레이션 에이전트를 데이터 웨어하우스가 있는 로컬 시스템으로 다운로드하세요.

마이그레이션 에이전트를 설치한 후 BigQuery Data Transfer Service 전송을 설정하고 마이그레이션 에이전트를 초기화한 다음 에이전트를 실행하여 데이터 마이그레이션을 시작합니다.

전송 설정

BigQuery Data Transfer Service로 전송을 만드세요.

Console

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

    BigQuery 페이지로 이동

  2. 전송을 클릭합니다.

  3. 전송 만들기를 클릭합니다.

  4. 소스 유형에서

    • 마이그레션: Teradata를 선택합니다.
    • 전송 구성 이름에 전송의 표시 이름을 입력하세요(예: My Migration). 표시 이름은 나중에 수정이 필요할 때 전송을 쉽게 식별할 수 있는 모든 값이 될 수 있습니다.
    • (선택 사항) 일정 옵션의 경우 기본값인 매일(만든 시간 기준)을 그대로 두거나 다른 시간을 선택할 수 있습니다.
    • 목적지 설정에 적절한 데이터 세트를 선택하세요.

      일반적인 새 Teradata 마이그레이션

  5. 데이터 소스 세부정보에서 Teradata 전송에 대한 구체적인 세부정보를 계속 작성합니다.

    • 데이터베이스 유형에 대해 Teradata를 선택하세요.
    • Cloud Storage 버킷에서는 마이그레이션 데이터 준비를 위한 Cloud Storage 버킷 이름을 찾습니다. 접두사 gs://을 입력하지 말고 버킷 이름만 입력하세요.
    • 데이터베이스 이름의 경우, Teradata에 소스 데이터베이스의 이름을 입력하세요.
    • 테이블 이름 패턴에는 소스 데이터베이스의 테이블 이름과 일치하는 패턴을 입력하세요. 정규 표현식을 사용하여 패턴을 지정할 수 있습니다. 이 패턴은 자바 정규 표현식 구문을 따라야 합니다.
    • 서비스 계정 이메일의 경우 IAM 서비스 계정에 연결된 이메일을 입력합니다.
    • (선택 사항) 스키마 파일 경로에 JSON 스키마 파일의 경로와 파일 이름을 입력하세요. 스키마 파일을 입력하지 않으면 BigQuery는 전송 중인 소스 데이터를 사용하여 테이블 스키마를 자동으로 감지합니다. 아래 스크린 샷 예시처럼 고유한 스키마 파일을 만들거나 마이그레이션 에이전트를 사용하여 스키마 파일을 만들 수 있습니다. 스키마 파일 작성에 대한 정보는 마이그레이션 에이전트 초기화 섹션을 참조하세요.

      새 Teradata 마이그레이션

    • (선택사항) 알림 옵션 섹션에서 다음을 수행하세요.

      • 전환을 클릭해서 이메일 알림을 사용 설정합니다. 이 옵션을 사용 설정하면 전송 실행이 실패할 때 전송 관리자에게 이메일 알림이 발송됩니다.
      • Pub/Sub 주제 선택에서 주제 이름을 선택하거나 주제 만들기를 클릭합니다. 이 옵션은 전송에 대한 Pub/Sub 실행 알림을 구성합니다.

        Pub/Sub 주제

  6. 저장을 클릭합니다.

  7. Cloud Console은 이 전송에 대한 리소스 이름을 포함하여 모든 전송 설정 세부사항을 표시합니다. 나중에 마이그레이션 에이전트를 실행할 때 입력해야 하므로 리소스 이름을 기록해 둡니다.

    전송 확인

기본 UI

  1. BigQuery 웹 UI로 이동합니다.

    BigQuery 웹 UI로 이동

  2. 전송을 클릭합니다.

  3. 전송 추가를 클릭합니다.

  4. 새 전송 페이지:

    • 소스에서 마이그레이션: Teradata을 선택합니다.
    • 표시 이름에 전송 이름(예: My Migration)을 입력합니다. 표시 이름은 나중에 수정해야 할 경우에 대비해 전송을 식별할 수 있는 값이면 됩니다.
    • (선택사항) 일정에서 기본값인 24시간마다(만든 시간 기준)를 그대로 두거나 수정을 클릭하여 시간을 변경합니다.

      쿼리 일정

    • 대상 데이터세트에서 적절한 데이터세트를 선택합니다.

    • 데이터베이스 유형에 대해 Teradata를 선택하세요.

    • Cloud Storage 버킷에는 마이그레이션 데이터를 준비하기 위한 Cloud Storage 버킷의 이름을 입력하세요. 접두사 gs://을 포함하지 말고 버킷 이름 만 입력하세요.

    • 데이터베이스 이름에는 Teradata에 소스 데이터베이스의 이름을 입력하세요.

    • 테이블 이름 패턴에는 소스 데이터베이스의 테이블 이름과 일치하는 패턴을 입력하세요. 정규 표현식을 사용하여 패턴을 지정할 수 있습니다. 이 패턴은 자바 정규 표현식 구문을 따라야 합니다.

    • 서비스 계정 이메일의 경우 IAM 서비스 계정에 연결된 이메일을 입력합니다.

    • (선택 사항) 스키마 파일 경로에 JSON 스키마 파일의 경로와 파일 이름을 입력하세요. 스키마 파일을 입력하지 않으면 BigQuery는 전송 중인 소스 데이터를 사용하여 테이블 스키마를 자동으로 감지합니다. 다음 예제 스크린 샷 예시처럼 고유한 스키마 파일을 만들거나 마이그레이션 에이전트를 사용하여 스키마 파일을 만들 수 있습니다. 스키마 파일 작성에 대한 정보는 마이그레이션 에이전트 초기화 섹션을 참조하세요.

      새 Teradata 마이그레이션

    • (선택사항) 고급 섹션을 펼쳐서 전송 실행 알림을 구성합니다.

    • Cloud Pub/Sub 주제에 Cloud Pub/Sub 주제를 입력합니다(예: projects/myproject/topics/mytopic).

    • 전송 실행 실패 시 이메일 알림을 허용하려면 이메일 알림 전송을 선택합니다.

      Cloud Pub/Sub 주제

  5. 추가를 클릭합니다.

  6. 메시지가 표시되면 허용을 클릭하여 BigQuery Data Transfer Service에 전송을 관리할 수 있는 권한을 부여합니다. 권한 창을 보려면 브라우저에서 bigquery.cloud.google.com의 팝업을 허용해야 합니다.

    전송 허용

  7. Cloud Console에 이 전송의 리소스 이름을 포함한 모든 전송 설정 세부정보가 표시됩니다. 리소스 이름을 기록해 두세요. 나중에 마이그레이션 에이전트를 실행할 때 입력해야 합니다.

    전송 확인

bq

bq mk 명령어를 입력하고 전송 생성 플래그 --transfer_config를 지정합니다. 다음 플래그도 필요합니다.

  • --data_source
  • --display_name
  • --target_dataset
  • --params
bq mk \
--transfer_config \
--project_id=project ID \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data source

각 항목의 의미는 다음과 같습니다.

  • project ID는 프로젝트 ID입니다. 특정 프로젝트를 지정하는 --project_id가 입력되지 않으면 기본 프로젝트가 사용됩니다.
  • dataset는 전송 구성의 대상으로 할 데이터 세트(--target_dataset)입니다.
  • name은 전송 구성의 표시 이름(--display_name)입니다. 전송의 표시 이름은 나중에 수정해야 할 경우에 전송을 쉽게 식별할 수 있는 값이면 됩니다.
  • parameters에는 JSON 형식으로 생성된 전송 구성의 매개변수(--params)가 있습니다. 예를 들면 --params='{"param":"param_value"}'입니다.
    • Teradata 마이그레이션의 경우 bucket, database_type, agent_service_account, database_name, table_name_patterns, 매개변수가 필요합니다.
      • bucket은 마이그레이션 중에 스테이징 영역으로 작동하는 Cloud Storage 버킷입니다.
      • database_type은 Teradata입니다.
      • agent_service_account은 생성한 서비스 계정과 연결된 이메일 주소입니다.
      • database_name은 Teradata의 소스 데이터베이스 이름입니다.
      • table_name_patterns은 소스 데이터베이스에서 테이블 이름을 일치시키기 위한 패턴입니다. 정규 표현식을 사용하여 패턴을 지정할 수 있습니다. 이 패턴은 자바 정규 표현식 구문을 따라야 합니다.
  • data_source는 데이터 소스(--data_source)입니다. on_premises

예를 들어 다음 명령은 Cloud Storage 버킷 mybucket 및 대상 데이터 세트 mydataset를 사용하는, 이름이 My Transfer인 Teradata 전송을 생성합니다. 전송은 Teradata 데이터 웨어하우스 mydatabase에서 모든 테이블을 마이그레이션하며 선택적 스키마 파일은 myschemafile.json입니다.

bq mk \
--transfer_config \
--project_id=123456789876 \
--target_dataset=MyDataset \
--display_name='My Migration' \
--params='{"bucket": "mybucket", "database_type": "Teradata",
"database_name":"mydatabase", "table_name_patterns": ".*",
"agent_service_account":"myemail@mydomain.com", "schema_file_path":
"gs://mybucket/myschemafile.json"}' \
--data_source=on_premises

명령어를 실행한 후 다음과 같은 메시지가 수신됩니다.

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

안내에 따라 인증 코드를 명령줄에 붙여넣습니다.

API

projects.locations.transferConfigs.create 메서드를 사용하고 TransferConfig 리소스의 인스턴스를 지정합니다.

마이그레이션 에이전트

선택적으로는 마이그레이션 에이전트 초기화 섹션에서 마이그레이션 에이전트에서 직접 전송을 작성할 수 있습니다.

마이그레이션 에이전트로의 전송을 만들려면 먼저 만든 서비스 계정에 IAM 역할 serviceAccessTokenCreator을 부여해야 합니다.

다음 두 가지 방법 중 하나로 IAM 역할을 부여할 수 있습니다.

  • Cloud Console에서 서비스 계정 토큰 생성자 IAM 역할을 부여합니다. 서비스 계정에 역할 부여를 참조하세요.

  • Cloud Shell 또는 gcloud 명령줄 도구에서 다음 gcloud 명령어를 실행할 수 있습니다.

gcloud projects add-iam-policy-binding user_project_id \
--member='serviceAccount:service-user_project_number@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com' \
--role='roles/iam.serviceAccountTokenCreator'

서비스 계정에 serviceAccessTokenCreator 권한을 부여하면 마이그레이션 에이전트 다운로드로 이동한 다음 초기화 단계의 일부로 전송을 설정할 수 있습니다.

마이그레이션 에이전트 초기화

데이터 마이그레이션을 처음 시작할 때는 마이그레이션 에이전트를 초기화하세요. 반복 전송 여부에 관계없이 마이그레이션 전송을 설정할 때마다 한 번만 초기화해야 합니다.

이 세션은 마이그레이션을 시작하는 것이 아니라 초기 구성을 위한 것입니다.

  1. 새 세션을 엽니다. 명령줄에서 다음 형식으로 특정 플래그와 함께 jar 파일을 실행하는 명령을 실행합니다.

    java -cp \
    OS-specific-separated-paths-to-jars (JDBC and agent) \
    com.google.cloud.bigquery.dms.Agent \
    --initialize
    

    유닉스, 리눅스, 맥 OS

    java -cp \
    /usr/local/migration/Teradata/JDBC/tdgssconfig.jar:/usr/local/migration/Teradata/JDBC/terajdbc4.jar:/usr/local/migration/mirroring-agent.jar \
    com.google.cloud.bigquery.dms.Agent \
    --initialize
    

    Windows

    모든 파일을 C:\migration 폴더에 복사하거나 명령에서 경로를 조정한 후 다음을 실행하세요.

    java -cp C:\migration\tdgssconfig.jar;C:\migration\terajdbc4.jar;C:\migration\mirroring-agent.jar com.google.cloud.bigquery.dms.Agent --initialize
    
  2. 확인 메시지가 표시되면 다음 매개변수를 입력하세요.

    • Teradata Parallel Transporter(TPT) 템플릿을 디스크에 저장할지 여부 TPT 추출 방법을 사용하려는 경우 Teradata 인스턴스에 적합한 매개변수로 저장된 템플릿을 수정할 수 있습니다.
    • 소스 데이터베이스의 URI입니다. 필요한 경우 포트 번호를 포함하세요.
    • 마이그레이션을 위한 로컬 스크래치 공간의 경로입니다. 스테이징 공간 요구 사항에 설명된대로 최소 권장 저장 공간이 있는지 확인하세요.
    • Teradata Parallel Transporter(TPT)를 추출 방법으로 사용할지 여부입니다.
    • (선택 사항) 데이터베이스 자격 증명 파일의 경로입니다.
  3. BigQuery Data Transfer Service 리소스 이름을 입력하라는 메시지가 표시되면

    Cloud Console에서 구성한 전송의 리소스 이름을 입력하거나 마이그레이션 에이전트 자체를 통해 지금 전송을 만들 수 있습니다. 선택적으로 마이그레이션 에이전트 초기화 명령어를 사용하여 스키마 파일을 만들 수 있습니다. 이 옵션에 대해서는 아래의 마이그레이션 에이전트 탭을 참조하세요.

    Console

    전송 설정 섹션의 콘솔 탭에서 이전에 설정한 전송의 리소스 이름을 입력하세요.

    기본 UI

    전송 설정 섹션의 기본 UI 탭에서 이전에 설정한 전송의 리소스 이름을 입력하세요.

    마이그레이션 에이전트

    • Google 클라우드 프로젝트 ID를 입력하세요.
    • Teradata에 소스 데이터베이스의 이름을 입력하세요.
    • 소스 데이터베이스에서 테이블 이름과 일치하는 패턴을 입력하세요. 정규 표현식을 사용하여 패턴을 지정할 수 있습니다. 이 패턴은 자바 정규 표현식 구문을 따라야 합니다.
    • 선택사항: 로컬 JSON 스키마 파일의 경로(반복 전송에 권장됨)를 입력합니다. 이 스키마 파일은 Cloud Storage 버킷에 업로드됩니다.
      • 새 스키마 파일을 만들도록 선택합니다. 이 경우 Teradata 사용자 이름과 비밀번호를 입력하라는 메시지가 표시되고 에이전트가 변환된 스키마로 JSON 파일을 생성합니다. 파일이 <localpath>/schema/DO_NOT_REMOVE_td2bq_table_schemas_<string>.json 패턴으로 로컬 폴더에 생성됩니다. Cloud Storage 버킷에 업로드한 후 경로 및 파일 이름에는 gs://mybucket/myproject_id/schema/DO_NOT_REMOVE_td2bq_table_schemas_<string>.json 패턴이 사용됩니다.
      • 파티션 나누기, 클러스터링, 기본 키, 변경 내용 추적 열을 표시하도록 스키마 파일을 수정하고 전송 구성에 이 스키마를 사용하려는지 확인하세요. 선택적 스키마 파일 섹션을 팁을 참조하세요.
    • BigQuery에 대상 데이터 세트의 이름을 입력하세요.
    • BigQuery에 로드하기 전에 마이그레이션 데이터를 스테이징할 Cloud Storage 버킷의 이름을 입력하세요.
    • 전송 구성의 이름을 입력하세요.
  4. 요청된 모든 매개변수를 입력하면 마이그레이션 에이전트는 구성 파일을 작성하여 매개변수에 제공된 로컬 경로에 넣습니다. 구성 파일에 대한 자세한 내용은 다음 섹션을 참조하세요.

마이그레이션 에이전트 구성 파일

초기화 단계에서 생성된 구성 파일은 다음 예제와 같습니다.


   {
    "agent-id": "0eebc1ad-621d-4386-87f1-8eca96991f63",
    "transfer-configuration": {
      "project-id": "123456789876",
      "location": "us",
      "id": "5d533a90-0000-2e89-89a0-94eb2c059a76"
    },
    "source-type": "teradata",
    "console-log": false,
    "silent": false,
    "teradata-config": {
      "connection": {
       "host": "localhost"
      },
      "local-processing-space": "extracted",
      "database-credentials-file-path": "",
      "max-local-storage": "200GB",
      "use-tpt": false,
      "max-sessions": 0,
      "max-parallel-upload": 1,
      "max-unload-file-size": "2GB"
     }
   }
   

마이그레이션 에이전트 구성 파일의 모든 옵션

  • transfer-configuration: BigQuery Data Transfer Service에서 이 전송 구성에 대한 정보.
  • teradata-config: 이 Teradata 추출과 관련된 정보

    • connection: 호스트 이름 및 포트 관련 정보
    • local-processing-space: 에이전트가 Cloud Storage에 테이블 데이터를 업로드하기 전에 테이블 데이터를 추출할 추출 폴더.
    • database-credentials-file-path: (선택 사항) Teradata 데이터베이스에 자동으로 연결하기 위한 자격 증명가 포함된 파일 경로. 파일에는 다음과 같은 두 줄이 포함되어야 합니다.
      username=abc
      password=123
      
      사용자 인증 정보 파일을 사용할 때는 암호화되지 않기 때문에 로컬 파일 시스템에 저장하는 폴더의 액세스 권한을 제어하는 데 주의해야 합니다. 경로를 입력하지 않으면 에이전트를 시작할 때 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.
    • max-local-storage: 지정된 스테이징 디렉터리에서 추출에 사용할 로컬 스토리지의 최대 용량입니다. 기본값은 200GB입니다. 지원되는 형식은 numberKB|MB|GB|TB입니다.

      모든 추출 모드에서 파일은 Cloud Storage에 업로드된 후 로컬 스테이징 디렉토리에서 삭제됩니다.

      실제 필요한 스테이징 공간 양은 추출 방법에 따라 다릅니다.

      • 기본 추출 방법 (FastExport가 포함된 JDBC 드라이버)에서는 작은 데이터 덩어리가 기록되어 지정된 Cloud Storage 버킷에 지속적으로 업로드됩니다. 지정된 max_local_storage 한계에 도달하면 추출이 일시 정지됩니다.
      • 파티션 분할 열 없이 Teradata Parallel Transporter(TPT)로 추출하면, max_local_storage 설정과 상관없이 전체 테이블이 추출됩니다.
      • 파티션 분할 열과 함께 Teradata Parallel Transporter(TPT)로 추출하면 에이전트는 파티션 세트를 추출합니다. 스테이징 스토리지 요구 사항은 max_local_storage보다 크거나 CSV 형식 추출 시 테이블의 최대 파티션 크기까지입니다.
    • use-tpt: 마이그레이션 에이전트가 Teradata Parallel Transporter(TPT)를 추출 방법으로 사용하도록 지시합니다.

      각 테이블에 대해 마이그레이션 에이전트는 TPT 스크립트를 생성하고 tbuild 프로세스를 시작한 후 완료를 기다립니다. tbuild 프로세스가 완료되면 에이전트는 추출된 파일을 나열하고 Cloud Storage에 업로드한 다음 TPT 스크립트를 삭제합니다.

      TPT 추출 방법을 사용하려면 다음 안내를 따르세요.

      • 마이그레이션 에이전트가 tbuild 절차를 사용 및 시작하려면 tbuild 유틸리티가 설치되어 있어야 합니다.
      • 로컬 추출 폴더에는 가장 큰 테이블의 파티션을 CSV 형식으로 추출하기에 충분한 공간이 있어야 합니다. CSV 형식으로 인해 파일이 Teradata의 원래 테이블 크기보다 큽니다.
    • max-sessions: 내보내기 작업에서 사용하는 최대 세션 수(FastExport 또는 TPT)를 지정합니다. 0으로 설정하면 Teradata 데이터베이스는 각 내보내기 작업에 대한 최대 세션 수를 결정합니다.

    • max-parallel-uploads: Cloud Storage에 동시에 업로드되는 파일 수를 결정합니다. 네트워크 대역폭 및 기타 설정 (예 : DLP 스캔)에 따라 이 매개변수를 늘리면 성능이 향상될 수 있습니다.

    • max-unload-file-size: 추출되는 파일의 최대 크기를 결정합니다. TPT 추출에는 이 매개변수가 적용되지 않습니다.

마이그레이션 에이전트 실행

마이그레이션 에이전트를 초기화하고 구성 파일을 작성한 후 다음 단계를 사용하여 에이전트를 실행하고 마이그레이션을 시작하세요.

  1. JDBC 드라이버의 클래스 경로와 이전 초기화 단계에서 작성된 구성 파일의 경로를 사용하여 에이전트 실행을 시작하세요.

    java -cp \
    OS-specific-separated-paths-to-jars (JDBC and agent) \
    com.google.cloud.bigquery.dms.Agent \
    --configuration_file=path to configuration file
    

    유닉스, 리눅스, 맥 OS

    java -cp \
    /usr/local/migration/Teradata/JDBC/tdgssconfig.jar:/usr/local/migration/Teradata/JDBC/terajdbc4.jar:mirroring-agent.jar \
    com.google.cloud.bigquery.dms.Agent \
    --configuration_file=config.json
    

    Windows

    모든 파일을 C:\migration 폴더에 복사하거나 명령에서 경로를 조정한 후 다음을 실행하세요.

    java -cp C:\migration\tdgssconfig.jar;C:\migration\terajdbc4.jar;C:\migration\mirroring-agent.jar com.google.cloud.bigquery.dms.Agent --configuration_file=config.json
    

    마이그레이션을 진행할 준비가 완료되면 Enter를 누릅니다. 그러면 초기화 중에 제공된 클래스 경로가 유효한 경우 에이전트가 진행됩니다.

  2. 메시지가 표시되면 데이터베이스 연결을 위한 사용자 이름과 비밀번호를 입력합니다. 사용자 이름과 비밀번호가 유효하면 데이터 마이그레이션이 시작됩니다.

    선택 사항 마이그레이션을 시작하는 명령에서 매번 사용자 이름과 비밀번호를 입력하는 대신 자격 증명 파일을 에이전트에 전달하는 플래그를 사용할 수도 있습니다. 자세한 정보는 에이전트 구성 파일에서 선택적 매개변수 database-credentials-file-path를 참조하세요. 자격 증명 파일을 사용하는 경우 암호화되지 않으므로 로컬 파일 시스템에 파일을 저장하는 폴더에 대한 액세스를 제어하는 적절한 단계를 수행하세요.

  3. 마이그레이션이 완료될 때까지 이 세션을 열어두세요. 반복되는 마이그레이션 전송을 만든 경우, 이 세션을 무기한 열어둡니다. 이 세션이 중단되면 현재 및 이후 전송 실행이 실패합니다.

  4. 에이전트가 실행 중인지 정기적으로 모니터링하세요. 전송 실행이 진행 중이고 24시간 내에 에이전트가 응답하지 않으면 전송 실행이 실패합니다.

  5. 전송이 진행 중이거나 예약된 상태에서 마이그레이션 에이전트가 종료되면 Cloud Console에 오류 상태가 표시되고 에이전트를 다시 시작하라는 메시지가 표시됩니다. 마이그레이션 에이전트를 시작하려면 이 섹션의 시작 부분에서 재개하고 마이그레이션 에이전트 실행을 위한 명령어로 마이그레이션 에이전트를 실행합니다. 초기화 명령어는 반복할 필요가 없습니다. 테이블이 완료되지 않은 지점에서부터 전송이 재개됩니다.

마이그레이션 진행 상황 추적

Cloud Console에서 마이그레이션 상태를 볼 수 있습니다. Pub/Sub 또는 이메일 알림도 설정할 수 있습니다. BigQuery Data Transfer Service 알림을 참조하세요.

BigQuery Data Transfer Service는 전송 구성 작성시 지정된 일정에 따라 전송 실행을 일정 예약하고 시작합니다. 전송 실행이 활성화되어 있을 때 마이그레이션 에이전트가 실행되고 있어야 합니다. 24시간 내에 에이전트 측에서 업데이트가 없으면 전송 실행은 실패합니다.

Cloud Console의 마이그레이션 상태 예시:

마이그레이션 상태

마이그레이션 에이전트 업그레이드

새 버전의 마이그레이션 에이전트를 사용할 수 있는 경우 마이그레이션 에이전트를 수동으로 업데이트해야 합니다. BigQuery Data Transfer Service에 대한 알림을 받으려면 출시 노트를 구독하세요.

다음 단계