docs/quick-ingestion-guides/snowflake/configuration.md
Now that you have created a DataHub-specific user with the relevant roles in Snowflake in the prior step, it's now time to set up a connection via the DataHub UI.
:::note If you do not see the Ingestion tab, please contact your DataHub admin to grant you the correct permissions :::
This will securely store your Snowflake password within DataHub
SNOWFLAKE_PASSWORD - we will use this later to refer to the secretEnter the Snowflake Account Identifier as Account ID field. Account identifier is the part before .snowflakecomputing.com in your snowflake host URL:
Learn more about Snowflake Account Identifiers here
Add the previously added Password secret to Password field:
SNOWFLAKE_PASSWORD secretPopulate the relevant fields using the same Username, Role, and Warehouse you created and/or specified in Snowflake Prerequisites.
<p align="center"> </p>This step will ensure you have configured your credentials accurately and confirm you have the required permissions to extract all relevant metadata.
<p align="center"> </p>After you have successfully tested your connection, click Next.
Now it's time to schedule a recurring ingestion pipeline to regularly extract metadata from your Snowflake instance.
You will now find your new ingestion source running
<p align="center"> </p>Congratulations! You've successfully set up Snowflake as an ingestion source for DataHub!
If you want to ingest Snowflake internal marketplace listings (private data sharing via Data Exchange) as Data Products, you'll need to enable additional configuration.
If you purchase/install internal marketplace listings, add these options to your recipe:
marketplace:
enabled: true
marketplace_mode: "consumer" # This is the default
# Optional: Configure time window for usage statistics
start_time: "-7 days" # Default: -1 day
end_time: "now"
# Required: Map your imported databases to their source shares
shares:
DEMO_DATABASE_SNOWFLAKE_SHARE_1754064671731: # From: SHOW SHARES
database: "SOURCE_DATABASE" # Source database in the share
consumers:
- database: "DEMO_DATABASE" # Your purchased/imported database
# Optional but recommended: Explicit listing mapping for precise linking
listing_global_name: "PROVIDER.REGION.LISTING_NAME" # From: SHOW AVAILABLE LISTINGS
Tip: Adding listing_global_name ensures your purchased databases are accurately linked to their marketplace listings, especially when you have multiple similar listing names.
If you publish/share data through the internal marketplace, add these options to your recipe:
marketplace:
enabled: true
marketplace_mode: "provider"
# Optional: Assign owners to your Data Products
internal_marketplace_owner_patterns:
"^Customer.*": ["data-team"]
# Optional: Configure time window for usage statistics
start_time: "-30 days"
end_time: "now"
# Include your source databases being shared
database_pattern:
allow:
- "YOUR_SOURCE_DATABASE"
Important: For provider mode to work, you must have granted imported privileges on database snowflake to both the role AND the user (see Setup for details). Share access in Snowflake is granted at the user level, not the role level.
Use marketplace_mode: "both" to track both purchased and published listings in the same ingestion.
For complete documentation on marketplace configuration, see the Snowflake connector documentation.