Set Up Zero-Copy Data In with Snowflake
Prerequisites
- Configure Snowflake.
- Take note of yourAccount Locatorvalue from your account details.
Task 1: Create a Zero-Copy Connection to Snowflake
You can access Snowflake table metadata without copying data by creating a zero-copy connection from Workday to your Snowflake Iceberg catalog.
- In Workday, access the Prism Data Catalog report.
- Select+ Create>Connection.
- In theCreate Connectionwizard, underZero Copy Connectors, select theSnowflaketile.
- Enter the connection details:FieldDescriptionNameThe connection name must be unique in the Data Catalog. Example:Snowflake_ZeroCopy_<first name><last initial>.Description(Optional) A brief description of the connection's purpose.Catalog URLThe URL of the Snowflake data catalog. The URL must use only lowercase characters. Format:https://<account_locator>.snowflakecomputing.com/polaris/api/catalogCatalog NameThe name of the Snowflake catalog that contains your Iceberg tables.Authentication TypeSelectOauth 2.0 with Key Pair.IssuerEnter initial values. You'll retrieve thePUBLIC_KEY_FPvalue later in this procedure. Format:ACCOUNT_LOCATOR.SERVICE_USER.PUBLIC_KEY_FPExample:XTQ04827.ICEFLOW_PRISM_USER.<PUBLIC_KEY_FP>PrincipalThe Service Principal from Snowflake. This user will be used to authenticate the Snowflake connection. Format:ACCOUNT_LOCATOR.SERVICE_USERExample:XTQ04827.ICEFLOW_PRISM_USERToken EndpointThe OAuth2 token endpoint from Snowflake. Format:Catalog_URL/v1/oauth/tokens Example:https://<account_locator>.snowflakecomputing.com/polaris/api/catalog/v1/oauth/tokensScopesThe OAuth2 scopes from Snowflake. The scopes define what the Principal has access to when connected to Snowflake.
- Save the connection but donottest it yet. Before you test the connection, you must complete the certificate/key setup in the subsequent steps.After the save is complete, theAuthentication Certificatewindow displays.
- From theAuthentication Certificatewindow, download the certificate inPKCS#8format.If you skipped downloading the certificate from theAuthentication Certificatewindow, follow these steps:
- Access theData Catalogreport.
- From theConnectionslist, open the connection you just created. Example:Snowflake_ZeroCopy_<first name><last initial>
- On theView Connection Detailspage, locate theAuthentication Certificatesection.
- ClickCertificate>Download.
- SelectPKCS#8.
This file contains the RSA public key that you'll register with the Snowflake service user. - Set the RSA public key on the Snowflake service user.
- Sign in to your Snowflake account.
- Create aSQL Worksheetwith sufficient privileges to alter the service user.
- Type and run an ALTER USER command to set the RSA public key for your service user.Example:ALTER USER ICEFLOW_PRISM_USER SET RSA_PUBLIC_KEY = '<Content of Downloaded PKCS#8>';If your environment uses asecond RSA key, use RSA_PUBLIC_KEY_2 instead. Example:ALTER USER ICEFLOW_PRISM_USER SET RSA_PUBLIC_KEY_2 = '<Content of Downloaded PKCS#8>';
- Run the following command to inspect the user and retrieve the public key fingerprint:DESCRIBE USER ICEFLOW_PRISM_USER;
- In the result set, locate the value of either:
- RSA_PUBLIC_KEY_FP
- RSA_PUBLIC_KEY_2_FP (if you used the second key)
- Copy this fingerprint value.
- Update the Workday connection Issuer with the fingerprint value.
- In Workday, open your Snowflake zero-copy connection.
- From the related actions menu of the connection, selectPrism Connection>Edit Connection.
- Update theIssuerfield to append the RSA public key fingerprint.Use this final Issuer format:<ACCOUNT_LOCATOR>.<SERVICE_USER>.<PUBLIC_KEY_FP>Where:
- ACCOUNT_LOCATORis your Snowflake account locator.
- SERVICE_USERis the service user you altered above.
- PUBLIC_KEY_FPis the value copied from RSA_PUBLIC_KEY_FP (or RSA_PUBLIC_KEY_2_FP).
- Save the updated connection.
- Test the connection.
- On theConnection Detailspage, selectTest Connection.
- If the test fails, verify:
- Catalog URL format.
- Token endpoint URL.
- Service user and account locator values.
- RSA public key is correctly set on the user.
- Issuer format, including the public key fingerprint.
Task 2: Create an External Catalog
An external catalog acts as a virtual window into your external data, allowing you to browse tables in real-time.
- Access theData Catalogreport.
- Select+ Create>External Catalog.
- Enter the external catalog details:FieldDescriptionExternal Catalog NameEnter a name for your external catalog.ConnectionSelect the external partner zero-copy connection you just created.NamespaceThe exact namespace where the Iceberg connector tables reside. This information is provided by Snowflake. Example:enterprise.finance.procurement.Description(Optional) The description of the external catalog.
- ClickSave.
- Wait for theSuccessnotification that the External Catalog was created.
- SelectBack to Data Catalog.
- SelectExternal Catalog, and validate that schema sync is successful on your External Catalog.
After you save the External Catalog, Workday automatically runs a
Schema Sync
to:- Read the metadata of Iceberg tables in the specified Snowflake namespace.
- Register those tables asExternal Tablesin Workday.
- Make table structures visible in the Data Catalogwithout moving or copying data.
The duration of this sync depends on the number and complexity of tables in the namespace.
Task 3: Explore and Validate External Tables
Explore the external tables registered from the external partner and perform basic schema validation inside Workday.
- Locate the external partner's external tables.
- Access theData Catalogreport.
- In the left-hand menu, selectExternal Tables.
- Click on theRefreshbutton.
- In theExternal Tablesview, confirm that all Iceberg tables from the external partner are listed under the schema/namespace you selected during external catalog creation.
- Inspect an external table.
- Right-click or double-click the table name to openView External Table Details.
- On the details page, review:
- Column names
- Data types
- Any available column statistics
- Sample data preview (if present)
- Verify that:
- Data types (Example: Numeric vs. string) align with the definitions in the external system.
- Values appear as expected.