データセットの作成

このドキュメントでは、BigQuery でデータセットを作成する方法について説明します。

データセットを作成するには:

  • GCP Console または従来の BigQuery ウェブ UI を使用する
  • bq mk CLI コマンドを使用する
  • datasets.insert API メソッドを呼び出す
  • クライアント ライブラリを使用する
  • 既存のデータセットをコピーする

データセットをコピーする手順(リージョン間でのコピーを含む)については、データセットのコピーをご覧ください。

データセットの制限事項

BigQuery データセットには次の制限があります。

  • 地理的なロケーションは作成時にのみ設定できます。データセットが作成されると、そのロケーションは不変になり、GCP Console、従来の BigQuery ウェブ UI、コマンドライン ツールを使用したり、API の patch メソッドや update メソッドを呼び出したりして変更することはできません。
  • 1 つのクエリで参照されるすべてのテーブルは、同じロケーションにあるデータセット内に保存されている必要があります。

  • テーブルをコピーする場合、コピー元とコピー先のテーブルが同じロケーションに存在する必要があります。

  • データセット名はプロジェクトごとに一意である必要があります。

  • プロジェクト内の何千ものデータセットにアクセスすると、従来の UI のパフォーマンスが低下し、データセットの一覧表示が遅くなります。

データセットの命名

BigQuery でデータセットを作成するとき、データセット名はプロジェクトごとに一意にする必要があります。データセット名の規則は以下のとおりです。

  • 1,024 文字以内
  • 使用できる文字は英字(大文字または小文字)、数字、アンダースコアのみ

  • 英字の大文字と小文字が区別される(mydatasetMyDataset は同じプロジェクト内に共存できます)

次のようなデータセット名は使用できません。

  • スペースまたは特殊文字(-、&、@、% など)が含まれる

必要な権限

データセットを作成するには、少なくとも bigquery.datasets.create 権限が付与されている必要があります。bigquery.datasets.create 権限は、次の事前定義された Cloud IAM 役割に含まれています。

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.user
  • bigquery.admin

BigQuery での Cloud IAM 役割と権限については、事前定義された役割と権限をご覧ください。

データセットの作成

データセットを作成するには:

Console

  1. GCP Console で BigQuery ウェブ UI を開きます。

    GCP Console に移動する

  2. ナビゲーション パネルの [リソース] セクションで、プロジェクトを選択します。

  3. ウィンドウの右側の詳細パネルで、[データセットを作成] をクリックします。

  4. [データセットを作成] ページで次の操作を行います。

    • [データセット ID] に、データセットの一意の名前を入力します。
    • (省略可能)[データのロケーション] で、データセットの地理的なロケーションを選択します。値を [デフォルト] に設定したままにすると、ロケーションは US に設定されます。データセットの作成後はロケーションを変更できません。

    • [デフォルトのテーブルの有効期限] で、以下のいずれかのオプションを選択します。

      • 無期限: (デフォルト)データセット内に作成されたテーブルが自動的に削除されることはありません。テーブルを削除する場合は、手動で削除する必要があります。
      • テーブル作成後の日数: この値は、データセット内に新しく作成されたテーブルがいつ削除されるかを決定します。この値が適用されるのは、テーブルの作成時にテーブルの有効期限を設定しなかった場合です。
    • [データセットを作成] をクリックします。

従来の UI

  1. ナビゲーション内のプロジェクト名の横にある下矢印アイコン 下矢印アイコン をクリックし、[Create new dataset] をクリックします。

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

    • [Dataset ID] に、一意のデータセット名を入力します。
    • [Data location] で、データセットのロケーションを選択します。デフォルト値は [Unspecified] です。この場合、データセットのロケーションは US に設定されます。データセットの作成後はロケーションを変更できません。

    • [Data expiration] で、以下のいずれかのオプションを選択します。

      • Never: (デフォルト)データセット内に作成されたテーブルが自動的に削除されることはありません。テーブルを削除する場合は、手動で削除する必要があります。
      • In integer days: データセット内に作成されたテーブルは、作成時点から integer 日後に削除されます。この値が適用されるのは、テーブルの作成時にテーブルの有効期限を設定しなかった場合です。

        [Data expiration] は、データセットで作成される新しいテーブルのデフォルトのテーブル有効期限を指します。BigQuery のウェブ UI では、現在のところデータセットの作成時にデフォルトのパーティション有効期限を設定できません。デフォルトのパーティション有効期限は、データセットの作成後にコマンドライン ツールまたは API を使用して設定できます。

    • [OK] をクリックします。

CLI

新しいデータセットを作成するには、--location フラグを指定した bq mk コマンドを使用します。また、--default_table_expiration--default_partition_expiration--description の各パラメータを任意で指定することもできます。

デフォルト プロジェクト以外のプロジェクト内にデータセットを作成するには、project_id:dataset の形式でそのプロジェクト ID をデータセット名に追加します。

bq --location=location mk \
--dataset \
--default_table_expiration integer1 \
--default_partition_expiration integer2 \
--description description \
project_id:dataset

ここで

  • location は、データセットのロケーションです。データセットを作成した後にロケーションを変更することはできません。ロケーションのデフォルト値は、.bigqueryrc ファイルを使用して設定できます。

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

  • integer2 は、新しく作成されるパーティション分割テーブルのパーティションのデフォルトの存続期間(秒数)です。デフォルトのパーティション有効期限には最小値はありません。パーティションの日付にこの整数値を足した値が有効期限になります。データセット内に作成された分割テーブルのパーティションは、作成時点から [INTEGER2] 秒後に削除されます。パーティション分割テーブルの作成時または更新時に --time_partitioning_expiration フラグを指定した場合、データセット レベルのデフォルトのパーティション有効期限よりもテーブルレベルのパーティション有効期限が優先されます。

  • description は、引用符で囲んだデータセットの説明です。

  • project_id は、プロジェクト ID です。

  • dataset は、作成するデータセットの名前です。

たとえば、次のコマンドを実行すると mydataset という名前のデータセットが作成され、データのロケーションは US、デフォルトのテーブル存続期間は 3,600 秒(1 時間)、説明は「This is my dataset」に設定されます。このコマンドでは、--dataset フラグの代わりに -d ショートカットを使用しています。-d--dataset を省略した場合、このコマンドはデフォルトでデータセットを作成します。

bq --location=US mk -d \
--default_table_expiration 3600 \
--description "This is my dataset." \
mydataset

API

定義済みのデータセット リソースを使用して datasets.insert メソッドを呼び出します。

C#

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


using Google.Cloud.BigQuery.V2;
using System;

public class BigQueryCreateDataset
{
    public BigQueryDataset CreateDataset(
        string projectId = "your-project-id",
        string location = "US"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        var createDatasetOptions = new CreateDatasetOptions()
        {
            // Specify the geographic location where the dataset should reside.
            Location = location
        };
        // Create the dataset
        return client.CreateDataset(
            datasetId: "your_new_dataset_id", options: createDatasetOptions);
    }
}

Go

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

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
meta := &bigquery.DatasetMetadata{
	Location: "US", // Create the dataset in the US.
}
if err := client.Dataset(datasetID).Create(ctx, meta); err != nil {
	return err
}

Java

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

Dataset dataset = null;
DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
try {
  // the dataset was created
  dataset = bigquery.create(datasetInfo);
} catch (BigQueryException e) {
  // the dataset was not created
}

Node.js

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

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

async function createDataset() {
  // Creates a new dataset named "my_dataset".

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

  // Specify the geographic location where the dataset should reside
  const options = {
    location: 'US',
  };

  // Create a new dataset
  const [dataset] = await bigquery.createDataset(datasetId, options);
  console.log(`Dataset ${dataset.id} created.`);
}
createDataset();

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->createDataset($datasetId);
printf('Created 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 dataset_id to the ID of the dataset to create.
# dataset_id = "{}.your_dataset".format(client.project)

# Construct a full Dataset object to send to the API.
dataset = bigquery.Dataset(dataset_id)

# TODO(developer): Specify the geographic location where the dataset should reside.
dataset.location = "US"

# Send the dataset to the API for creation.
# Raises google.api_core.exceptions.Conflict if the Dataset already
# exists within the project.
dataset = client.create_dataset(dataset)  # API request
print("Created dataset {}.{}".format(client.project, dataset.dataset_id))

Ruby

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

require "google/cloud/bigquery"

def create_dataset dataset_id = "my_dataset", location = "US"
  bigquery = Google::Cloud::Bigquery.new

  # Create the dataset in a specified geographic location
  bigquery.create_dataset dataset_id, location: location

  puts "Created dataset: #{dataset_id}"
end

次のステップ

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

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

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