# Snowflake

## Introduction to Snowflake with Couchdrop

Couchdrop’s native support for inserting data into Snowflake through file actions makes it incredibly simple to move data from virtually any source into your data warehouse. You can configure Couchdrop to automatically ingest files and stream their contents directly into Snowflake tables. This enables seamless integration of data coming from cloud storage, SFTP/FTP servers, APIs, or inbound webhooks - all with minimal setup.

With this capability, teams can unlock fast and reliable ingestion of structured or semi-structured data without needing to manage ETL infrastructure. Couchdrop handles the heavy lifting of getting data into Snowflake so it’s immediately available for analysis.&#x20;

<div align="left"><figure><img src="https://391958821-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpokYqd27yrOUxIBhyvbF%2Fuploads%2Fg2RFFRdNfvjAb0nWm4Qu%2Fsnowflake.webp?alt=media&#x26;token=05ed1f94-6d2f-4b3f-b9e7-03bd6c209cf6" alt=""><figcaption></figcaption></figure></div>

## How Snowflake works with Couchdrop

Snowflake is configured in Couchdrop as a platform integration. This type of integration does not appear directly as a [virtual folder](https://docs.couchdrop.io/connections/virtual-folders) as Couchdrop needs to understand how to translate the data into rows in Snowflake.&#x20;

Instead; Snowflake is configured as a connection and then you can use this connection as a file action inside an [transfer-automations](https://docs.couchdrop.io/features/transfer-automations "mention") or [file-actions](https://docs.couchdrop.io/features/file-actions "mention").&#x20;

When you configure the file action - you provide details about the data table schema in Snowflake and how that maps to the data files being ingested by Couchdrop.  &#x20;

## Requirements

To connect to Snowflake in Couchdrop you will need:

* A snowflake account and access to the table you are working with
* Access credentials; account ID, access key
* A location or inbound method in Couchdrop that you are ingesting data via&#x20;

## Configuration Steps

1. Log in to Couchdrop and add a new system integration
2. Select Snowflake from the list of available integrations
3. Provide the details above
4. Click **Add System Integration** and follow the wizard
5. Create an automation or file action and select Snowflake as the platform type.&#x20;

## Common issues connecting to Snowflake

{% hint style="success" %}
For a comprehensive guide on generating an access token, see  <https://docs.snowflake.com/en/user-guide/programmatic-access-tokens>&#x20;
{% endhint %}

The network policy setup for your user in Snowflake can block us from authenticating and connecting to your Snowflake account. The authentication policy setup for your user in Snowflake can prevent the network policy from blocking us, if it is an issue, by running

```
CREATE|ALTER AUTHENTICATION POLICY <my_policy_name>
  PAT_POLICY=(
    NETWORK_POLICY_EVALUATION = NOT_REQUIRED
  );
```

The authentication policy can also block us from connecting if the authentication methods have been configured, and do not include `PROGRAMMATIC_ACCESS_TOKEN` in the available authentication methods. To see if this is the case you can run&#x20;

```
DESCRIBE AUTHENTICATION POLICY <authentication_policy_name>;
```

To add the authentication method to your authentication policy, you can run&#x20;

```
ALTER AUTHENTICATION POLICY <authentication_policy_name>
  SET AUTHENTICATION_METHODS = ('PROGRAMMATIC_ACCESS_TOKEN');
```

To generate the programmatic access token

```
ALTER USER IF EXISTS <example_user> ADD PROGRAMMATIC ACCESS TOKEN example_token;
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.couchdrop.io/connections/connect-platforms/snowflake.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
