모델 관리

이 페이지에서는 모델 복사 및 모델 이름 바꾸기를 포함하여 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 메서드를 호출하여 복사 작업 구성 또는 클라이언트 라이브러리 사용

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

콘솔

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

bq

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

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 모델 보호를 참조하세요.

다음 단계