Registering data¶
This topic describes how to register data so it can be linked into a Snowflake Data Clean Room.
Supported objects¶
The types of objects that can be linked into a clean room differs depending on whether it is created in the web app or using the developer APIs. Specific objects of these types must be registered before they can be linked.
- Web app:
The web app of Snowflake Data Clean Rooms supports the following objects:
Tables
External tables
Apache Iceberg™ tables
Views
Materialized views
Secure views. The owner of a secure view must be the SAMOOHA_APP_ROLE role.
- Developer API:
Because Snowflake Data Clean Rooms rely on the Snowflake Native App Framework, you can link any object that is supported by the Snowflake Native App Framework.
Note
External tables and Iceberg tables must be explicitly allowed to be linked in a clean room. For more information, see Snowflake Data Clean Rooms: External and Iceberg tables.
Registering data objects¶
Before users can link data into a Snowflake Data Clean Room, the data must be registered at the database, schema, or object level. If you register a database or schema, all of the objects in that database or schema are registered.
You can register databases, schemas, and objects using Snowsight or the developer APIs. Using Snowsight is simpler, but requires that you have the ACCOUNTADMIN role. With the developer APIs, the owner of an object can register it even if they are not an account administrator.
Registering a database, schema, or object grants access to the SAMOOHA_APP_ROLE role, which is the role that developers use when they execute the developer APIs.
Note
Registering a database or schema does not automatically register objects that are added after the registration. You must either register the new object individually or use the web app’s Snowflake Admin option to return to the Database Registration section, and then select Resync.
Register data in Snowsight¶
To register a database, schema, or object in Snowsight, do the following:
Select Admin » Snowflake Admin.
Select Login to Snowflake, and authenticate as a user with the ACCOUNTADMIN role.
In the Database Registration section, select Edit, and then select the database, schema, or object.
Select Save.
Register data using the developer APIs¶
The developer APIs let account administrators register databases, schemas, and objects programmatically. The owner of the database, schema, or object can register it.
The following APIs are available:
Task |
API |
Input |
---|---|---|
Register a database |
|
Database name (string) |
Register a schema |
|
Schema names (array of strings) |
Register a managed access schema |
|
Managed access schema names (array of strings) |
Register any type of object |
|
|
Register a table |
|
Table names (array of strings) |
Register a view |
|
View names (array of strings) |
Register a table in a managed access schema |
|
Table names (array of strings) |
Register a view in a managed access schema |
|
View names (array of strings) |
For example, the owner of a schema MY_SCHEMA
can register it by executing the following commands in a worksheet:
CALL samooha_by_snowflake_local_db.library.register_schema(['MY_DB.MY_SCHEMA']);
Unregister data using the developer APIs¶
You can use the following APIs to reverse the registration of databases, schemas, and objects:
Task |
API |
Input |
---|---|---|
Unregister a database |
|
Database name (string) |
Unregister a schema |
|
Schema names (array of strings) |
Unregister a managed access schema |
|
Managed access schema names (array of strings) |
Unregister any type of object |
|
|
Unregister a table |
|
Table names (array of strings) |
Unregister a view |
|
View names (array of strings) |
Unregister a table in a managed access schema |
|
Table names (array of strings) |
Unregister a view in a managed access schema |
|
View names (array of strings) |