> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake destination for ELT & CDC

> Configure Snowflake as a destination in Integrate.io ELT & CDC. Set up your Snowflake warehouse to receive replicated data from your sources.

## Overview

Integrate.io's ELT & CDC offering allows companies to replicate their data to Snowflake in real-time with industry leading replication speed of every 60 seconds. This is particularly useful for companies that are using Snowflake to power data products where real-time data is required, particularly if it is for customer-facing data products.

ELT & CDC uses Snowflake compute resource in auto suspend and auto-resume mode to run queries to load data from an external stage. You have an option to either run an ELT & CDC dedicated compute warehouse and provide a database for ELT & CDC to load data or choose an existing warehouse and database to load.

Using an existing warehouse is recommended to minimise compute resources usage and cost for loading data from any source to Snowflake

## Requirements

* Any one of the **ACCOUNTADMIN**, **SYSADMIN** or **SECURITYADMIN**  access for running the prerequisite/setup steps.

## Setup script

Input your username and warehouse. Copy the user script and run on your snowflake worksheet.

<Frame>
  <img src="https://mintcdn.com/integrateio/MGWLTifrhXADDsEf/images/cdc/destinations/image-3.png?fit=max&auto=format&n=MGWLTifrhXADDsEf&q=85&s=9945022727cfc0d03a4e4b767668a977" alt="Snowflake setup script with username and warehouse input fields" width="1200" height="824" data-path="images/cdc/destinations/image-3.png" />
</Frame>

Input your role name, db and schema. Copy the role script and run on your snowflake worksheet.

<Frame>
  <img src="https://mintcdn.com/integrateio/MGWLTifrhXADDsEf/images/cdc/destinations/image-4.png?fit=max&auto=format&n=MGWLTifrhXADDsEf&q=85&s=0802c4b29be42faa1eedcaeafde6d3f7" alt="Role script with role name, database, and schema input fields" width="1200" height="932" data-path="images/cdc/destinations/image-4.png" />
</Frame>

Copy the integration script and run on your snowflake worksheet.

<Frame>
  <img src="https://mintcdn.com/integrateio/MGWLTifrhXADDsEf/images/cdc/destinations/image-5.png?fit=max&auto=format&n=MGWLTifrhXADDsEf&q=85&s=c8b24619d2b937125bf29aad61a0fa68" alt="Integration script ready to copy and run in Snowflake worksheet" width="1200" height="688" data-path="images/cdc/destinations/image-5.png" />
</Frame>

Input your Snowflake Account Identifier on the dashboard. Please refer to this [documentation](/cdc/how-to-get-your-snowflake-account-identifier) on how to get your Snowflake Account Identifier.

<Frame>
  <img src="https://mintcdn.com/integrateio/MGWLTifrhXADDsEf/images/cdc/destinations/image-6.png?fit=max&auto=format&n=MGWLTifrhXADDsEf&q=85&s=b0c362bac7359343518c992e538a2e8d" alt="Snowflake Account Identifier input field on the dashboard" width="1200" height="541" data-path="images/cdc/destinations/image-6.png" />
</Frame>

*Note that the all details here (username, warehouse, db etc) should be the same with the one you executed on your snowflake worksheet. Input your snowflake identifier per dashboard instruction.*

### Snowflake Network Policy

If you have an existing [Network Policy](https://docs.snowflake.com/en/user-guide/network-policies), please [modify your network policy](https://docs.snowflake.com/en/user-guide/network-policies#modifying-network-policies) add ELT\&CDC [IP Addresses](/cdc/ip-list) 

### Limitations

* The maximum allowed VARCHAR/TEXT length of single-byte characters is 16,777,216 and 4,194,304 for 4 byte characters (per [snowflake's documentation](https://docs.snowflake.com/en/sql-reference/data-types-text.html)).
* The maximum length of a [VARIANT](https://docs.snowflake.com/en/sql-reference/data-types-semistructured.html#variant) is 16 MB.

### Required Privileges

| Name                            | Description | Enforced? | Reference |
| :------------------------------ | :---------- | :-------- | :-------- |
| CREATE SCHEMA (Database)        |             | ✅         |           |
| MONITOR (Database)              |             | ✅         |           |
| USAGE (Database)                |             | ✅         |           |
| USAGE (Warehouse)               |             | ✅         |           |
| CREATE EXTERNAL TABLE (Schema)  |             | ✅         |           |
| CREATE FILE FORMAT (Schema)     |             | ✅         |           |
| CREATE FUNCTION (Schema)        |             | ✅         |           |
| CREATE PIPE (Schema)            |             | ✅         |           |
| CREATE PROCEDURE (Schema)       |             | ✅         |           |
| CREATE SEQUENCE (Schema)        |             | ✅         |           |
| CREATE STAGE (Schema)           |             | ✅         |           |
| CREATE STREAM (Schema)          |             | ✅         |           |
| CREATE TABLE (Schema)           |             | ✅         |           |
| CREATE TASK (Schema)            |             | ✅         |           |
| CREATE TEMPORARY TABLE (Schema) |             | ✅         |           |
| CREATE VIEW (Schema)            |             | ✅         |           |
| MODIFY (Schema)                 |             | ✅         |           |
| MONITOR (Schema)                |             | ✅         |           |
| USAGE (Schema)                  |             | ✅         |           |

## Related

<CardGroup cols={2}>
  <Card title="Snowflake Account Identifier" icon="arrow-right" href="/cdc/how-to-get-your-snowflake-account-identifier" horizontal />

  <Card title="Migrating to Key-Pair Auth" icon="arrow-right" href="/cdc/migrating-authentication-from-password-to-key-pair" horizontal />

  <Card title="Data Type Mapping - Snowflake" icon="arrow-right" href="/cdc/data-type-mapping-snowflake" horizontal />

  <Card title="IP Allowlist" icon="arrow-right" href="/cdc/ip-list" horizontal />

  <Card title="Initial Sync Process" icon="arrow-right" href="/cdc/initial-sync-process" horizontal />
</CardGroup>
