Professional Cloud Database Engineer(Google Cloud) 無料問題 5 / 10 ・ 分野2: Manage a solution that can span multiple database technologies
Bigtableのテーブルの一部が破損した。正常だった時点のバックアップから必要な行を取り出し、元のテーブルを修復する手順はどれか。
- バックアップをクライアントライブラリで直接読み、必要な行を元テーブルへ書く
- 元テーブルの対象列ファミリーを指定し、バックアップをそこへ上書き復元する
- 別テーブルへバックアップを復元し、そこから必要な行を元テーブルへ書く
- バックアップをCloud Storageへエクスポートし、必要な行を元テーブルへ書く
正解と解説を見る
正解: C
正解の理由
Bigtable のバックアップのページの Use cases には、テーブルが壊れたときの手順として「バックアップから新しいテーブルへ復元する。そのうえで、Bigtable のクライアントライブラリか Dataflow で新しいテーブルを読み、元のテーブルへ書き戻すアプリを書く」とあります。バックアップは既存のテーブルへは復元できず、直接読むこともできないので、いったん別のテーブルへ復元してから必要な行を戻します。
違う選択肢
「バックアップをクライアントライブラリで直接読み、必要な行を元テーブルへ書く」…Bigtableバックアップから直接データを読むことはできません。まず新しいテーブルへ復元し、クライアントライブラリなどでそのテーブルを読む必要があります。
「元テーブルの対象列ファミリーを指定し、バックアップをそこへ上書き復元する」…バックアップを既存テーブルへ復元することはできません。列ファミリーを選んでもこの制約は変わらず、元テーブルに対する部分上書き復元にはなりません。
「バックアップをCloud Storageへエクスポートし、必要な行を元テーブルへ書く」…BigtableバックアップをCloud Storageなど別サービスへエクスポートすることはできません。通常のテーブルのデータ書出しと、バックアップ資源の移動を混同しています。
押さえどころ
バックアップ資源を直接編集・参照するのではなく、復元したテーブルを修復処理の入力にします。書戻し対象は元テーブルの正常な更新と競合しないよう確認します。
Professional Cloud Database Engineer(Google Cloud)の演習アプリ(無料10問・全問は解錠で)へ