모델 관리

이 문서에서는 모델 복사 및 모델 이름 바꾸기를 포함하여 BigQuery ML 모델을 관리하는 방법을 설명합니다.

필요한 역할

BigQuery 모델을 읽고 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 BigQuery 데이터 편집자(roles/bigquery.dataEditor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 BigQuery 모델을 읽고 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

BigQuery 모델을 읽고 만들려면 다음 권한이 필요합니다.

  • 모델에서 정보 읽기: bigquery.models.getData
  • 모델 만들기: bigquery.models.create

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

모델 이름 바꾸기

기존 모델의 이름을 변경할 수 없습니다. 모델 이름을 변경해야 할 경우 다음 단계에 따라 모델을 복사합니다. 복사 작업에서 대상을 지정할 때는 새 모델 이름을 사용해야 합니다.

모델 복사

다음 방법을 사용하면 소스 데이터 세트에서 대상 데이터 세트로 하나 이상의 모델을 복사할 수 있습니다.

  • Google Cloud 콘솔 사용
  • bq 명령줄 도구의 bq cp 명령어 사용
  • jobs.insert API 메서드를 직접 호출하여 복사 작업 구성 또는 클라이언트 라이브러리 사용

모델 복사 제한사항

모델 복사 작업에는 다음과 같은 제한사항이 적용됩니다.

  • 모델을 복사할 때 대상 모델의 이름은 모델을 만들 때와 동일한 이름 지정 규칙을 따라야 합니다.
  • 모델 복사본에는 복사 작업에 대한 BigQuery 한도가 적용됩니다.
  • Google Cloud 콘솔에서는 모델 복사를 지원하지 않습니다.
  • 단일 명령어로 여러 소스 모델을 복사하는 작업은 지원되지 않습니다.
  • CLI를 사용하여 모델을 복사할 경우 --destination_kms_key 플래그는 지원되지 않습니다.

모델 복사

다음 방법을 사용하여 모델을 복사할 수 있습니다.

  • 명령줄 도구의 bq cp 명령어 사용
  • jobs.insert API 메서드를 호출하여 복사 작업 구성 또는 클라이언트 라이브러리 사용

모델을 복사하려면 다음 안내를 따르세요.

콘솔bqAPI

Google Cloud 콘솔에서는 모델 복사를 지원하지 않습니다.

bq cp 명령어를 실행합니다. 선택적 플래그:

  • -f 또는 --force는 대상 데이터 세트의 기존 모델을 덮어쓰고 확인 메시지를 표시하지 않습니다.
  • -n 또는 --no_clobber는 모델이 대상 데이터 세트에 있으면 '[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping 오류 메시지를 반환합니다.

    -n을 지정하지 않은 경우 대상 모델을 바꿀 것인지 여부를 선택하라는 메시지가 기본적으로 표시됩니다.

소스 데이터 세트 또는 대상 데이터 세트가 기본 프로젝트가 아닌 다른 프로젝트에 있으면 프로젝트 ID를 PROJECT_ID:DATASET 형식으로 데이터 세트 이름에 추가합니다.

--location 플래그를 지정하고 값을 사용자 위치로 설정합니다.

bq --location=LOCATION cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL

다음을 바꿉니다.

  • LOCATION: 위치의 이름. --location 플래그는 선택사항입니다. 예를 들어 도쿄 리전에서 BigQuery를 사용하는 경우에는 플래그 값을 asia-northeast1로 설정할 수 있습니다. .bigqueryrc 파일을 사용하여 위치 기본값을 설정할 수 있습니다. 전체 위치 목록은 BigQuery 위치를 참조하세요.
  • PROJECT_ID: 프로젝트 ID
  • DATASET: 소스 또는 대상 데이터 세트의 이름
  • SOURCE_MODEL: 복사할 모델
  • DESTINATION_MODEL: 대상 데이터 세트의 모델 이름

예를 들면 다음과 같습니다.

mydataset.mymodelmydataset2로 복사하려면 다음 명령어를 입력합니다. 두 데이터 세트 모두 기본 프로젝트에 있고 US 멀티 리전 위치에서 생성되었습니다.

bq --location=US cp mydataset.mymodel mydataset2.mymodel

mydataset.mymodel을 복사하고 이름이 같은 대상 모델을 덮어쓰려면 다음 명령어를 입력합니다. 소스 데이터 세트는 기본 프로젝트에 있고, 대상 데이터 세트는 myotherproject에 있습니다. -f 단축키를 사용하면 확인 메시지 없이 대상 모델을 덮어쓸 수 있습니다. mydatasetmyotherdatasetUS 멀티 리전 위치에서 생성되었습니다.

bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel

mydataset.mymodel을 복사하고 대상 데이터 세트에 이름이 같은 모델이 있는 경우에 오류를 반환하려면 다음 명령어를 입력합니다. 소스 데이터 세트는 기본 프로젝트에 있고, 대상 데이터 세트는 myotherproject에 있습니다. -n 단축키를 사용하면 이름이 같은 모델을 덮어쓰지 않습니다. 두 데이터 세트 모두 US 멀티 리전 위치에서 생성되었습니다.

bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel

mydataset.mymodelmydataset2에 복사하고 모델 이름을 mymodel2로 바꾸려면 다음 명령어를 입력합니다. 두 데이터 세트 모두 기본 프로젝트에 있고, asia-northeast1 리전에서 생성되었습니다.

bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2

API를 사용하여 모델을 복사하려면 bigquery.jobs.insert 메서드를 호출하고 copy 작업을 구성합니다. 작업 리소스jobReference 섹션에 있는 location 속성에 사용자 위치를 지정합니다.

작업 구성에 다음 값을 지정해야 합니다.

"copy": {
      "sourceTable": {       // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "destinationTable": {  // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "createDisposition": string,  // Optional
      "writeDisposition": string,   // Optional
    },

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

  • sourceTable: 복사할 모델에 대한 정보를 제공합니다.
  • destinationTable: 새 모델에 대한 정보를 제공합니다.
  • createDisposition: 모델이 존재하지 않으면 모델을 만들지 여부를 지정합니다.
  • writeDisposition: 기존 모델을 덮어쓸지 여부를 지정합니다.

모델 암호화

고객 관리 암호화 키(CMEK)를 사용하여 모델을 암호화하는 방법에 대한 자세한 내용은 CMEK를 사용하여 BigQuery ML 모델 보호를 참조하세요.

다음 단계