テーブル クローンを作成する
このドキュメントには、CREATE TABLE CLONE
SQL ステートメント、bq cp
コマンドまたは jobs.insert
API 呼び出しを使用して、テーブルをテーブル クローンにコピーする方法が記載されています。このドキュメントは、テーブル クローンに精通しているユーザーを対象としています。
権限とロール
このセクションでは、テーブル クローンの作成に必要な Identity and Access Management(IAM)権限と、その権限を付与する IAM 事前定義ロールについて説明します。
権限
テーブル クローンを作成するには、次の権限が必要です。
権限 | リソース |
---|---|
次のすべて:bigquery.tables.get bigquery.tables.getData |
クローンを作成するテーブル。 |
bigquery.tables.create bigquery.tables.updateData
|
テーブル クローンを含むデータセット。 |
ロール
必要な権限を持つ BigQuery 事前定義ロールは次のとおりです。
ロール | リソース |
---|---|
次のいずれか:bigquery.dataViewer bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
クローンを作成するテーブル。 |
次のいずれか:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
新しいテーブル クローンを含むデータセット。 |
テーブル クローンを作成する
GoogleSQL、bq コマンドライン ツール、または BigQuery API を使用して、テーブル クローンを作成します。
SQL
テーブル クローンを作成するには、CREATE TABLE CLONEステートメントを使用します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
CREATE TABLE myproject.myDataset_backup.myTableClone CLONE myproject.myDataset.myTable;
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
次のように置き換えます。
PROJECT
は、ターゲット プロジェクトのプロジェクト ID です。このプロジェクトは、クローンを作成するテーブルを含むプロジェクトと同じ組織に存在する必要があります。DATASET
は、ターゲット データセットの名前です。 このデータセットは、クローンを作成するテーブルを含むデータセットと同じリージョンに存在する必要があります。CLONE_NAME
は、作成するテーブル クローンの名前です。
bq
bq cp
コマンドを使用し、--clone
フラグを指定します。
bq cp --clone -n project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME
次のように置き換えます。
PROJECT
は、ターゲット プロジェクトのプロジェクト ID です。このプロジェクトは、クローンを作成するテーブルを含むプロジェクトと同じ組織に存在する必要があります。DATASET
は、ターゲット データセットの名前です。 このデータセットは、クローンを作成するテーブルを含むデータセットと同じリージョンに存在する必要があります。クローンを作成するテーブルを含むデータセットと同じリージョンにデータセットがない場合は、テーブル全体がコピーされます。CLONE_NAME
は、作成するテーブル クローンの名前です。
ベーステーブルと同じプロジェクトでクローンを作成する場合は、次に示すように、プロジェクトの指定をスキップできます。
bq cp --clone -n myDataset.myTable DATASET.CLONE_NAME
API
operationType
フィールドを CLONE
に設定して jobs.insert
メソッドを呼び出します。
パラメータ | 値 |
---|---|
projectId |
ジョブを実行するプロジェクトのプロジェクト ID。 |
リクエストの本文 | { "configuration": { "copy": { "sourceTables": [ { "projectId": "myProject", "datasetId": "myDataset", "tableId": "myTable" } ], "destinationTable": { "projectId": "PROJECT", "datasetId": "DATASET", "tableId": "CLONE_NAME" }, "operationType": "CLONE", "writeDisposition": "WRITE_EMPTY", } } } |
次のように置き換えます。
PROJECT
は、ターゲット プロジェクトのプロジェクト ID です。このプロジェクトは、クローンを作成するテーブルを含むプロジェクトと同じ組織に存在する必要があります。DATASET
は、ターゲット データセットの名前です。 このデータセットは、クローンを作成するテーブルを含むデータセットと同じリージョンに存在する必要があります。クローンを作成するテーブルを含むデータセットと同じリージョンにデータセットがない場合は、テーブル全体がコピーされます。CLONE_NAME
は、作成するテーブル クローンの名前です。
アクセス制御
テーブル クローンを作成すると、テーブル クローンへのアクセスは次のように設定されます。
- 行レベルのアクセス ポリシーは、ベーステーブルからテーブル クローンにコピーされます。
- 列レベルのアクセス ポリシーは、ベーステーブルからテーブル クローンにコピーされます。
テーブルレベルのアクセスは次のように決定されます。
次のステップ
- テーブル クローンを作成した後は、標準テーブルと同じように使用できます。詳細については、テーブルを管理するをご覧ください。