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

# Read from Snowflake tables

> Configure a Snowflake table, view, or seed as a read source

export const execution_engine_0 = "the SQL warehouse"

<Info>This gem runs in {execution_engine_0}.</Info>

## Overview

In Prophecy, datasets stored in the [SQL Warehouse Connection](/data-analysis/environment/fabrics/prophecy-fabrics) defined in your fabric are accessed using Table gems. Unlike Source and Target gems, Table gems run directly within the data warehouse, eliminating extra orchestration steps and improving performance.

This page explains how to read from a Snowflake table, view, or seed using the Table gem. To write to a Snowflake table or view instead, see [Write to Snowflake tables](/data-analysis/gems/source-target/table/snowflake-write).

## Table types

The following table types are supported for Snowflake connections.

| Name  | Description                                                                                                     | Type             |
| ----- | --------------------------------------------------------------------------------------------------------------- | ---------------- |
| Table | Persistent storage of structured data in your SQL warehouse. Optimized for frequent queries and large datasets. | Source or Target |
| View  | A virtual table that derives data dynamically from a query. Recomputed at runtime.                              | Source or Target |
| Seed  | Small CSV-format files that you can write directly in Prophecy.                                                 | **Source only**  |

## Configure table

Once you create a Table gem, you can reuse the table throughout your project. All created tables appear in the [Project](/data-analysis/development/studio/studio) tab in the left sidebar.

To read from a table in your pipeline:

<Steps>
  <Step title="Add a table gem to the pipeline">
    1. Open your pipeline in the [Studio](/data-analysis/development/studio/studio).
    2. Click on **Source/Target** in the canvas.
    3. Select **Table** from the dropdown.
    4. Click on the gem to open the configuration.
  </Step>

  <Step title="Select a table">
    Choose the table, view, or seed you want to read from the list.

    <Note>
      Seeds configure differently from Tables and Views — see [Configure seeds](#configure-seeds) below.
    </Note>
  </Step>

  <Step title="Configure location">
    Specify the table's location using database, schema, and name.

    <Note>
      For a **View**, enter the database, schema, and view name here instead.
    </Note>
  </Step>

  <Step title="Configure properties">
    Define or infer schema. Add a description if needed.
  </Step>

  <Step title="Preview data">
    Load a sample of the data before saving.

    <Note>
      For a **View**, this loads data based on the view's underlying query rather than stored data.
    </Note>
  </Step>

  <Step title="(Optional) Create and run data tests for the table">
    See [Table tests vs. project tests](/data-analysis/development/tests/test-comparison) to decide which approach fits your validation needs.
  </Step>
</Steps>

## Configure seeds

Seeds are lightweight CSV datasets defined in your project. Seeds are source-only.

| Parameter  | Description                                                                                                            |
| ---------- | ---------------------------------------------------------------------------------------------------------------------- |
| Properties | Copy-paste your CSV data and define certain [properties](https://docs.getdbt.com/reference/seed-configs) of the table. |
| Preview    | Load a preview of your seed in table format.                                                                           |

<Note>
  Seeds are implemented as [dbt seeds](https://docs.getdbt.com/docs/build/seeds) under the hood. The
  CSV data you define is stored in your Prophecy project files and materialized as a table in your
  Snowflake data warehouse. This table is created in the default database and schema specified in
  your Snowflake connection.
</Note>

## Reusing and sharing tables

After you create a table in Prophecy, you can reuse its configuration across your entire project. All created tables appear in the [Project](/data-analysis/development/studio/studio) tab in the left sidebar. To make tables available to other teams, you can share your project as a package in the [Package Hub](/data-analysis/development/extensibility/package-hub/package-hub). Other users will be able to use the shared table configuration, provided they have the necessary permissions in Snowflake to access the underlying data.

## Limitations

Currently, Snowflake tables do not support:

* Case-sensitive identifiers.
* Creating new partitioned tables.
* Modifying partitioning of existing tables.
