データの登録

このトピックでは、 Snowflake Data Clean Room にリンクできるようにデータを登録する方法について説明します。

サポートされているオブジェクト

以下のオブジェクトタイプでclean roomへのリンクが可能です:

注釈

†外部テーブルとIceberg テーブルを、clean roomで使用する前に 有効にする必要があります

データオブジェクトの登録

ユーザーがデータを Snowflake Data Clean Room にリンクする前に、まずデータが 登録されている 必要があります。データを登録すると、オブジェクトに対する USAGE と SELECT の権限が SAMOOHA_APP_ROLE に付与されます。これは、clean room環境からデータにアクセスするために使用されます。データベースやスキーマを登録すると、そのすべての子オブジェクトも登録されます。オブジェクトにリンクするには、そのオブジェクトに対する MANAGE GRANTS 権限が必要です。

データベース、スキーマ、オブジェクトの登録には、 clean room UI または clean room API を使用します。clean room UI を使う方が簡単ですが、 ACCOUNTADMIN ロールが必要になります。開発者 APIs を使用すると、 OWNERSHIP 権限を持つオブジェクトを、 ACCOUNTADMIN ロールなしで登録できます。

重要

データベースやスキーマを登録しても、その 登録後 に追加されたオブジェクトは登録されません。新しいオブジェクトを個別に登録するか、clean room UI を使用して Admin > Snowflake Admin > Database Registration に移動し、 Resync を選択する必要があります。

自分のアカウントで登録したデータ以外はリンクできません。つまり、プロバイダーはコンシューマーが登録したデータをリンクできず、コンシューマーはプロバイダーが登録したデータをリンクできません。データがclean roomにリンクされると、リンク先の設定(結合ポリシーや列ポリシーなど)に従い、clean roomにアクセスできる人なら誰でもアクセスできます。

clean room UIを使用してデータベース、スキーマ、またはオブジェクトを登録するには、以下の手順に従います:

  1. clean room UI にアカウント管理者としてサインインし、次のいずれかの手順を実行します:

    • 管理アカウントを使用している場合は、 Admin > My Account を選択します。

    • Snowflakeアカウントを使用している場合は、 Admin > Snowflake Admin を選択し、 ACCOUNTADMIN ロールを持つユーザーとしてSnowflakeにサインインします。

  2. Admin > Snowflake Admin を選択します。

  3. Log in to Snowflake を選択し、 ACCOUNTADMIN ロールを持つユーザーとして認証します。

  4. アカウントで外部テーブルまたはIcebergテーブルを有効にするには、 External & Iceberg Tables トグルを有効にします。

  5. Access management for Snowflake objects セクションで、 Edit を選択し、データベース、スキーマ、またはオブジェクトを選択して、このアカウントのユーザーがデータをリンクすることを可能にします。

  6. Save を選択します。

データオブジェクトの登録解除

テーブルを一度clean roomにリンクすると、削除できなくなります。ただし、アカウントでオブジェクトの登録を解除することで、そのアカウント内のclean roomからのアクセス許可を削除できます。

clean roomやアカウントからデータを削除したい場合、基になるオブジェクトを削除することは、clean roomのエラーの原因となるので 避けてください。以下のいずれかの方法で、オブジェクトの登録を解除してください。

アカウントからオブジェクトの登録を解除するときは、このデータを使用して作成したclean roomも更新する必要があります。

削除されたデータに依存するコラボレーターからのクエリは、次回実行されたときに失敗します。

アカウントに登録されているオブジェクトの登録を解除します:

  1. clean room UI にアカウント管理者としてサインインし、次のいずれかの手順を実行します:

    • 管理アカウントを使用している場合は、 Admin > My Account を選択します。

    • Snowflakeアカウントを使用している場合は、 Admin > Snowflake Admin を選択し、 ACCOUNTADMIN ロールを持つユーザーとしてSnowflakeにサインインします。

  2. Admin > Snowflake Admin を選択します。

  3. Log in to Snowflake を選択し、 ACCOUNTADMIN ロールを持つユーザーとして認証します。

  4. アカウントで外部テーブルまたはIcebergテーブルを有効にするには、 External & Iceberg Tables トグルを有効にします。

  5. Access management for Snowflake objects セクションで、 Edit を選択し、データベース、スキーマ、またはオブジェクトの選択を解除して、このアカウントのユーザーがそのデータを利用できないようにします。

  6. Save を選択します。

  7. このデータを基に作成されたclean roomを更新してください。

外部テーブルと Apache Iceberg™ テーブルの有効化

外部テーブルとIcebergテーブルをclean roomにリンクするには、まず外部テーブルとIceberg テーブルを使用できるようにアカウントを構成する必要があります。外部テーブルとIcebergテーブルを有効にすると、他のテーブルと同じように登録、リンク、使用できます。

外部テーブルとアイスバーグテーブルを有効にするプロセスは、clean room UI とclean room API のどちらを使用してclean roomを管理しているかによって異なります。

外部テーブルとIcebergの要件

  • プロバイダーアカウントと、コンシューマーアカウントの両方から、外部テーブルとIcebergテーブルを有効にし、外部テーブルまたはIcebergテーブルにリンクするclean roomの使用を完全に許可する必要があります。

  • clean roomを管理アカウントと共有する場合、プロバイダーは常に外部テーブルとアイスバーグIcebergテーブルを有効にする必要があります。 これは、管理アカウントが常に外部テーブルを使用するためです。

  • プロバイダーとコンシューマーが異なるリージョンにいる場合、 コンシューマーだけが外部テーブルまたはIcebergテーブルをclean roomにリンクできます。

clean room UI は、外部テーブルとIcebergテーブルをアカウントレベルで制御します。

警告

コンシューマーアカウントがこの機能を有効にしていなければ、コンシューマーは外部テーブルまたはIcebergテーブルにリンクしているclean roomからブロックされるか、またはいずれかのタイプのテーブルにリンクしている、参加済みのclean roomを編集できなくなります(実行はできます)。

DCR 管理者は、プロバイダーアカウントとコンシューマーアカウントの両方で、以下の手順を踏む必要があります:

  1. clean room UI にアカウント管理者としてサインインし、次のいずれかの手順を実行します:

    • 管理アカウントを使用している場合は、 Admin > My Account を選択します。

    • Snowflakeアカウントを使用している場合は、 Admin > Snowflake Admin を選択し、 ACCOUNTADMIN ロールを持つユーザーとしてSnowflakeにサインインします。

  2. External & Iceberg Tables トグルを有効にします。これにより、 UIで作成されたclean roomと、 APIで作成されたclean roomの両方で、この機能が有効になります。

  3. 外部テーブルとIcebergテーブルを、管理者の Access management for Snowflake objects パネルから選択できるようになり、他のオブジェクトと同じように、clean roomでの使用が可能になります。