SnowPro Advanced: Architect 無料問題 5 / 10 ・ 分野2: Snowflake Architecture
AWS 東京リージョンのアカウントで、データベース SALES_DB のセキュアビュー V_SALES を共有している。V_SALES は別のデータベース REF_DB の表も参照している。これを Azure 西ヨーロッパのリージョンにある取引先3社の Snowflake アカウントへ渡したい。リスティングは使わず、公式の「リージョンとクラウドをまたいだ共有」の手順で、西ヨーロッパに同じ組織のアカウントを1つ置いて組む。最も適切な構成はどれか。
- 元と先の両方のアカウントで複製を有効にし、SALES_DB と REF_DB を同じ複製グループで写してから、先のアカウントで共有を作る
- 元と先の両方のアカウントで複製を有効にし、SALES_DB と REF_DB を別々の複製グループで写してから、先のアカウントで共有を作る
- 元と先の両方のアカウントで複製を有効にし、東京の共有から作った DB と REF_DB を別々の複製グループで写して、先のアカウントで共有を作る
- 先のアカウントで複製を有効にして元のアカウントはそのままにし、SALES_DB と REF_DB を同じ複製グループで写して共有を作る
正解と解説を見る
正解: A
正解の理由
直接の共有は同じリージョンのアカウントとの間でしか使えないので、リージョンをまたぐときは、データの複製の機能を使う。公式の手順では、まず組織の管理者が、共有するデータを持つ元のアカウントと、共有したいリージョンの先のアカウントの両方で複製を有効にする。そのうえでデータベースを先のアカウントへ複製し、そこで共有を作って相手に渡す。公式は、複数のデータベースの物を参照するビューを共有するときは、参照先のデータベースもすべてその複製グループに入れる必要があると書いている。V_SALES が REF_DB を参照しているので、SALES_DB と REF_DB を同じ複製グループで写す。
違う選択肢
「元と先の両方のアカウントで複製を有効にし、SALES_DB と REF_DB を別々の複製グループで写してから、先のアカウントで共有を作る」… 公式は、ビューが参照する別のデータベースも、そのビューを写す複製グループに含めなければならないと書いている。参照先を別の複製グループにする手順ではない。
「元と先の両方のアカウントで複製を有効にし、東京の共有から作った DB と REF_DB を別々の複製グループで写して、先のアカウントで共有を作る」… 複製の説明は、共有から作ったデータベースは複製できないとしている。写すのは、データを持つ元のデータベースである。また、ビューが参照する REF_DB は、同じ複製グループに入れる必要がある。
「先のアカウントで複製を有効にして元のアカウントはそのままにし、SALES_DB と REF_DB を同じ複製グループで写して共有を作る」… 公式の手順の1つめは、組織の管理者が、共有するデータを持つ元のアカウントと、先のアカウントの両方で複製を有効にすることである。元のアカウントの有効化を省く手順ではない。
押さえどころ
提供者は、相手ごとではなくリージョンごとに写しを1つ作ればよく、3社にはそのアカウントの共有から渡せる。リージョンをまたぐ共有は複製の機能に乗るので、複製の考慮事項を設計の段階で押さえる。