Skip to content

確認問題|Associate ⑤ ガバナンス(Unity Catalog)

教材 05-governance.md の内容に基づく確認問題です(全10問)。 まず問題を解き、下の「解答・解説」で答え合わせをしてください。

問題

Q1. Unity Catalog の 3 階層ネームスペース catalog.schema.object について、各レイヤーの対応として正しいものはどれか。

  • A. 第 1 レイヤー = スキーマ、第 2 レイヤー = カタログ、第 3 レイヤー = テーブル
  • B. 第 1 レイヤー = カタログ、第 2 レイヤー = スキーマ、第 3 レイヤー = テーブル/ビュー/ボリューム等
  • C. 第 1 レイヤー = メタストア、第 2 レイヤー = カタログ、第 3 レイヤー = スキーマ
  • D. 第 1 レイヤー = データベース、第 2 レイヤー = テーブル、第 3 レイヤー = カラム

Q2. Unity Catalog のセキュリティ保護可能オブジェクトの階層を、最上位から正しい順に並べたものはどれか。

  • A. カタログ > メタストア > スキーマ > テーブル
  • B. メタストア > スキーマ > カタログ > テーブル
  • C. メタストア > カタログ > スキーマ > テーブル/ビュー/ボリューム/関数/モデル
  • D. スキーマ > カタログ > メタストア > テーブル

Q3. アナリストが GRANT SELECT ON TABLE main.default.orders TO ... を付与されたにもかかわらず、SELECT * FROM main.default.orders; を実行すると権限エラーになる。原因として最も適切なものはどれか。

  • A. テーブル所有者が SELECT を付与する権限を持っていなかったため、GRANT は実際には無効
  • B. 親スキーマへの USE SCHEMA と親カタログへの USE CATALOG(使用特権)を持っていないため
  • C. SELECT ではなく MODIFY を付与しないとテーブルは読み取れないため
  • D. マネージド テーブルは SELECT ではアクセスできず、直接ストレージ アクセスが必要なため

Q4. データ プラットフォーム管理者が GRANT CREATE CATALOG ON METASTORE TO ... を実行した。このユーザーが得る権限として正しいものはどれか。

  • A. メタストア内のすべてのカタログのテーブルを自動的に SELECT できるようになる
  • B. メタストアにカタログを作成できるが、カタログ内のデータへのアクセスは付与されない(メタストア レベルの特権は子に継承されない)
  • C. メタストア内の全オブジェクトの所有権を自動的に取得する
  • D. カタログ作成に加えて、その配下スキーマ・テーブルへの ALL PRIVILEGES も継承される

Q5. チームが main.sales.events テーブルを DROP TABLE で削除した。このテーブルが「マネージド テーブル」だった場合と「外部テーブル」だった場合の、基盤データファイルの挙動として正しいものはどれか。

  • A. マネージド: 保持期間後にデータファイルも削除される/外部: データファイルはそのまま残る
  • B. マネージド: データファイルは残る/外部: データファイルも即座に削除される
  • C. どちらもメタデータのみ削除され、データファイルは常に残る
  • D. どちらも保持期間なしでデータファイルが即座に完全削除される

Q6. Unity Catalog の「ボリューム(Volume)」に関する説明として正しいものはどれか。

  • A. ボリュームは表形式データを行と列で管理し、SELECT で SQL クエリできる
  • B. ボリューム内のファイルは Unity Catalog のテーブルとして登録でき、表形式アクセスに変換される
  • C. ボリュームは表形式でない(非構造化/半構造化)データを管理し、パスベースのファイルアクセスを提供する。ボリューム内ファイルをテーブルとして登録することはできない
  • D. ボリュームはメタストア直下に配置され、3 階層ネームスペースには含まれない

Q7. 「ストレージ資格情報(Storage credential)」と「外部ロケーション(External location)」の関係として正しいものはどれか。

  • A. 外部ロケーションは認証情報そのものであり、ストレージ資格情報はそのパスを指す
  • B. ストレージ資格情報はクラウド ストレージへの認証情報を表し、外部ロケーションは「クラウド ストレージ パス + ストレージ資格情報」を組み合わせたオブジェクトである
  • C. 両者は同一のオブジェクトであり、呼び名が違うだけである
  • D. 外部ロケーションは 3 階層ネームスペース catalog.schema.location に配置される

Q8. テーブルへのデータの挿入・更新・削除(書き込み)を許可するために付与すべき特権はどれか。

  • A. SELECT
  • B. USE SCHEMA
  • C. MODIFY
  • D. READ VOLUME

Q9. Unity Catalog の「メタストア(Metastore)」に関する説明として正しいものはどれか。

  • A. メタストアはワークスペースごとに 1 つ作成され、他のワークスペースとは共有できない
  • B. メタストアはリージョンごとに 1 つで、同一リージョン内の複数ワークスペースにアタッチでき、メタストアで付与した権限はアタッチされた全ワークスペースに適用される
  • C. メタストアは 3 階層ネームスペースの第 3 レイヤーであり、テーブルと同列に扱われる
  • D. メタストアはアカウントごとに 1 つだけ存在し、全リージョンで共有される

Q10. ML エンジニアが、Unity Catalog に登録済みのモデル prod.ml_team.iris_model を別チームが推論に使えるようにしたい。適切な GRANT 文はどれか。(モデルは実装上「関数の一種」として扱われる)

  • A. ```sql GRANT SELECT ON MODEL prod.ml_team.iris_model TO ml-team-acme;
- B. ```sql
GRANT READ VOLUME ON VOLUME prod.ml_team.iris_model TO `ml-team-acme`;
  • C. ```sql GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO ml-team-acme;
- D. ```sql
GRANT MODIFY ON TABLE prod.ml_team.iris_model TO `ml-team-acme`;

解答・解説

Q1. 正解: B 3 階層ネームスペース catalog.schema.object は、第 1 レイヤー = カタログ、第 2 レイヤー = スキーマ、第 3 レイヤー = テーブル/ビュー/ボリューム/関数/モデル等のオブジェクトで構成される。メタストアは階層の最上位だが 3 階層ネームスペースには含まれない(C は誤り)。レガシ Hive の 2 階層 schema.table との対比がポイント。

Q2. 正解: C Unity Catalog のオブジェクト階層は、最上位から「メタストア > カタログ > スキーマ > テーブル/ビュー/ボリューム/関数/モデル」。メタストアはリージョンごとに 1 つの最上位オブジェクト、カタログが 3 階層ネームスペースの第 1 レイヤーとなる。この順序がアクセス制御の基礎になる。

Q3. 正解: B テーブルを読むには「テーブルへの SELECT」+「親スキーマへの USE SCHEMA」+「親カタログへの USE CATALOG」の 3 点セットが必要。USE CATALOG/USE SCHEMA は使用特権(入り口)で、単独ではデータにアクセスできないが、これらが無いと SELECT を持っていてもアクセスできない。アクセス制御の境界として機能する。

Q4. 正解: B メタストア レベルで付与した特権は子オブジェクトに継承されない(重要な例外)。CREATE CATALOG はメタストアにカタログを作成する操作を許可するだけで、カタログ内データへのアクセスは付与しない。カタログ/スキーマ レベルの特権は継承されるが、メタストア レベルは継承されない点を区別する。

Q5. 正解: A マネージド テーブルはドロップすると保持期間後にデータファイルも完全削除される。外部テーブルはドロップしてもメタデータのみ削除され、データファイルはクラウド ストレージにそのまま残る。マネージド/外部の「ドロップ時の挙動」の違いは頻出。なおマネージド/外部の区別はテーブルとボリュームにのみ適用される。

Q6. 正解: C ボリュームは表形式でない(非構造化/半構造化)データを管理する Unity Catalog オブジェクトで、READ VOLUME/WRITE VOLUME によるパスベースのファイルアクセスを提供する(SQL クエリ操作は不可)。ボリューム内ファイルをテーブルとして登録することはできない。ボリュームは 3 階層ネームスペースの第 3 レベル(catalog.schema.volume)に位置する(D は誤り)。

Q7. 正解: B ストレージ資格情報はクラウド ストレージへの認証・承認メカニズム(Azure マネージド ID やサービスプリンシパル等)を表す。外部ロケーションは「クラウド ストレージ パス + そのパスにアクセスするストレージ資格情報」を組み合わせたオブジェクトで、複数の外部ロケーションが同じ資格情報を参照できる。どちらもメタストア直下に配置される。

Q8. 正解: CMODIFY はテーブルのデータを挿入・更新・削除(書き込み)する特権。SELECT は読み取り、USE SCHEMA は使用特権(入り口)、READ VOLUME はボリューム内ファイルの読み取り。読み取り = SELECT、書き込み = MODIFY の対比を押さえる。

Q9. 正解: B メタストアはリージョンごとに 1 つで、同一リージョン内の複数ワークスペースにアタッチできる。メタストアで付与した権限は、アタッチされたすべてのワークスペースに適用される。ワークスペースごとに 1 つではなく(A は誤り)、階層の最上位オブジェクトである(C は誤り)。

Q10. 正解: C Unity Catalog に登録されたモデルは実装上「関数の一種」として扱われるため、GRANT EXECUTE ON FUNCTION ... を使う。EXECUTE は関数の呼び出しや登録済みモデルを推論用にロードする権限。ON MODEL という構文は使わず、ON FUNCTION に対して EXECUTE を付与する点がポイント。