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

# Getting started with Snowflake semantic views

> Import Snowflake semantic views as topics and query them in Omni. Requirements and setup steps.

Omni imports each Snowflake semantic view as a topic, with the semantic view's field definitions, relationships, and AI instructions. You keep your semantic definitions in one place — Snowflake — and explore and visualize them in Omni. Changes to a semantic view in Snowflake reach Omni on the next [schema refresh](/modeling/develop/schema-refreshes).

## What you can do with Snowflake semantic views in Omni

<CardGroup cols={2}>
  <Card title="Sync semantic views to Omni" icon="arrows-rotate" href="/connect-data/snowflake-semantic-views/sync/trigger-sync">
    Run a schema refresh to import semantic views as topics, and see what each part of a definition becomes in Omni.
  </Card>

  <Card title="Query a semantic view topic" icon="magnifying-glass-chart" href="/connect-data/snowflake-semantic-views/querying">
    Find the imported topics and explore them in workbooks.
  </Card>

  <Card title="Push Omni topics to Snowflake" icon="arrow-up-from-bracket" href="/connect-data/snowflake-semantic-views/push-to-snowflake">
    Convert a topic you built in Omni into a Snowflake semantic view definition.
  </Card>
</CardGroup>

## Requirements

To use this integration, you'll need:

* Semantic views created in your Snowflake account
* **Organization Admin** or **Connection Admin** permissions on the Snowflake connection in Omni. This is required to modify the connection's settings.
* An existing [Snowflake connection in Omni](/connect-data/setup/snowflake)

## Setup

Follow these steps to import the semantic views on a Snowflake connection as Omni topics.

<Steps>
  <Step title="Grant database permissions" titleSize="h3">
    1. Confirm that the Omni user role has the permissions outlined in [step 1 of the Snowflake setup guide](/connect-data/setup/snowflake#create-a-database-user-for-omni). This must include read access to the schemas, tables, and views that back your semantic views.
    2. Grant the Omni user role read access to your semantic views. Semantic views are their own object type in Snowflake, so grants on tables and views don't cover them:

       ```sql title="Snowflake semantic view user grants" theme={null}
       grant usage on database <database> to role omni_role;
       grant usage on schema <database>.<schema> to role omni_role;
       grant select, references on all semantic views in schema <database>.<schema> to role omni_role;
       grant select, references on future semantic views in schema <database>.<schema> to role omni_role;
       ```
  </Step>

  <Step title="Include the schema in your connection" titleSize="h3">
    In your Omni connection settings, make sure the schema containing your semantic views is included:

    1. Navigate to **Settings > Connections** and click your Snowflake connection.
    2. Verify that the schema is listed in the **Include Other Databases** or default database configuration.
  </Step>

  <Step title="Enable the semantic view setting" titleSize="h3">
    In your Omni connection settings, scroll to the bottom of the page and enable the **Enable DW Semantic View Integration** setting. This makes semantic views available in workbooks and the model IDE.
  </Step>

  <Step title="Update the connection and refresh the schema" titleSize="h3">
    1. Click **Update and Test Connection** to save your connection settings and verify the connection.
    2. Run a [schema refresh](/modeling/develop/schema-refreshes) on the model associated with this connection.

    After the schema refresh completes, your semantic views appear in the model as topics.
  </Step>
</Steps>

## Limitations

Some parts of a semantic view definition don't import, and some import in a fixed way. See [Snowflake semantic view limitations](/connect-data/snowflake-semantic-views/limitations) before you rely on a topic.

## Next steps

* Learn [what a schema refresh creates for each semantic view](/connect-data/snowflake-semantic-views/sync/trigger-sync)
* [Query a semantic view topic](/connect-data/snowflake-semantic-views/querying)
* Resolve [schema refresh warnings and missing topics](/connect-data/snowflake-semantic-views/sync/trigger-sync#troubleshooting)
* Check the [limitations](/connect-data/snowflake-semantic-views/limitations) of imported topics
