The Snowflake integration synchronizes metadata from your Snowflake datawarehouse into the data lineage graph.

Web App

Snowflake Integration


NameName for connectionSnowflake
NamespaceNamespace for the connection, see namespacesdefault
accountSnowflake account, the characters in front of .snowflakecomputing.comhujwihs-hab96881
userDatabase user
roleSnowflake role to useREAD_ONLY
warehouseSnowflake warehouse to useCOMPUTE_WH
databaseSnowflake database
schemaSnowflake schema to use (optional)
passwordDatabase password

Python Library


Install Snowflake Grai package with pip

pip install grai-source-snowflake

This installs the Grai snowflake integration, which is now ready to run in python

Connecting & Syncing

The integration comes equipped with the client library already but we will need a python terminal or Jupyter Notebook to execute a few commands to establish a connection and begin querying the server.

Spin up your favorite python terminal then:

import os
from grai_source_snowflake.base import update_server

For now we will use the default user credentials though you are free to create a new user / api keys from the server admin interface at http://localhost:8000/admin (opens in a new tab).

client = ClientV1("localhost", "8000", username="null@grai.io", password="super_secret")

Now we can update the server with data from any snowflake source. In order to do so you will need to pass credentials and namespace into the update_server function. Namespace is used to uniquely identify the nodes and when used consistently will allow you to add to the node from any source.

Using example variables, in order to update the server with your metadata, simply run:

update_server(client, account="[your_account]", user="[your_user]]", password="[your_password]", role="[your_role]", warehouse="COMPUTE_WH", database="GRAI", schema="JAFFLE_SHOP", namespace="test")