データセットの管理

このドキュメントでは、BigQuery でデータセットを管理する方法について説明します。データセットを作成した後、以下のようにデータセットを管理できます。

データセットの名前変更

現時点では、既存のデータセットの名前を変更することはできず、データセットをコピーして新しい名前を付けることもできません。データセット名を変更する必要がある場合は、以下の手順に従ってデータセットを再作成してください。

  1. 新しいデータセットを作成し、新しい名前を指定します。

  2. 元のデータセットから新しいデータセットにテーブルをコピーします。

  3. 新しいデータセットにビューをコピーするか、新しいデータセット内でビューを再作成します。

  4. 追加のストレージ費用を避けるために、元のデータセットを削除します。

データセットのコピー

現時点では、データセットをコピーすることはできません。代わりに、以下の手順に従ってデータセットを再作成してください。

  1. 新しいデータセットを作成します。データセット名はプロジェクト内で一意でなければならないため、同じプロジェクト内で再作成する場合はデータセットの名前を変える必要があります。

  2. 元のデータセットから新しいデータセットにテーブルをコピーします。

  3. 新しいデータセットにビューをコピーするか、新しいデータセット内でビューを再作成します。

  4. 追加のストレージ費用を避けるために、元のデータセットを削除します。

データセットの削除

次の方法でデータセットを削除できます。

  • GCP Console または従来の BigQuery ウェブ UI を使用する
  • bq rm CLI コマンドを使用する
  • datasets.delete API メソッドを呼び出す
  • クライアント ライブラリを使用する

必要な権限

データセットを削除するには、少なくとも bigquery.datasets.delete 権限が付与されている必要があります。データセットにテーブルまたはビューが含まれている場合は、bigquery.tables.delete も必要です。事前定義された次の IAM 役割には、bigquery.datasets.deletebigquery.tables.delete の両方の権限が含まれています。

  • bigquery.dataOwner
  • bigquery.admin

また、bigquery.datasets.create 権限があるユーザーがデータセットを作成すると、作成したデータセットに対する bigquery.dataOwner アクセス権がそのユーザーに付与されます。 bigquery.dataOwner アクセス権により、ユーザーは自身が作成したデータセットとテーブルを削除できます。

BigQuery での Cloud IAM 役割と権限については、アクセス制御をご覧ください。

データセットの削除

GCP Console または従来のウェブ UI を使用してデータセットを削除すると、そのデータセット内のテーブルとビュー(およびその中のデータ)も削除されます。CLI を使用してデータセットを削除する場合、データセットのテーブルとビューも削除するには -r フラグを使用する必要があります。

データセットを削除するには:

Console

  1. [リソース] パネルからデータセットを選択し、ウィンドウの右側にある [データセットを削除] をクリックします。

    データセットの削除

  2. [データセットの削除] ダイアログで、テキスト ボックスにデータセットの名前を入力し、[削除] をクリックします。

従来の UI

  1. ナビゲーション内のデータセット名の横にある下矢印アイコン 下矢印アイコン をクリックし、[Delete dataset] をクリックします。

  2. [Delete Dataset] ダイアログで、次の操作を行います。

    • [Dataset ID] に、削除するデータセットの名前を入力します。
    • [OK] をクリックします。

CLI

データセットを削除するには、(オプションの)--dataset フラグまたは -d ショートカット フラグを指定した bq rm コマンドを使用します。CLI を使用してデータセットを削除する場合は、コマンドを確認する必要があります。-f フラグを使用すると、確認をスキップできます。

また、データセット内にテーブルがある場合は、-r フラグを使用してデータセット内のすべてのテーブルを削除する必要があります。削除するテーブルがデフォルト プロジェクト以外のプロジェクトに含まれている場合は、project_id:dataset の形式でそのプロジェクト ID をデータセット名に追加します。

bq rm -r -f -d <var>project_id:dataset</var>

ここで

  • project_id は、プロジェクト ID です。
  • dataset は、削除するデータセットの名前です。

例:

mydataset とそこに含まれるテーブルをデフォルト プロジェクトから削除するには、次のコマンドを入力します。このコマンドではオプションの -d ショートカットを使用しています。

bq rm -r -d mydataset

プロンプトが表示されたら、「y」と入力して Enter キーを押します。

mydataset とそこに含まれるすべてのテーブルを myotherproject から削除するには、次のコマンドを入力します。このコマンドではオプションの -d ショートカットを使用していません。確認をスキップするために -f フラグを使用しています。

bq rm -r -f myotherproject:mydataset

API

datasets.delete メソッドを呼び出してデータセットを削除します。その際、データセット内のテーブルも削除するには、deleteContents パラメータを true に設定します。

Go

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用にある Go 向けの手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。

if err := client.Dataset(datasetID).Delete(ctx); err != nil {
	return fmt.Errorf("Failed to delete dataset: %v", err)
}

Java

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

DatasetId datasetId = DatasetId.of(projectId, datasetName);
boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
if (deleted) {
  // the dataset was deleted
} else {
  // the dataset was not found
}

Node.js

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用にある Node.js 向けの設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function deleteDataset() {
  // Deletes a dataset named "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = 'my_dataset';

  // Create a reference to the existing dataset
  const dataset = bigquery.dataset(datasetId);

  // Delete the dataset and its contents
  await dataset.delete({force: true});
  console.log(`Dataset ${dataset.id} deleted.`);
}

PHP

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の PHP の設定手順を実施してください。詳細については、BigQuery PHP API のリファレンス ドキュメントをご覧ください。

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->delete();
printf('Deleted dataset %s' . PHP_EOL, $datasetId);

Python

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用にある Python 向けの手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set model_id to the ID of the model to fetch.
# dataset_id = 'your-project.your_dataset'

# Use the delete_contents parameter to delete a dataset and its contents
# Use the not_found_ok parameter to not receive an error if the dataset has already been deleted.
client.delete_dataset(dataset_id, delete_contents=True, not_found_ok=True)

print("Deleted dataset '{}'.".format(dataset_id))

Ruby

このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Ruby の設定手順を実施してください。詳細については、BigQuery Ruby API のリファレンス ドキュメントをご覧ください。

require "google/cloud/bigquery"

def delete_dataset dataset_id = "my_empty_dataset"
  bigquery = Google::Cloud::Bigquery.new

  # Delete a dataset that does not contain any tables
  dataset = bigquery.dataset dataset_id
  dataset.delete
  puts "Dataset #{dataset_id} deleted."
end

次のステップ

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

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

ご不明な点がありましたら、Google のサポートページをご覧ください。