Reader Account(リーダーアカウント)は、Snowflakeアカウントを持たない外部組織にデータを共有するためのManaged Account(管理対象アカウント)です。 ProviderがCREATE MANAGED ACCOUNTで作成・管理し、共有データへの読み取り専用アクセスを提供します。
この記事では、Regular AccountとReader Accountの比較表・作成SQL・コスト負担の仕組み・制約一覧を解説します。SnowPro Core試験のData Sharing関連問題で頻出するトピックです。
SnowflakeのSecure Data Sharingは、データの物理コピーを作成せずに他のSnowflakeアカウントとデータを共有する仕組みです。 しかし、共有先がSnowflakeアカウントを持っていない場合、直接データを参照できません。 この課題を解決するのがReader Accountです。
Providerは自身のアカウントからReader Account(Managed Account)を作成し、共有(SHARE)を追加します。Reader Accountのユーザーは専用のSnowsight URLからログインして共有データをSELECT文で参照できます。
| 比較項目 | Regular Account(Full Account) | Reader Account(Managed Account) |
|---|---|---|
| 作成方法 | Snowflake組織が直接契約 | ProviderがCREATE MANAGED ACCOUNTで作成 |
| コスト負担 | 各アカウントが独自に負担 | Provider(共有元)が負担 |
| データ操作 | 全DML/DDL実行可能 | SELECTのみ(読み取り専用) |
| 独自DB作成 | 可能 | 不可 |
| データロード | COPY INTO / Snowpipe等で可能 | 不可 |
| Warehouse管理 | 自由に作成・変更・削除 | Providerが設定したWarehouseのみ使用 |
| ユーザー管理 | 自由に作成・管理 | Providerが管理(制限付き) |
| データ共有(Share受信) | 複数のProviderからSHAREを受信可能 | 作成元Providerからの共有のみ |
| Marketplace利用 | 可能 | 不可 |
| Resource Monitor適用 | アカウント管理者が設定 | Providerがコスト管理のため設定推奨 |
-- Reader Account(Managed Account)の作成
-- ACCOUNTADMINロールが必要
CREATE MANAGED ACCOUNT partner_reader
ADMIN_NAME = 'partner_admin',
ADMIN_PASSWORD = 'SecureP@ss123!',
TYPE = READER,
COMMENT = '外部パートナー向けReader Account';
-- 作成結果に含まれる情報
-- accountName: partner_reader
-- loginUrl: https://partner_reader.snowflakecomputing.com
-- 共有(SHARE)の作成
CREATE SHARE sales_data_share;
GRANT USAGE ON DATABASE sales_db TO SHARE sales_data_share;
GRANT USAGE ON SCHEMA sales_db.public TO SHARE sales_data_share;
GRANT SELECT ON TABLE sales_db.public.monthly_report TO SHARE sales_data_share;
-- Reader AccountにSHAREを追加
ALTER SHARE sales_data_share ADD ACCOUNTS = partner_reader;Reader Accountのコストモデルは試験で頻出するポイントです。
| コスト種別 | 負担者 | 詳細 |
|---|---|---|
| ストレージ | Provider | 共有元テーブルのストレージはProviderのアカウントに課金 |
| コンピュート | Provider | Reader AccountのWarehouseクレジットはProviderに課金 |
| データ転送 | Provider | クロスリージョン転送が発生した場合のコスト |
Providerはコスト管理のため、各Reader AccountにResource Monitorを割り当て、クレジット消費の上限を設定することが推奨されます。上限に達すると、Reader AccountのWarehouseがSuspendされ、追加のクエリ実行がブロックされます。
-- Reader Account用のResource Monitor
CREATE RESOURCE MONITOR reader_cost_monitor
WITH CREDIT_QUOTA = 100
FREQUENCY = MONTHLY
START_TIMESTAMP = IMMEDIATELY
TRIGGERS
ON 80 PERCENT DO NOTIFY
ON 100 PERCENT DO SUSPEND;
-- Reader AccountのWarehouseにResource Monitorを適用
ALTER WAREHOUSE reader_wh SET RESOURCE_MONITOR = reader_cost_monitor;-- Reader Accountの一覧確認
SHOW MANAGED ACCOUNTS;
-- Reader Accountの削除
DROP MANAGED ACCOUNT partner_reader;
-- SHAREの割り当て確認
SHOW GRANTS OF SHARE sales_data_share;SHOW MANAGED ACCOUNTSで作成したReader Accountの一覧・状態・ログインURLを確認できます。Reader Accountの削除はProviderのACCOUNTADMINロールで実行します。
取引先やパートナー企業がSnowflakeアカウントを持っていない場合、Reader Accountを作成して月次レポートや分析結果を直接参照させることができます。CSV/Excelでのデータ受け渡しが不要になり、常に最新データを参照できます。
外部監査法人に対してReader Accountを作成し、監査対象のログ・トランザクションデータを直接参照させます。データの物理コピーを作成しないため、データ漏洩リスクを最小化しながら透明性を確保できます。
Reader Account
問題 1
SnowflakeのReader Account(Managed Account)について正しい説明はどれですか?
正解: C
Reader Account(Managed Account)はProviderが作成・管理するアカウントであり、WarehouseのクレジットコストはProvider(共有元アカウント)に課金されます。これはRegular Account(各アカウントが独自にコストを負担)との最大の違いです。Reader Accountは読み取り専用のため、独自のDB作成やデータロードはできません(Bは誤り)。また、作成元Providerからの共有データのみ参照可能で、他のProviderからのSHAREは受信できません(Dは誤り)。
Reader Accountのコンピュートコストは誰が負担しますか?
Reader Accountのコンピュートコスト(Virtual Warehouseのクレジット消費)はProvider(共有元アカウント)が負担します。これはRegular Account(Full Account)との最大の違いです。Regular Accountの場合、各アカウントが独自にコンピュートコストを負担しますが、Reader AccountはProviderが作成・管理するManaged Accountであるため、WarehouseのクレジットもProviderのアカウントに課金されます。Providerは各Reader AccountにResource Monitorを割り当ててクレジット消費の上限を設定することが推奨されます。
Reader AccountでDMLやオブジェクト作成はできますか?
Reader Accountは共有データへの読み取り専用アクセスに限定されています。ユーザーはSELECT文で共有データを参照できますが、CREATE TABLE・INSERT・UPDATE・DELETEなどのDDL/DMLは実行できません。独自のデータベースやスキーマの作成も不可です。Reader Accountの目的は「Snowflakeアカウントを持たない外部パートナーに対して、Snowflake上で直接データを参照させること」であるため、データの変更操作は設計上制限されています。
Reader AccountとSecure Data Sharingの関係は?
Reader AccountはSecure Data Sharingの一部機能として提供されています。通常のSecure Data SharingではConsumer側にSnowflakeのFull Account(Regular Account)が必要ですが、データ共有先がSnowflakeアカウントを持っていないケースに対応するのがReader Accountです。Providerが自身のアカウントからCREATE MANAGED ACCOUNTでReader Accountを作成し、共有(SHARE)を追加します。Reader Accountのユーザーは専用のSnowsight URLからログインして共有データを参照できます。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...