このページでは、モデルのコピーやモデル名の変更など、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.mymodel
を mydataset2
にコピーします。どちらのデータセットもデフォルト プロジェクト内にあり、US
マルチリージョン ロケーションに作成されています。
bq --location=US cp mydataset.mymodel mydataset2.mymodel
次のコマンドを入力して mydataset.mymodel
をコピーし、同じ名前でコピー先モデルを上書きします。コピー元データセットはデフォルト プロジェクトにあり、コピー先データセットは myotherproject
にあります。-f
ショートカットは、コピー先モデルをプロンプトなしで上書きするために使用します。mydataset
と myotherdataset
は、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.mymodel
を mydataset2
にコピーし、モデル 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
では、既存のモデルを上書きするかどうかを指定します。
次のステップ
- BigQuery ML の概要で BigQuery ML の概要を確認する。
- BigQuery ML の使用を開始するために、ウェブ UI を使用した BigQuery ML スタートガイドを確認する。
- モデルを使った作業の詳細については、以下をご覧ください。