このドキュメントでは、BigQuery でデータセットを作成する方法について説明します。
次の方法でデータセットを作成できます。
- Cloud Console を使用する。
bq
コマンドライン ツールでbq mk
コマンドを使用する。datasets.insert
API メソッドを呼び出す。- クライアント ライブラリを使用する。
- 既存のデータセットをコピーする。
データセットをコピーする手順(リージョン間でのコピーを含む)については、データセットのコピーをご覧ください。
データセットの制限事項
BigQuery データセットには次の制限があります。
- 地理的なロケーションは作成時にのみ設定できます。データセットを作成した後、ロケーションは不変になり、Cloud Console もしくは
bq
コマンドライン ツールの使用、またはpatch
もしくはupdate
API メソッドの呼び出しにより変更することはできません。 1 つのクエリで参照されるすべてのテーブルは、同じロケーションにあるデータセット内に保存されている必要があります。
テーブルをコピーする場合、コピー元とコピー先のテーブルが同じロケーションに存在する必要があります。
データセット名は各プロジェクトで一意である必要があります。
データセットの命名
BigQuery でデータセットを作成するとき、データセット名はプロジェクトごとに一意である必要があります。データセット名には次のものを含めることができます。
- 1,024 文字まで。
文字(大文字または小文字)、数字、アンダースコア。
データセット名では大文字と小文字が区別されます。同じプロジェクト内で mydataset
と MyDataset
を共存できます。
データセット名にはスペースや特殊文字(-
、&
、@
、%
など)を含めることはできません。
必要な権限
データセットを作成するには、少なくとも bigquery.datasets.create
権限が付与されている必要があります。次の IAM 事前定義ロールには bigquery.datasets.create
権限が含まれています。
bigquery.dataEditor
bigquery.dataOwner
bigquery.user
bigquery.admin
BigQuery での IAM のロールと権限について詳しくは、事前定義ロールと権限をご覧ください。
データセットの作成
データセットを作成するには:
Console
Cloud Console で [BigQuery] ページを開きます。
[エクスプローラ] パネルで、データセットを作成するプロジェクトを選択します。
詳細パネルで [データセットを作成] をクリックします。
[データセットを作成] ページで次の操作を行います。
- [データセット ID] に、データセットの一意の名前を入力します。
(省略可能)[データのロケーション] で、データセットの地理的なロケーションを選択します。値を [デフォルト] に設定したままにすると、ロケーションは
US
に設定されます。データセットの作成後はロケーションを変更できません。[デフォルトのテーブルの有効期限] で、以下のいずれかのオプションを選択します。
- 無期限: (デフォルト)データセット内に作成されたテーブルが自動的に削除されることはありません。テーブルを削除する場合は、手動で削除する必要があります。
- テーブル作成後の日数: この値は、データセット内に新しく作成されたテーブルがいつ削除されるかを決定します。この値が適用されるのは、テーブルの作成時にテーブルの有効期限を設定しなかった場合です。
[データセットを作成] をクリックします。
bq
新しいデータセットを作成するには、--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 時間)です。現在時刻にこの整数値を足した値が有効期限になります。データセット内に作成されたテーブルは、作成時点からinteger1
秒後に削除されます。この値は、テーブルの作成時にテーブルの有効期限を設定しなかった場合に適用されます。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
データセットが作成されたことを確認するには、bq ls
コマンドを入力します。また、新しいデータセットを作成するときに、bq mk -t dataset.table
の形式を使用してテーブルを作成することもできます。テーブルの作成方法については、テーブルの作成をご覧ください。
API
定義済みのデータセット リソースを使用して datasets.insert
メソッドを呼び出します。
C#
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、BigQuery C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用にある PHP 向けの手順に従って設定を行ってください。詳細については、BigQuery PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用で説明している Ruby 向けの手順に沿って設定を行ってください。詳細については、BigQuery Ruby API のリファレンス ドキュメントをご覧ください。
次のステップ
- データセットにアクセス制御を割り当てる方法については、データセットへのアクセス制御をご覧ください。
- プロジェクト内のデータセットを一覧表示する方法については、データセットの一覧表示をご覧ください。
- データセット メタデータの詳細については、データセットに関する情報の取得をご覧ください。
- データセット プロパティの変更方法については、データセットの更新をご覧ください。
- ラベルの作成と管理の詳細は、ラベルの作成と管理をご覧ください。