データセットの管理

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

  • データセットの以下の情報を更新する
    • 説明
    • 新しいテーブルのデフォルトの有効期限
    • アクセス制御
    • ラベル
  • データセットの名前を変更する(データセットを再作成する)
  • データセットをコピー(再作成)する
  • データセットを削除する

データセットの一覧表示、データセットに関する情報の取得、データセットのアクセス制御の設定など、データセットの作成と使用の詳細については、データセットの作成と使用をご覧ください。

データセットのプロパティの更新

データセットの以下の情報を更新できます。

必要な権限

データセットのプロパティを更新するユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.datasets.update 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。事前定義されたプロジェクト レベルの IAM 役割のうち、bigquery.datasets.update 権限を含むものは以下のとおりです。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセットを更新できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。 データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

データセットの説明の更新

データセットの説明を更新するには、BigQuery ウェブ UI、bq update CLI コマンド、または datasets.patch API メソッドを使用します。

データセットの説明を更新するには:

ウェブ UI

  1. ナビゲーション ペインでデータセットを選択します。

  2. [Dataset Details] ページの [Description] セクションで、[Describe this dataset] をクリックして説明ボックスを開きます(そのデータセットに説明がない場合)。すでに説明がある場合は、そのテキストをクリックします。

  3. 説明をボックスに入力するか、既存の説明を編集します。ボックスの外側をクリックすると、テキストが保存されます。

    データセットの説明

CLI

bq update コマンドを発行して --description フラグを指定します。更新するデータセットがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET] の形式でプロジェクト ID をデータセット名に追加します。

bq update --description "[DESCRIPTION]" [PROJECT_ID]:[DATASET]

ここで:

  • [DESCRIPTION] はデータセットを説明するテキストで、引用符で囲みます。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は、更新するデータセットの名前です。

例:

mydataset の説明を「Description of mydataset」に変更するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトにあります。

bq update --description "Description of mydataset" mydataset

mydataset の説明を「Description of mydataset」に変更するには、次のコマンドを入力します。このデータセットはデフォルト プロジェクトではなく myotherproject にあります。

bq update --description "Description of mydataset" myotherproject:mydataset

API

datasets.patch を呼び出し、description プロパティを使用してデータセットの説明を適用します。datasets.update メソッドはデータセット リソース全体を置き換えるため、datasets.patch メソッドの方が適切です。

Go

ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
	return err
}
update := bigquery.DatasetMetadataToUpdate{
	Description: "Updated Description.",
}
if _, err = ds.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Java

Dataset.Builder インスタンスを、Dataset.toBuilder() メソッドを使用して既存の Dataset インスタンスから作成します。データセット ビルダー オブジェクトを構成します。Dataset.Builder.build() メソッドを使用して更新したデータセットを作成し、Dataset.update() メソッドを呼び出してその更新を API に送信します。
Dataset oldDataset = bigquery.getDataset(datasetName);
DatasetInfo datasetInfo = oldDataset.toBuilder().setDescription(newDescription).build();
Dataset newDataset = bigquery.update(datasetInfo);

Python

Dataset.description プロパティを構成し、Client.update_dataset() を呼び出して API に更新を送信します。

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

assert dataset.description == 'Original description.'
dataset.description = 'Updated description.'

dataset = client.update_dataset(dataset, ['description'])  # API request

assert dataset.description == 'Updated description.'

デフォルトのテーブル有効期限の更新

データセットのデフォルトのテーブル有効期限を更新するには、BigQuery ウェブ UI、bq update CLI コマンド、または datasets.patch API メソッドを使用します。

データセット レベルでデフォルトのテーブル有効期限を設定できます。また、テーブルの作成時にそのテーブルの有効期限を設定することもできます。テーブルの作成時に有効期限を設定した場合、データセットのデフォルトのテーブル有効期限は無視されます。データセット レベルでデフォルトのテーブル有効期限を設定せず、テーブルの作成時にもテーブル有効期限を設定しなかった場合、テーブルは無期限に有効になります。このようなテーブルは手動で削除する必要があります。

データセットのデフォルトのテーブル有効期限設定を更新するときの規則は以下のとおりです。

  • 値を Never から有限の有効期限に変更する場合、そのデータセット内にすでに存在するテーブルが期限切れになることはありません(そのテーブルの作成時に有効期限が設定されている場合は除く)。
  • デフォルトのテーブル有効期限の値を変更する場合、すでに存在するテーブルの有効期限は変更前のテーブル有効期限の設定に従います。そのデータセット内に新規作成されたテーブルには、新しいテーブル有効期限設定が適用されます(ただし、そのテーブルの作成時に別のテーブル有効期限を指定した場合は除く)。

デフォルトのテーブル有効期限の表し方は、どの方法で値を設定するかによって異なります。適切な粒度の方法を使用してください。

  • BigQuery ウェブ UI では、有効期限は日数で表されます。
  • コマンドライン ツールでは、有効期限は秒数で表されます。
  • API では、有効期限はミリ秒数で表されます。

データセットのデフォルトの有効期限を更新するには:

ウェブ UI

ウェブ UI を使用してデフォルトの有効期限を更新するには、次の手順に沿います。

  1. ナビゲーション ペインでデータセットを選択します。

  2. [Dataset Details] ページの [Details] セクションで、[Default Table Expiration] の右側にある [Edit] をクリックします。

    テーブルの有効期限

  3. [Update Expiration] ダイアログで、[Data expiration] の [In] をクリックして新しい有効期限を日数で入力します。デフォルト値は [Never] です。

CLI

データセット内に新しく作成されるテーブルのデフォルト有効期限を更新するには、bq update コマンドで --default_table_expiration フラグを指定します。更新するデータセットがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET] の形式でプロジェクト ID をデータセット名に追加します。

bq update --default_table_expiration [INTEGER] [PROJECT_ID]:[DATASET]

ここで:

  • [INTEGER] は、新しく作成されるテーブルのデフォルトの存続期間(秒数)です。最小値は 3,600 秒(1 時間)です。現在時刻にこの整数値を足した値が有効期限になります。0 を指定すると、既存の有効期限が削除されます。データセット内に作成されたテーブルは、作成時点から [INTEGER] 秒後に削除されます。この値が適用されるのは、テーブルの作成時にテーブル有効期限を設定しなかった場合です。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は、更新するデータセットの名前です。

例:

mydataset 内に新規作成されるテーブルのデフォルトの有効期限を現在時刻から 2 時間(7,200 秒)後に設定するには、次のコマンドを入力します。このデータセットはデフォルト プロジェクトにあります。

bq update --default_table_expiration 7200 mydataset

mydataset 内に新規作成されるテーブルのデフォルトの有効期限を現在時刻から 2 時間(7,200 秒)後に設定するには、次のコマンドを入力します。このデータセットはデフォルト プロジェクトではなく myotherproject にあります。

bq update --default_table_expiration 7200 myotherproject:mydataset

API

datasets.patch を呼び出し、defaultTableExpirationMs プロパティを使用してデフォルトのテーブル有効期限をミリ秒単位で設定します。datasets.update メソッドはデータセット リソース全体を置き換えるため、datasets.patch メソッドの方が適切です。

Go

ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
	return err
}
update := bigquery.DatasetMetadataToUpdate{
	DefaultTableExpiration: 24 * time.Hour,
}
if _, err := client.Dataset(datasetID).Update(ctx, update, meta.ETag); err != nil {
	return err
}

Java

Dataset.Builder インスタンスを、Dataset.toBuilder() メソッドを使用して既存の Dataset インスタンスから作成します。データセット ビルダー オブジェクトを構成します。Dataset.Builder.build() メソッドを使用して更新したデータセットを作成し、Dataset.update() メソッドを呼び出して API に更新を送信します。

Dataset.Builder.setDefaultTableLifetime() メソッドを使用して、デフォルトの有効期限を構成します。

Long beforeExpiration = dataset.getDefaultTableLifetime();

Long oneDayMilliseconds = 24 * 60 * 60 * 1000L;
DatasetInfo.Builder builder = dataset.toBuilder();
builder.setDefaultTableLifetime(oneDayMilliseconds);
bigquery.update(builder.build());  // API request.

Python

Dataset.default_table_expiration_ms プロパティを構成し、Client.update_dataset() を呼び出して API に更新を送信します。

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

assert dataset.default_table_expiration_ms is None
one_day_ms = 24 * 60 * 60 * 1000  # in milliseconds
dataset.default_table_expiration_ms = one_day_ms

dataset = client.update_dataset(
    dataset, ['default_table_expiration_ms'])  # API request

assert dataset.default_table_expiration_ms == one_day_ms

データセットのアクセス制御の更新

データセットのアクセス制御を更新するプロセスは、アクセス制御をデータセットに割り当てるプロセスと非常によく似ています。BigQuery ウェブ UI またはコマンドライン ツールでデータセットを作成するときにアクセス制御を適用することはできません。まずデータセットを作成してから、データセットのアクセス制御を更新する必要があります。API では、datasets.patch メソッドを呼び出してデータセットのアクセス制御を更新できます。

必要な権限

データセットのアクセス制御の割り当てまたは更新を行うユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.datasets.update 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。事前定義されたプロジェクト レベルの IAM 役割のうち、bigquery.datasets.update 権限を含むものは以下のとおりです。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセットを更新できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。 データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

データセットのアクセス制御の更新

データセットのアクセス制御を更新するときは、以下のユーザーとグループのアクセス権を変更できます。

  • User by e-mail - 個々の Google アカウントにデータセットへのアクセスが許可されます。
  • Group by e-mail - Google グループのすべてのメンバーにデータセットへのアクセスが許可されます。
  • Domain - Google ドメイン内のすべてのユーザーとグループにデータセットへのアクセスが許可されます。
  • All Authenticated Users - すべての Google アカウント所有者にデータセットへのアクセスが許可されます(データセットが公開されます)。
  • Project Owners - すべてのプロジェクト オーナーにデータセットへのアクセスが許可されます。
  • Project Viewers - すべてのプロジェクト閲覧者にデータセットへのアクセスが許可されます。
  • Project Editors - すべてのプロジェクト編集者にデータセットへのアクセスが許可されます。
  • Authorized View - データセットに対する表示アクセスだけが許可されます。

データセットのアクセス制御を更新するには:

ウェブ UI

  1. データセットの右側にあるプルダウン矢印をクリックし、[Share Dataset] を選択します。

  2. [Share Dataset] ダイアログで、既存のエントリに変更を加えます。

    • 既存のエントリを削除するには、ユーザー、グループ、またはサービス アカウントの右にある X アイコンをクリックします。
    • ユーザー、グループ、またはサービス アカウントの権限を変更するには、権限ボタンをクリックして Is ownerOWNER)、Can editWRITER)、Can viewREADER)から適切なアクセスレベルを選択します。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。
  3. [Share Dataset] ダイアログで、新しいエントリを追加します。

    1. [Add People] フィールドの左にあるプルダウンをクリックして適切なオプションを選択します。

    2. テキスト ボックスに値を入力します。たとえば、[User by e-mail] を選択した場合は、ユーザーのメールアドレスを入力します。

    3. [Add People] フィールドの右側にある [Can view] をクリックし、リストから該当する役割を選択します。

      データセットに個人を追加

      • [Can view](READER)を選択すると、データセットに対する bigquery.dataViewer アクセス権が付与されます。
      • [Can edit](WRITER)を選択すると、データセットに対する bigquery.dataEditor アクセス権が付与されます。
      • [Is owner](OWNER)を選択すると、データセットに対する bigquery.dataOwner アクセス権が付与されます。
    4. [Add] をクリックします。

  4. アクセス制御の追加、削除、変更が完了したら、[Save changes] をクリックします。

  5. 設定したアクセス制御を確認するには、データセットの右にあるプルダウン矢印をクリックして [Share Dataset] を選択します。[Share Dataset] ダイアログで設定を確認します。

コマンドライン

  1. show コマンドを使用して、既存のデータセット情報(これにはアクセス制御も含まれます)を JSON ファイルに書き込みます。データセットがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET] の形式でプロジェクト ID をデータセット名に追加します。

    bq show --format=prettyjson [PROJECT_ID]:[DATASET] > [PATH_TO_FILE]
    

    ここで:

    • [PROJECT_ID] はプロジェクト ID です。
    • [DATASET] は、データセットの名前です。
    • [PATH_TO_FILE] は、ローカルマシン上の JSON ファイルへのパスです。

    例:

    次のコマンドを入力すると、mydataset のアクセス制御が JSON ファイルに書き込まれます。mydataset はデフォルト プロジェクトにあります。

    bq show --format=prettyjson mydataset > /tmp/mydataset.json
    

    次のコマンドを入力すると、mydataset のアクセス制御が JSON ファイルに書き込まれます。mydatasetmyotherproject にあります。

    bq show --format=prettyjson myotherproject:mydataset > /tmp/mydataset.json
    
  2. JSON ファイルの "access" セクションに変更を加えます。specialGroup のエントリ(projectOwnersprojectWritersprojectReadersallAuthenticatedUsers)を自由に追加または削除できます。さらに、userByEmailgroupByEmaildomain を追加、削除、変更することもできます。

    たとえば、データセットの JSON ファイルの access セクションは次のようになります。

    {
     "access": [
      {
       "role": "READER",
       "specialGroup": "projectReaders"
      },
      {
       "role": "WRITER",
       "specialGroup": "projectWriters"
      },
      {
       "role": "OWNER",
       "specialGroup": "projectOwners"
      }
      {
       "role": "READER",
       "specialGroup": "allAuthenticatedUsers"
      }
      {
       "role": "READER",
       "domain": "[DOMAIN_NAME]"
      }
      {
       "role": "WRITER",
       "userByEmail": "[USER_EMAIL]"
      }
      {
       "role": "READER",
       "groupByEmail": "[GROUP_EMAIL]"
      }
     ],
    }
    

  3. 編集が完了したら、update コマンドを実行します。その際、--source フラグを使用して JSON ファイルを指定します。データセットがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET] の形式でプロジェクト ID をデータセット名に追加します。

    bq update --source [PATH_TO_FILE] [PROJECT_ID]:[DATASET]
    

    ここで:

    • [PATH_TO_FILE] は、ローカルマシン上の JSON ファイルへのパスです。
    • [PROJECT_ID] はプロジェクト ID です。
    • [DATASET] は、データセットの名前です。

    例:

    次のコマンドを入力すると、mydataset のアクセス制御が更新されます。mydataset はデフォルト プロジェクトにあります。

    bq update --source /tmp/mydataset.json mydataset
    

    次のコマンドを入力すると、mydataset のアクセス制御が更新されます。mydatasetmyotherproject にあります。

    bq update --source /tmp/mydataset.json myotherproject:mydataset
    
  4. アクセス制御の変更を確認するには、show コマンドをもう一度入力します。ただし、今回は情報をファイルに書き込む指定を省略します。

    bq show --format=prettyjson [DATASET]

    または

    bq show --format=prettyjson [PROJECT_ID]:[DATASET]

API

datasets.patch を呼び出し、access プロパティを使用してアクセス制御を更新します。詳細については、データセットをご覧ください。

datasets.update メソッドはデータセット リソース全体を置き換えるため、アクセス制御の更新には datasets.patch メソッドの方が適切です。

Go

ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
	return err
}
// Append a new access control entry to the existing access list.
update := bigquery.DatasetMetadataToUpdate{
	Access: append(meta.Access, &bigquery.AccessEntry{
		Role:       bigquery.ReaderRole,
		EntityType: bigquery.UserEmailEntity,
		Entity:     "sample.bigquery.dev@gmail.com"},
	),
}

// Leverage the ETag for the update to assert there's been no modifications to the
// dataset since the metadata was originally read.
if _, err := ds.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Java

Dataset.Builder インスタンスを、Dataset.toBuilder() メソッドを使用して既存の Dataset インスタンスから作成します。データセット ビルダー オブジェクトを構成します。Dataset.Builder.build() メソッドを使用して更新したデータセットを作成し、Dataset.update() メソッドを呼び出して API に更新を送信します。

Dataset.Builder.setAcl() メソッドを使用して、アクセス制御を構成します。

List<Acl> beforeAcls = dataset.getAcl();

// Make a copy of the ACLs so that they can be modified.
ArrayList<Acl> acls = new ArrayList<>(beforeAcls);
acls.add(Acl.of(new Acl.User("sample.bigquery.dev@gmail.com"), Acl.Role.READER));
DatasetInfo.Builder builder = dataset.toBuilder();
builder.setAcl(acls);

bigquery.update(builder.build());  // API request.

Python

dataset.access_entries プロパティを使用してデータセットのアクセス制御を設定します。次に、client.update_dataset() 関数を呼び出してプロパティを更新します。

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset = client.get_dataset(client.dataset('my_dataset'))

entry = bigquery.AccessEntry(
    role='READER',
    entity_type='userByEmail',
    entity_id='sample.bigquery.dev@gmail.com')
assert entry not in dataset.access_entries
entries = list(dataset.access_entries)
entries.append(entry)
dataset.access_entries = entries

dataset = client.update_dataset(dataset, ['access_entries'])  # API request

assert entry in dataset.access_entries

データセットの名前の変更

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

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

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

  3. 新しいデータセットでビューを再作成します。

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

データセットのコピー

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

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

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

  3. 新しいデータセットでビューを再作成します。

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

データセットの削除

データセットを削除するには、BigQuery ウェブ UI、bq rm CLI コマンド、または datasets.delete API メソッドを使用します。

必要な権限

データセットを削除するユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.datasets.delete 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。データセットにテーブルが含まれている場合は、bigquery.tables.delete も必要です。事前定義されたプロジェクト レベルの IAM 役割のうち、bigquery.datasets.deletebigquery.tables.delete の両方の権限を含むものは以下のとおりです。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセットを削除できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。 データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

データセットの削除

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

データセットを削除した後、そのデータセットを復元したり、削除を取り消したりすることできません。データセットの削除は永続的です。

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

ウェブ UI

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

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

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

      データセットの削除

コマンドライン

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

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

bq rm -r -f -d [PROJECT_ID]:[DATASET]

ここで:

  • [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

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

Java

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

// Imports the Google Cloud client library
const BigQuery = require('@google-cloud/bigquery');

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = "your-project-id";
// const datasetId = "my_dataset";

// Creates a client
const bigquery = new BigQuery({
  projectId: projectId,
});

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

// Deletes the dataset
dataset
  .delete()
  .then(() => {
    console.log(`Dataset ${dataset.id} deleted.`);
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

Python

# from google.cloud import bigquery
# client = bigquery.Client()

# Delete a dataset that does not contain any tables
# dataset1_id = 'my_empty_dataset'
dataset1_ref = client.dataset(dataset1_id)
client.delete_dataset(dataset1_ref)  # API request

print('Dataset {} deleted.'.format(dataset1_id))

# Use the delete_contents parameter to delete a dataset and its contents
# dataset2_id = 'my_dataset_with_tables'
dataset2_ref = client.dataset(dataset2_id)
client.delete_dataset(dataset2_ref, delete_contents=True)  # API request

print('Dataset {} deleted.'.format(dataset2_id))

Ruby

# project_id = "Your Google Cloud project ID"
# dataset_id = "ID of the dataset to delete"

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new project: project_id
dataset  = bigquery.dataset dataset_id

dataset.delete

puts "Deleted dataset: #{dataset_id}"

次のステップ

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

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

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