> This page is for Docs.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://zuora.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server.

# Snowflake configuration parameters

> Configure a Snowflake source by selecting the event definition, Snowflake connection, and data retrieval mode, and then optionally overriding connection defaults for the run.

Configure a Snowflake source by selecting the event definition, Snowflake connection, and data retrieval mode, and then optionally overriding connection defaults for the run.

After you create a Snowflake connection, configure the Snowflake source operator in the meter to define what data to read and how to run the export.

## Name

Use **Name** to provide a user-friendly name for the operator. This name appears in Meter Designer, Run History, Audit Trail, and error messages.

Example:

```text
Daily Usage Import
```

## Event Definition

Use **Event Definition** to specify the schema used by downstream operators. The event definition determines field names, field types, and validation rules. Every row returned from Snowflake is mapped into this structure.

Example event definition:

```text
Customer Usage Event
```

Example schema:

```json
{
  "accountNumber": "string",
  "usageDate": "date",
  "quantity": "number"
}
```

## Connection

Use **Connection** to select the Snowflake connection used by the source. The connection contains the Snowflake account URL, authentication details, and default role, warehouse, database, and schema values.

Example:

```text
Production Snowflake
```

## Unload Data From

**Unload Data From** determines how data is retrieved from Snowflake.

**Table** reads data directly from a Snowflake table. Use this option when the source data already exists in a prepared table, no filtering is required, or the full dataset should be processed.

Example:

```text
CUSTOMER_USAGE
```

**Query** reads data by using a custom SQL query. Use this option when you need to filter records, join multiple tables, perform calculations in Snowflake, or support incremental ingestion patterns. For most usage ingestion scenarios, **Query** is typically the better choice because it lets you limit the exported data to only the required records.

A single Snowflake source supports one query only. You cannot configure multiple independent queries in the same source.If multiple queries return the same schema, combine them into a single query by using `UNION ALL`. If the queries return different schemas, create separate Snowflake sources or separate meters so they can run and be monitored independently.

Example:

```sql
SELECT *
FROM CUSTOMER_USAGE
WHERE DATE(event_time) = CURRENT_DATE()
```

## Advanced Settings

Advanced settings override the defaults configured in the Snowflake connection. All fields are optional.

**Role** specifies the Snowflake role used when executing the query. Use this when different meters require different Snowflake permissions.

Example:

```text
USAGE_READER_ROLE
```

**Warehouse** specifies the Snowflake warehouse used for query execution. The warehouse determines the compute resources available for the export, and larger warehouses generally complete exports faster.

Example:

```text
COMPUTE_WH
```

**Database** specifies the database containing the source data and overrides the default database defined in the connection.

Example:

```text
USAGE_DB
```

**Schema** specifies the schema containing the table or query objects and overrides the default schema defined in the connection.

Example:

```text
PUBLIC
```

**Partition By** is an optional Snowflake expression used when exporting data. Partitioning organizes exported files into logical groups before Mediation reads them. Typical use cases include partitioning by date, region, customer, and product. For smaller datasets, partitioning is often unnecessary.

Example:

```sql
DATE(event_time)
```

Example partition output:

```text
2026-06-01/
2026-06-02/
2026-06-03/
```

## Example configuration

```text
Name: Daily Usage Import
Connection: Production Snowflake
Query:
SELECT
  account_number,
  usage_date,
  quantity
FROM CUSTOMER_USAGE
WHERE DATE(usage_date) = CURRENT_DATE()

Advanced Settings:
Role: USAGE_READER_ROLE
Warehouse: COMPUTE_WH
Database: USAGE_DB
Schema: PUBLIC
Partition By: DATE(usage_date)
```

Runtime behavior for this example:

1. A meter run starts.
2. Snowflake exports matching records to a Zuora-managed S3 staging location.
3. Mediation reads the exported files.
4. Each row becomes a pipeline event.
5. The pipeline processes the events.
6. The run completes after all exported files have been consumed.