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 | 外部メタデータカタログに定義されているデータセット |
おしまい。。