データセット プロパティの更新
このドキュメントでは、BigQuery でデータセット プロパティを更新する方法について説明します。データセットを作成したら、次のデータセット プロパティを更新できます。
- アクセス制御
- 課金モデル
- 新しいテーブルのデフォルトの有効期限
- 新しいパーティション分割テーブルのデフォルトのパーティション有効期限
- 新しいテーブルのデフォルトの丸めモード
- 説明
- ラベル
- タイムトラベル期間
始める前に
このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。
必要な権限
データセット プロパティを更新するには、次の IAM 権限が必要です。
bigquery.datasets.update
bigquery.datasets.setIamPolicy
(Google Cloud コンソールでデータセットのアクセス制御を更新する場合にのみ必要)
事前定義された IAM ロールの roles/bigquery.dataOwner
には、データセットのプロパティを更新するために必要な権限が含まれています。
また、bigquery.datasets.create
権限を付与されている場合は、作成したデータセットのプロパティを更新できます。
BigQuery での IAM のロールと権限については、事前定義ロールと権限をご覧ください。
データセットの説明の更新
データセットの説明は次の方法で更新できます。
- Google Cloud コンソールを使用する。
- bq コマンドライン ツールの
bq update
コマンドを使用する。 datasets.patch
API メソッドを呼び出す。- クライアント ライブラリを使用する。
データセットの説明を更新するには:
Console
[エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
アクション オプションを開いて、[開く] をクリックします。
[詳細] パネルで、
[詳細を編集] をクリックして説明テキストを編集します。表示された [詳細を編集] ダイアログで、次の操作を行います。
- [説明] フィールドで、説明を入力するか、既存の説明を編集します。
- 新しい説明テキストを保存するには、[保存] をクリックします。
SQL
データセットの説明を更新するには、ALTER SCHEMA SET OPTIONS
ステートメントを使用して description
オプションを設定します。
次の例では、mydataset
という名前のデータセットに説明を設定します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER SCHEMA mydataset SET OPTIONS ( description = 'Description of mydataset');
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
--description
フラグを指定して bq update
コマンドを発行します。更新するデータセットがデフォルト以外のプロジェクトにある場合は、次の project_id:dataset
の形式でプロジェクト ID をデータセット名に追加します。
bq update \ --description "string" \ project_id:dataset
次のように置き換えます。
string
: データセットを説明するテキスト。引用符で囲みます。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
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Dataset.toBuilder() メソッドを使用して、既存の Dataset インスタンスから Dataset.Builder インスタンスを作成します。データセット ビルダー オブジェクトを構成します。Dataset.Builder.build() メソッドを使用して、更新したデータセットを作成します。Dataset.update() メソッドを呼び出して API に更新を送信します。Node.js
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Dataset.description プロパティを構成し、Client.update_dataset() を呼び出して API に更新を送信します。デフォルトのテーブルの有効期限を更新する
データセットのデフォルトのテーブルの有効期限は、次の方法で更新できます。
- Google Cloud コンソールを使用する。
- bq コマンドライン ツールの
bq update
コマンドを使用する。 datasets.patch
API メソッドを呼び出す。- クライアント ライブラリを使用する。
データセット レベルでデフォルトのテーブル有効期限を設定できます。また、テーブルの作成時にテーブルの有効期限を設定することもできます。テーブルの作成時に有効期限を設定した場合、データセットのデフォルトのテーブル有効期限は無視されます。データセット レベルでデフォルトのテーブル有効期限を設定せず、テーブルの作成時にもテーブル有効期限を設定しなかった場合、テーブルは無期限に有効になり、手動でテーブルを削除する必要があります。テーブルが期限切れになると、テーブル内のすべてのデータとともに、テーブルが削除されます。
データセットのデフォルトのテーブル有効期限設定を更新するときの規則は以下のとおりです。
- 値を
Never
から有限の有効期限に変更する場合、そのデータセット内にすでに存在するテーブルが期限切れになることはありません(そのテーブルの作成時に有効期限が設定されている場合は除く)。 - デフォルトのテーブル有効期限の値を変更する場合、すでに存在するテーブルの有効期限は変更前のテーブル有効期限の設定に従います。そのデータセット内に新規作成されたテーブルには、新しいテーブル有効期限設定が適用されます(ただし、そのテーブルの作成時に別のテーブル有効期限を指定した場合は除く)。
デフォルトのテーブル有効期限の表し方は、どの方法で値を設定するかによって異なります。適切な粒度の方法を使用してください。
- Google Cloud コンソールでは、有効期限が日数で表されます。
- bq コマンドライン ツールでは、有効期限は秒数で表されます。
- API では、有効期限はミリ秒数で表されます。
データセットのデフォルトの有効期限を更新するには:
Console
[エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
アクション オプションを開いて、[開く] をクリックします。
[詳細] パネルで、[データセット情報] の横にある鉛筆アイコンをクリックして有効期限を編集します。
[データセット情報] ダイアログの [デフォルトのテーブルの有効期限] セクションで、[テーブル作成後の日数] の値を入力します。
[保存] をクリックします。
SQL
デフォルトのテーブル有効期限を更新するには、ALTER SCHEMA SET OPTIONS
ステートメントを使用して default_table_expiration_days
オプションを設定します。
次の例では、mydataset
という名前のデータセットのデフォルトのテーブル有効期限を更新しています。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER SCHEMA mydataset SET OPTIONS( default_table_expiration_days = 3.75);
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
データセット内に新しく作成されるテーブルのデフォルト有効期限を更新するには、--default_table_expiration
フラグを指定した bq update
コマンドを入力します。更新するデータセットがデフォルト以外のプロジェクトにある場合は、次の project_id:dataset
の形式でプロジェクト ID をデータセット名に追加します。
bq update \ --default_table_expiration integer \ project_id:dataset
次のように置き換えます。
integer
: 新しく作成されるテーブルのデフォルトの存続期間(秒単位)。最小値は 3,600 秒(1 時間)です。現在の UTC 時間にこの整数値を足した値が、有効期限になります。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
プロパティを更新します。API では、有効期限はミリ秒単位で表されます。datasets.update
メソッドはデータセット リソース全体を置き換えるため、datasets.patch
メソッドの方が適切です。
Go
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Dataset.toBuilder() メソッドを使用して、既存の Dataset インスタンスから Dataset.Builder インスタンスを作成します。データセット ビルダー オブジェクトを構成します。Dataset.Builder.build() メソッドを使用して、更新したデータセットを作成します。Dataset.update() メソッドを呼び出して API に更新を送信します。Dataset.Builder.setDefaultTableLifetime() メソッドを使用して、デフォルトの有効期限を構成します。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Dataset.default_table_expiration_ms プロパティを構成し、Client.update_dataset() を呼び出して API に更新を送信します。デフォルトのパーティションの有効期限を更新する
データセットのデフォルトのパーティションの有効期限は、次の方法で更新できます。
- bq コマンドライン ツールの
bq update
コマンドを使用する。 datasets.patch
API メソッドを呼び出す。- クライアント ライブラリを使用する。
現在、Google Cloud コンソールでは、データセットのデフォルトのパーティション有効期限の設定または更新はサポートされていません。
デフォルトのパーティション有効期限をデータセット レベルで設定すると、新規に作成されるすべてのパーティション分割テーブルにそれが適用されます。パーティション分割テーブルを作成するときに、個々のテーブルにパーティションの有効期限を設定することもできます。デフォルトのパーティション有効期限をデータセット レベルで設定し、デフォルトのテーブル有効期限をデータセット レベルで設定した場合、新しいパーティション分割テーブルにはパーティションの有効期限のみが設定されます。両方のオプションを設定した場合、デフォルトのパーティション有効期限がデフォルトのテーブル有効期限よりも優先されます。
パーティション分割テーブルの作成時にパーティションの有効期限を設定した場合、データセット レベルのデフォルトのパーティション有効期限が無効になり、新たに設定した値が優先されます。
データセット レベルでデフォルトのパーティション有効期限を設定せず、テーブルの作成時にパーティションの有効期限を設定しない場合は、パーティションが期限切れになることはないため、パーティションを手動で削除する必要があります。
データセットにデフォルトのパーティション有効期限を設定すると、その有効期限はデータセット内に作成されたすべてのパーティション分割テーブルのパーティションに適用されます。テーブルにパーティションの有効期限を設定した場合、その有効期限は指定のテーブルに作成されたすべてのパーティションに適用されます。現在、同じテーブル内のパーティションに異なる有効期限を適用することはできません。
データセットのデフォルトのパーティション有効期限を更新する場合、次のことに注意してください。
- 値を
never
から有限の有効期限に変更する場合、そのデータセットのパーティション分割テーブルにすでに存在するパーティションが期限切れになることはありません(その作成時に有効期限が設定されている場合は除く)。 - デフォルトのパーティション有効期限の値を変更した場合、既存のパーティション分割テーブルのパーティションには元のデフォルトのパーティション有効期限が適用されます。データセット内に新たに作成されたパーティション分割テーブルには、作成時に別のパーティション有効期限を指定しない限り、新しいデフォルトのパーティション有効期限が適用されます。
デフォルトのパーティション有効期限の値は、値の設定場所によって異なります。適切な粒度の方法を使用してください。
- bq コマンドライン ツールでは、有効期限は秒数で表されます。
- API では、有効期限はミリ秒数で表されます。
データセットのデフォルトのパーティション有効期限を更新するには:
コンソール
現在、Google Cloud コンソールでは、データセットのデフォルトのパーティション有効期限を更新できません。
SQL
デフォルトのパーティション有効期限を更新するには、ALTER SCHEMA SET OPTIONS
ステートメントを使用して default_partition_expiration_days
オプションを設定します。
次の例では、mydataset
という名前のデータセットのデフォルトのパーティション有効期限を更新しています。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER SCHEMA mydataset SET OPTIONS( default_partition_expiration_days = 3.75);
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
データセットのデフォルトの有効期限を更新するには、--default_partition_expiration
フラグを指定して bq update
コマンドを入力します。更新するデータセットがデフォルト以外のプロジェクトにある場合は、project_id:dataset
の形式でプロジェクト ID をデータセット名に追加します。
bq update \ --default_partition_expiration integer \ project_id:dataset
次のように置き換えます。
integer
: 新しく作成されるパーティション分割テーブルのパーティションのデフォルトの存続時間(秒単位)。このフラグには最小値はありません。0
を指定すると、既存の有効期限が削除されます。新しく作成されたパーティション分割テーブルのパーティションは、パーティションの作成日(UTC)からinteger
秒後に削除されます。この値は、作成時にテーブルのパーティションに有効期限を設定していない場合に適用されます。project_id
: プロジェクト ID。dataset
: 更新するデータセットの名前。
例:
次のコマンドを入力して、mydataset
に作成された新しいパーティション分割テーブルのデフォルトのパーティション有効期限を 26 時間(93,600 秒)に設定します。このデータセットはデフォルト プロジェクトにあります。
bq update --default_partition_expiration 93600 mydataset
次のコマンドを入力して、mydataset
に作成された新しいパーティション分割テーブルのデフォルトのパーティション有効期限を 26 時間(93,600 秒)に設定します。このデータセットはデフォルト プロジェクトではなく myotherproject
にあります。
bq update --default_partition_expiration 93600 myotherproject:mydataset
API
datasets.patch
を呼び出して、データセット リソースの defaultPartitionExpirationMs
プロパティを更新します。有効期限はミリ秒数で表されます。datasets.update
メソッドはデータセット リソース全体を置き換えるため、datasets.patch
メソッドの方が適切です。
丸めモードを更新する
ALTER SCHEMA SET OPTIONS
DDL ステートメントを使用して、データセットのデフォルトの丸めモードを更新できます。次の例では、mydataset
のデフォルトの丸めモードを ROUND_HALF_EVEN
に更新します。
ALTER SCHEMA mydataset SET OPTIONS ( default_rounding_mode = "ROUND_HALF_EVEN");
これにより、データセット内に新しく作成されるテーブルのデフォルトの丸めモードが設定されます。既存のテーブルに追加された新しい列には影響しません。データセット内のテーブルにデフォルトの丸めモードを設定すると、このオプションがオーバーライドされます。
データセットのアクセス制御を更新する
データセットのアクセス制御を更新するプロセスは、アクセス制御をデータセットに割り当てるプロセスと非常によく似ています。Google Cloud コンソールまたは bq コマンドライン ツールを使用してデータセットを作成している間は、アクセス制御を適用できません。まずデータセットを作成してから、データセットのアクセス制御を更新する必要があります。この API では、datasets.patch メソッドを呼び出してデータセットのアクセス制御を更新できます。
データセットのアクセス制御を更新するときは、以下のエンティティを変更できます。
IAM プリンシパル:
- Google アカウントのメールアドレス: 個々の Google アカウントにデータセットへのアクセスを許可します。
- Google グループ: Google グループ内のすべてのメンバーにデータセットへのアクセスを許可します。
- Google Workspace ドメイン: Google ドメイン内のすべてのユーザーとグループにデータセットへのアクセスを許可します。
- サービス アカウント: サービス アカウントにデータセットへのアクセスを許可します。
- 全員: 「
allUsers
」と入力して、一般ユーザーにアクセス権を付与します。 - すべての Google アカウント: Google アカウントにログインしたすべてのユーザーにアクセス権を付与するには、「
allAuthenticatedUsers
」と入力します。
リソースタイプ:
- 承認済みデータセット: 承認済みデータセットにデータセットへのアクセス権を付与します。
- 承認済みのビュー: データセットに対する承認済みのビューを許可します。
- 承認済み関数: 承認済みの UDF またはテーブル関数にデータセットへのアクセス権を付与します。
データセットのアクセス制御を更新するには:
Console
[エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
アクション オプションを開いて、[開く] をクリックします。
[共有データセット] をクリックします。
[共有データセット] ダイアログで既存のエントリを削除するには、エントリを展開して削除アイコン(ゴミ箱)をクリックします。
[共有データセット] ダイアログで、新しいエントリを追加します。
[プリンシパルを追加] ボックスにエンティティを入力します。
[ロールを選択] で、リストから適切な IAM ロールを選択します。事前定義された各 BigQuery ロールに割り当てられている権限の詳細については、事前定義されたロールと権限をご覧ください。
[追加] をクリックします。
承認済みのビューを追加するには、[承認済みのビュー] タブをクリックして、プロジェクト、データセット、ビューを入力し、[追加] をクリックします。
アクセス制御の追加または削除が完了したら、[完了] をクリックします。
bq
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 ファイルに書き込まれます。mydataset
はmyotherproject
にあります。bq show --format=prettyjson \ myotherproject:mydataset > /tmp/mydataset.json
JSON ファイルの
"access"
セクションに変更を加えます。specialGroup
のエントリ(projectOwners
、projectWriters
、projectReaders
、allAuthenticatedUsers
)を追加または削除できます。さらに、userByEmail
、groupByEmail
、domain
を追加、削除、変更することもできます。たとえば、データセットの 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]" } ], }
編集が完了したら、
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
のアクセス制御が更新されます。mydataset
はmyotherproject
にあります。bq update --source /tmp/mydataset.json myotherproject:mydataset
アクセス制御の変更を確認するには、
show
コマンドをもう一度入力します。ただし、今回は情報をファイルに書き込む指定を省略します。bq show --format=prettyjson dataset
または
bq show --format=prettyjson project_id:dataset
API
datasets.patch
を呼び出して、テーブル リソースの access
プロパティを更新します。
datasets.update
メソッドはデータセット リソース全体を置き換えるので、アクセス制御の更新には datasets.patch
メソッドの方が適切です。
Go
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Dataset.toBuilder() メソッドを使用して、既存の Dataset インスタンスから Dataset.Builder インスタンスを作成します。データセット ビルダー オブジェクトを構成します。Dataset.Builder.build() メソッドを使用して、更新したデータセットを作成します。Dataset.update() メソッドを呼び出して API に更新を送信します。Dataset.Builder.setAcl() メソッドを使用して、アクセス制御を構成します。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
dataset.access_entries プロパティを使用してデータセットのアクセス制御を設定します。次に、client.update_dataset() 関数を呼び出してプロパティを更新します。タイムトラベル ウィンドウの更新
データセットのタイムトラベル ウィンドウは、次の方法で更新できます。
- Google Cloud コンソールを使用する。
ALTER SCHEMA SET OPTIONS
ステートメントを使用する。- bq コマンドライン ツールの
bq update
コマンドを使用する。 datasets.patch
またはdatasets.update
の API メソッドを呼び出す。update
メソッドはデータセット リソース全体を置き換えるのに対し、patch
メソッドは送信されたデータセット リソースに含まれるフィールドのみを置き換えます。
タイムトラベル ウィンドウの詳細については、タイムトラベル ウィンドウの構成をご覧ください。
データセットのタイムトラベル ウィンドウを更新するには:
コンソール
- [エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
- アクション オプションを開いて、[開く] をクリックします。
- [詳細] パネルで、 [詳細を編集] をクリックします。
- [詳細オプション] を開き、使用する [タイムトラベル期間] を選択します。
- [保存] をクリックします。
SQL
データセットを変更する場合は、max_time_travel_hours
オプション付きで ALTER SCHEMA SET OPTIONS
ステートメントを使用してタイムトラベル ウィンドウを指定します。max_time_travel_hours
値は、24 の倍数(48、72、96、120、144、168)であり、48(2 日)~168(7 日)の範囲にする必要があります。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER SCHEMA DATASET_NAME SET OPTIONS( max_time_travel_hours = HOURS);
次のように置き換えます。
DATASET_NAME
: 更新するデータセット名。HOURS
は、タイムトラベル ウィンドウの期間(時間単位)に置き換えます。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
データセットを変更する場合は、bq update
コマンドを使用して --max_time_travel_hours
フラグを指定し、タイムトラベル ウィンドウを指定します。--max_time_travel_hours
値は、24 の倍数(48、72、96、120、144、168)であり、48(2 日)~168(7 日)の範囲にする必要があります。
bq update \
--dataset=true --max_time_travel_hours=HOURS \
PROJECT_ID:DATASET_NAME
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。DATASET_NAME
: 更新するデータセットの名前。HOURS
は、タイムトラベル ウィンドウの期間(時間単位)に置き換えます。
API
maxTimeTravelHours
フィールドの値を指定した定義済みのデータセット リソースを使用して datasets.patch
または datasets.update
メソッドを呼び出します。maxTimeTravelHours
値は、24 の倍数(48、72、96、120、144、168)であり、48(2 日)~168(7 日)の範囲にする必要があります。
ストレージ課金モデルを更新する
データセットのストレージ課金モデルを変更できます。ストレージの変更の計算時に物理バイトを使用する場合は storage_billing_model
値を PHYSICAL
に設定し、論理バイトを使用する場合は LOGICAL
に設定します。デフォルトは LOGICAL
です。
データセットの課金モデルを変更した場合は、変更が反映されるまでに 24 時間を要します。
データセットのストレージ課金モデルを変更した後、再度ストレージ課金モデルを変更するには、14 日間お待ちいただく必要があります。
コンソール
- [エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
- アクション オプションを開いて、[開く] をクリックします。
- [詳細] パネルで、 [詳細を編集] をクリックします。
- [詳細オプション] を開いて、物理ストレージの課金を使用する場合は [物理ストレージの課金モデルを有効にする] をオンにし、論理ストレージの課金を使用する場合はオフにします。
- [保存] をクリックします。
SQL
データセットの課金モデルを更新するには、ALTER SCHEMA SET OPTIONS
ステートメントを使用して storage_billing_model
オプションを設定します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER SCHEMA DATASET_NAME SET OPTIONS( storage_billing_model = 'BILLING_MODEL');
次のように置き換えます。
DATASET_NAME
は、変更するデータセットの名前に置き換えます。BILLING_MODEL
は、使用するストレージのタイプ(LOGICAL
またはPHYSICAL
)に置き換えます。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
プロジェクト内のすべてのデータセットのストレージ課金モデルを更新するには、データセットが配置されているすべてのリージョンに対して次の SQL クエリを使用します。
FOR record IN (SELECT CONCAT(catalog_name, '.', schema_name) AS dataset_path FROM PROJECT_ID.region-REGION.INFORMATION_SCHEMA.SCHEMATA) DO EXECUTE IMMEDIATE "ALTER SCHEMA `" || record.dataset_path || "` SET OPTIONS(storage_billing_model = 'BILLING_MODEL')"; END FOR;
次のように置き換えます。
PROJECT_ID
はプロジェクト ID に置き換えます。REGION
はリージョン修飾子に置き換えます。BILLING_MODEL
は、使用するストレージのタイプ(LOGICAL
またはPHYSICAL
)に置き換えます。
bq
データセットの課金モデルを更新するには、bq update
コマンドを使用して --storage_billing_model
フラグを設定します。
bq update -d --storage_billing_model=BILLING_MODEL PROJECT_ID:DATASET_NAME
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。DATASET_NAME
: 更新するデータセットの名前。BILLING_MODEL
: 使用するストレージのタイプ(LOGICAL
またはPHYSICAL
)
API
storageBillingModel
フィールドが設定されている定義済みのデータセット リソースを使用して、datasets.update
メソッドを呼び出します。
次の例は、curl
を使用して datasets.update
を呼び出す方法を示しています。
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X PUT https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID -d '{"datasetReference": {"projectId": "PROJECT_ID", "datasetId": "DATASET_NAME"}, "storageBillingModel": "BILLING_MODEL"}'
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。DATASET_NAME
: 更新するデータセットの名前。BILLING_MODEL
: 使用するストレージのタイプ(LOGICAL
またはPHYSICAL
)
データセットのセキュリティ
BigQuery でデータセットへのアクセスを制御するには、データセットへのアクセスの制御をご覧ください。データ暗号化の詳細については、保存データの暗号化をご覧ください。