# Snowflake [Snowflake](https://www.snowflake.com/) can either be used as a data source or a data destination in Zuar Runner. .. image:: assets/snowflake-1.png :alt: Zuar Runner and Snowflake Source plugin example: [Query](/jobs/query/) Destination plugin examples: [CSV](/jobs/csv/), [Salesforce](/connectors/salesforce/), [SQL](/jobs/sql/) ## Using Snowflake as a Data Destination Note the following considerations when sending Zuar Runner job output to Snowflake. Zuar Runnner will automatically: - Create the Snowflake database schema if it doesn't exist - Create the Snowflake database tables if they don't exist - Determine data types for Snowflake columns - Add new columns to Snowflake tables based on new fields in source data - Adjust Snowflake tables based on changes in source data ## Snowflake Database URL Setup The [database url](/databases/database-urls/) structure for connecting to a Snowflake database uses this format: `snowflake://:@/?warehouse=` - `user_login_name`: The username Runner uses to authenticate to your Snowflake instance - `password`: The password of the Snowflake user specified above - `account_identifier`: - After logging into your Snowflake account console in a web browser, the account identifier should be found in the browser URL here: **https://``.snowflakecomputing.com** - Do *not* include the snowflakecomputing.com domain name as part of your account identifier. - More information on determining your [account identifier](https://docs.snowflake.com/user-guide/admin-account-identifier). - `database`: Name of the database where Runner should write job output - `warehouse_name`: Name of the warehouse that contains the above database At a mimimum, we recommend including all of the components above. You can also include `schema` and `role` if the defaults for the user account are not appropriate to your specific needs using this format: `snowflake://:@//?warehouse=&role=` `schema` is also an option in the Runner job configuration. Use this option if you need to change schemas on a per-job basis. .. NOTE:: When outputting to a Snowflake database, leaving the `schema` blank will create a table in the **public** schema. Reference: [Using Snowflake via the Python connector](https://docs.snowflake.com/developer-guide/python-connector/sqlalchemy#required-parameters). Here's an example of using a Snowflake database as a destination in a [CSV](/jobs/csv/) job: .. image:: assets/snowflake__output.png :alt: CSV JOB ## SQL Zuar Runner can send [SQL](/jobs/sql/) statements to a Snowflake database. Use [Snowflake SQL syntax](https://docs.snowflake.com/en/sql-reference-commands) in these Zuar Runner SQL jobs. ## Cheat Sheet The Zuar team has ample experience working with Snowflake. The team has created this cheat sheet to help you get started: [Snowflake Cheat Sheet](https://www.zuar.com/blog/snowflake-cheat-sheet/)