LoginSignup
0
0

[BigQuery API(V2)] Javaでゴミ箱に移動されたデータセットを復元する

Posted at

BigQuery API V2(Java)を使用して、
BigQueryでゴミ箱に移動されたデータセットを復元する方法
についてご紹介します。

ゴミ箱に移動されたデータセットを復元する場合、
そのデータセットに対しIAM権限が付与されている必要があります。

権限付与に関しては
⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)
を参照ください。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[BigQuery API(V2)] JavaでBigQueryを使う
を参照ください。

No 目次
1 データセットを復元
1 スコープ
2 実行
3 レスポンスの内容

1. データセットを復元

ゴミ箱に移動されたデータセットを復元します。
削除されたデータセットは、タイムトラベル期間内であれば復元できます。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM

⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。

1.2. 実行

作成するデータセットIDの設定は必須です。

public static void main(String[] args) throws Exception{
    Bigquery bigquery = getBigquery();
    Bigquery.Datasets datasets = bigquery.datasets();
    
    UndeleteDatasetRequest content = new UndeleteDatasetRequest();
    Bigquery.Datasets.Undelete undelete = datasets.undelete("プロジェクトID","データセットID",content);
    
    Dataset res = undelete.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

POST: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/datasets/{データセットID}:undelete
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.2. リクエストボディ

Bigquery.Datasets.Undeleteのsetメソッドにより、リクエストボディを追加できます。

メソッド 引数 説明
setDeletionTime String データセットが削除された時刻
指定しない場合は、最後に削除されたバージョンを復元

1.3. レスポンスの内容

Dataset

メソッド 戻り値 説明
getId String プロジェクト名を含むデータセットID
形式:「プロジェクト名:データセットID」
getEtag String 結果ページのハッシュ値
getKind String リソースの種類
固定文字列:"bigquery#dataset"
getLocation String データセットのロケーション
getSelfLink String リソースにアクセスするために使用できるURL
getLabels Map<String,String> このデータセットに関連付けられたラベル
getDatasetReference DatasetReference データセット参照
getFriendlyName String データセットの代替名
getDescription String データセットのわかりやすい説明
getType String データセットのタイプ
getDefaultTableExpirationMs Long データセット内のすべてのテーブルのデフォルトの存続期間(ミリ秒)
getDefaultPartitionExpirationMs Long デフォルトのパーティションの有効期限(ミリ秒)
getAccess List<Dataset.Access> エンティティのデータセット
getCreationTime Long データセットが作成された時刻(ミリ秒)
getLastModifiedTime Long データセットが最後に変更された日付(ミリ秒)
getDefaultEncryptionConfiguration EncryptionConfiguration データセット内のすべてのテーブルのデフォルトの暗号化キー
getLinkedDatasetSource LinkedDatasetSource 【getType()がLINKEDの場合】
データセット参照
getExternalDatasetReference ExternalDatasetReference 【getType()がEXTERNALの場合】
データセット参照
getIsCaseInsensitive Boolean データセットとそのテーブル名が大文字と小文字を区別しないか
getDefaultCollation String データセット内に今後作成されるテーブルのデフォルトの照合仕様
"und:ci"(ロケールは不明、文字の大小区別なし)、""(空の文字列。文字の大小区別あり)
getDefaultRoundingMode RoundingMode(enum) このデータセット内で作成される新しいテーブルのデフォルトの丸めモード仕様
getMaxTimeTravelHours Long タイムトラベルウィンドウの定義(時間)
getTags List<Dataset.Tags> データセットのタグ
getStorageBillingModel StorageBillingModel(enum) 課金モデル

DatasetReference

メソッド 戻り値 説明
getDatasetId String データセットID
getProjectId String プロジェクトID

Dataset.Access

メソッド 戻り値 説明
getRole String IAMロールID
getUserByEmail String アクセス許可するメールアドレス(サービスアカウントメールアドレス or OAuth2.0認証を行うメールアドレス)
getGroupByEmail String アクセス許可するグループのメールアドレス
getDomain String アクセス許可するドメイン
getSpecialGroup String アクセス許可する特別なグループ
getIamMember String IAMポリシーに表示されるユーザー、グループ、ドメイン、または特別なグループではない他のタイプのメンバー
getView TableReference アクセスを許可する別のデータセットからのビュー
getRoutine RoutineReference アクセスを許可する別のデータセットのルーティン
getDataset DatasetAccessEntry データセットへの読み取りアクセス許可

TableReference

メソッド 戻り値 説明
getProjectId String プロジェクトID
getDatasetId String データセットID
getTableId String テーブルID

RoutineReference

メソッド 戻り値 説明
getProjectId String プロジェクトID
getDatasetId String データセットID
getRoutineId String ルーティンID

DatasetAccessEntry

メソッド 戻り値 説明
getDataset DatasetReference このエントリが適用されるデータセット
getTargetTypes List<TargetType(enum)> このエントリが適用されるデータセット内のリソース

Dataset.Tags

メソッド 戻り値 説明
getTagKey String タグキーの名前空間付きフレンドリ名
getTagValue String タグ値の短縮名

EncryptionConfiguration

メソッド 戻り値 説明
getKmsKeyName String CloudKMS暗号化キー

LinkedDatasetSource

メソッド 戻り値 説明
getSourceDataset DatasetReference ソースデータセット参照

ExternalDatasetReference

メソッド 戻り値 説明
getExternalSource String このデータセットを裏付ける外部ソース
getConnection String externalSourceへのアクセスに使用される接続ID

RoundingMode

定義値 内容
ROUNDING_MODE_UNSPECIFIED 設定なし
ROUND_HALF_AWAY_FROM_ZERO NUMERIC値とBIGNUMERIC値の書き込み時に精度と位取りを適用するときに、半分の値をゼロから四捨五入する
ROUND_HALF_EVEN NUMERIC値とBIGNUMERIC値の書き込み時に精度と位取りを適用するときに、半分の値を最も近い偶数値に丸める

StorageBillingModel

定義値 内容
STORAGE_BILLING_MODEL_UNSPECIFIED 設定なし
LOGICAL 論理バイトに対する課金
PHYSICAL 物理バイトに対する課金

TargetType

定義値 内容
TARGET_TYPE_UNSPECIFIED 未使用(使用不可)
VIEWS このエントリはデータセット内のビューに適用

データセットのタイプ

定義値 内容
DEFAULT 所有者と承認されたアカウントのみがアクセス可能なデータセット
PUBLIC 誰でもアクセス可能なデータセット
LINKED リンクされたデータセット
EXTERNAL 外部メタデータカタログに定義されているデータセット


おしまい。。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0