# Snowflake

> Connect Snowflake to sanda: what to prepare, the fields the connection form asks for, and how its data lands in your warehouse.

## Connect Snowflake

:::steps
1. **Open the catalogue.** In the console, go to **Data · Connections** and press **New connection**.
2. **Choose Snowflake.** It is listed under databases; you can also search for it by name.
3. **Fill in the form.** Enter the fields below. Credentials go straight to sanda’s sync engine and are never stored in sanda’s database.
4. **Choose what to sync.** Pick the streams you want, and a sync mode for each. See [choose what to sync](https://docs.sanda-os.com.au/connections/choose-streams).
5. **Run the first sync.** sanda tests the connection, then lands each stream as a table in your warehouse.
:::

## Configuration fields

What the connection form asks for. Required fields are marked; the rest are optional.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Authorization Method** | one of 3 options | No |  |
| **Server URL** | string | Yes | The host domain of the snowflake instance (must include the account, region, cloud environment, and end with snowflakecomputing.com). |
| **Role** | string | Yes | The role you created for becca to access Snowflake. |
| **Warehouse** | string | Yes | The warehouse you created for becca to access data. |
| **Database** | string | Yes | The database you created for becca to access data. |
| **Schema** | string | No | The source Snowflake schema tables. Leave empty to access tables from multiple schemas. |
| **JDBC URL Params** | string | No | Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3). |
| **Update Method** | one of 1 options | No | Configures how data is extracted from the database. |
| **Checkpoint Target Time Interval** | integer | No | How often (in seconds) a stream should checkpoint, when possible. Default `300`. |
| **Concurrency** | integer | No | Maximum number of concurrent queries to the database. Default `1`. |
| **Check Table and Column Access Privileges** | boolean | No | When this feature is enabled, during schema discovery the connector will query each table or view individually to check access privileges and inaccessible tables, views, or columns therein will be removed. In large schemas, this might cause schema discovery to take too long, in which case it might be advisable to disable this feature. Default `true`. |

### Authorization Method


Choose one of the following. Each asks for its own fields.

**Key Pair Authentication**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Username** | string | Yes | The username you created to allow becca to access the database. |
| **Private Key** | string, secret | Yes | RSA Private key to use for Snowflake connection. |
| **Passphrase** | string, secret | No | Passphrase for private key. |

**Username and Password (Deprecated)**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Username** | string | Yes | The username you created to allow becca to access the database. |
| **Password** | string, secret | Yes | Deprecated. The password associated with the username. |

**Programmatic Access Token**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Programmatic Access Token** | string, secret | Yes | The programmatic access token used to authenticate to Snowflake. |


### Update Method

Configures how data is extracted from the database.

Choose one of the following. Each asks for its own fields.

**Scan Changes with User Defined Cursor**

No further fields.


## Related

:::links
- [Sync modes](https://docs.sanda-os.com.au/connections/sync-modes): How sanda reads each stream on every run.
- [Sync schedules](https://docs.sanda-os.com.au/connections/schedules): How often a connection runs.
- [Allowlist sanda’s address](https://docs.sanda-os.com.au/connections/allowlist): For a system behind a firewall.
- [Troubleshoot connections](https://docs.sanda-os.com.au/connections/troubleshooting): What an error means and how to fix it.
:::
