Enable reverse sync to push asset descriptions authored in Atlan back to Snowflake as comments.
Push description updates to Snowflake
Atlan can push the descriptions that you write in Atlan back to Snowflake as comments on the matching objects. Your Snowflake comments then match the descriptions that your data stewards maintain in Atlan.
Description reverse sync is event driven. There is no workflow to schedule and no crawl to run. After you enable it for a connection, Atlan applies each description edit to Snowflake. Atlan only sets the comment on an existing Snowflake object. It doesn't create, drop, or recreate any object, and it doesn't change ownership or grants. For the asset types that Atlan supports and the statement it runs for each one, see Description reverse sync statements.
Reverse sync for Snowflake covers two kinds of metadata, and you enable each of them separately:
- Descriptions: enabled per connection on the Snowflake connector, as described on this page.
- Tags: enabled per tag in the Governance center.
Enabling one of them has no effect on the other.
The Asset description reverse sync app also writes Atlan descriptions to Snowflake. The app runs on a schedule, and it offers asset filters, a dry run, offline SQL generation, and a separate Snowflake credential. Description reverse sync on the connector has none of these options. If you need them, use the app.
Prerequisites
Before you enable description reverse sync, make sure that you have the following:
- An existing Snowflake connection in Atlan, with the assets you want to enrich already crawled. The connection must connect to Snowflake directly. Description reverse sync isn't available for connections that use the self-deployed agent.
- Permission to modify the Snowflake workflow configuration in Atlan.
- A Snowflake administrator who can grant the privileges to set comments, as described in Grant Snowflake privileges.
Grant Snowflake privileges
Snowflake lets only a role with the OWNERSHIP privilege on an object set its comment. This applies to every object type Atlan writes to, including databases, schemas, and functions. A role that can see an object but doesn't own it gets an Insufficient privileges error. The same grants work for both extraction methods.
Atlan connects with the user and role of your Snowflake connection, and it activates all secondary roles of that user. Atlan can set a comment on an object when the role that owns the object is one of the following:
- The connection role, or a role granted to the connection role.
- A role granted to the connection user.
- A granted role gives the Atlan user every privilege of that role, not only the privilege to set comments. Grant the narrowest owner role that covers the objects you want to sync.
- Ownership of a database or schema doesn't give ownership of the objects inside it. Each table, view, and function keeps its own owner.
- If a system role such as
ACCOUNTADMINorSYSADMINowns an object, transfer ownership of that object to another role instead of granting the system role to the Atlan user.
To grant the privileges, your Snowflake administrator does the following:
-
Find the owner of each table and view in a schema:
SELECT table_name, table_type, table_ownerFROM "<database-name>".INFORMATION_SCHEMA.TABLESWHERE table_schema = '<schema-name>'; -
For each owner role that Atlan can't use yet, do one of the following:
-
Grant the owner role to the connection user:
GRANT ROLE <owner-role> TO USER <atlan-user>; -
Transfer ownership of the object to a role that Atlan can use:
GRANT OWNERSHIP ON <object-type> <object-name> TO ROLE <role-name> COPY CURRENT GRANTS;
-
-
Make sure that a role Atlan can use has
USAGEon the database and schema that contain each object. The privileges of the connection role and of the secondary roles count together, soUSAGEfrom any of these roles is enough.
Enable description reverse sync
Reverse Sync Descriptions is a toggle, and it's off by default. It appears in two places, and it does the same thing in both:
- On the Snowflake connector setup form, when you create a new connection.
- On the workflow configuration form, when you modify the configuration of an existing Snowflake workflow.
To enable description reverse sync:
- Open either the Snowflake connector setup form or the configuration of an existing Snowflake workflow.
- Find the Reverse Sync Descriptions toggle.
- Turn on the toggle.
- Save your configuration.
- Wait 5 minutes before you edit your first description. The new setting takes a few minutes to take effect, and Atlan discards any description edit that you make before then.
You don't need to run a crawl to enable description reverse sync, and you don't need to run one afterward.
To stop description reverse sync, turn off the toggle and save your configuration. Atlan discards any description edit that you make while the toggle is off, and it doesn't push those edits when you turn the toggle on again.
Verify description updates
After you edit a description in Atlan, verify that the description reached Snowflake:
-
Wait a few minutes. Atlan collects edits for a short time before it applies them, so a single edit isn't instant.
-
In Snowsight, open the object and read its comment. You can also read the
commentcolumn ofSHOW TABLES,SHOW VIEWS, orDESCRIBE TABLE. -
To list each statement that Atlan ran and its result, query the Snowflake query history for the query tag
atlan-snowflake-description-reverse-sync:SELECT start_time, query_text, execution_status, error_messageFROM snowflake.account_usage.query_historyWHERE query_tag = 'atlan-snowflake-description-reverse-sync'ORDER BY start_time DESCLIMIT 100;ACCOUNT_USAGEviews have a data latency of up to 45 minutes for query history.
If a description doesn't reach Snowflake, see Why didn't my description reach Snowflake?
See also
- Description reverse sync statements: Supported asset types and the statement Atlan runs in Snowflake for each one
- Description reverse sync FAQ: What doesn't propagate, timing, and why a description doesn't reach Snowflake
- Manage Snowflake tags: Push tag updates from Atlan to Snowflake
- Asset description reverse sync: Scheduled app with asset filters, a dry run, and offline SQL generation