モデルの管理

このページでは、モデルのコピーやモデル名の変更など、BigQuery ML モデルの管理方法について説明します。

モデル名の変更

現在、既存のモデル名は変更できません。モデル名を変更するには、手順に従ってモデルをコピーしてください。コピー先を指定するには、新しいモデル名を使用してください。

モデルのコピー

次の方法で、1 つ以上のモデルをソース データセットからコピー先のデータセットにコピーできます。

  • GCP Console を使用する
  • コマンドライン ツールの bq cp コマンドを使用する
  • jobs.insert API メソッドを直接呼び出して、コピージョブを構成するか、クライアント ライブラリを使用する。

モデルのコピーに関する制限

モデルのコピージョブには、以下の制限があります。

  • モデルをコピーするときは、モデルの作成時と同じ命名規則に従って、コピー先モデルに名前を付ける必要があります。
  • モデルのコピーは、コピージョブに関する BigQuery ML の割り当てポリシーに従います。
  • 現在、Google Cloud Platform Console の BigQuery ウェブ UI では、モデルをコピーできません。
  • モデルをコピーする際には、コピー先のデータセットが、コピー元のモデルを含んだデータセットと、同じロケーションにある必要があります。たとえば、EU にあるデータセットからモデルをコピーして、US にあるデータセットに書き込むことはできません。
  • 単一のコマンドで、複数のソースモデルをコピーすることはできません。
  • 現在、CLI を使用してモデルをコピーする際に、--destination_kms_key フラグは利用できません。

モデルのコピー

次の方法で、モデルをコピーできます。

  • コマンドライン ツールの bq cp コマンドを使用する
  • jobs.insert API メソッドを呼び出してコピージョブを構成するか、クライアント ライブラリを使用する

モデルをコピーするには:

Console

現在、GCP Console の BigQuery ウェブ UI では、モデルをコピーできません。

CLI

bq cp コマンドを実行します。オプション フラグは以下のとおりです。

  • -f または --force は、コピー先データセット内の既存のモデルを上書きし、確認のプロンプトを表示しません。
  • 次のコピー先データセットにモデルが存在する場合、-n--no_clobber は、以下のエラー メッセージを返します。'[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping

    -n を指定していない場合、デフォルトの動作として、コピー先モデルを置き換えるかどうかの選択を求めるプロンプトが表示されます。

コピー元またはコピー先のデータセットがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET] の形式でプロジェクト ID をデータセット名に追加します。

--location フラグを指定して、その値を該当するロケーションに設定します。

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

各項目の説明は次のとおりです。

  • [LOCATION] はロケーションの名前です。--location フラグは省略可能です。たとえば、Tokyo リージョンで BigQuery ML を使用している場合、フラグの値は asia-northeast1 に設定できます。.bigqueryrc ファイルを使用してロケーションのデフォルト値を設定できます。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は、コピー元またはコピー先データセットの名前です。
  • [SOURCE_MODEL] は、コピー中のモデルです。
  • [DESTINATION_MODEL] は、コピー先データセット内のモデルの名前です。

次に例を示します。

次のコマンドを入力して、mydataset.mymodelmydataset2 にコピーします。どちらのデータセットもデフォルト プロジェクト内にあり、US マルチリージョン ロケーションに作成されています。

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

次のコマンドを入力して mydataset.mymodel をコピーし、同じ名前でコピー先モデルを上書きします。コピー元データセットはデフォルト プロジェクトにあり、コピー先データセットは myotherproject にあります。-f ショートカットは、コピー先モデルをプロンプトなしで上書きするために使用します。mydatasetmyotherdataset は、US マルチリージョン ロケーションに作成されています。

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 では、既存のモデルを上書きするかどうかを指定します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...