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

# Migrate to Compute Pools

> Map your Snowflake virtual warehouses to Narrative Compute Pools to use multiple warehouses for different job types

If your Snowflake data plane was set up before compute pools were available, it uses a single virtual warehouse for all workloads. Migrating to compute pools lets you register one or more Snowflake warehouses, giving you control over which warehouse handles each type of work.

<iframe src="https://demo.arcade.software/O9nW0aGHd1jBu0n83H2X?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" title="Configure Snowflake Warehouse Access for Narrative Data Collaboration" frameBorder="0" loading="lazy" allowFullScreen allow="clipboard-write" style={{ width: '100%', aspectRatio: '16/9' }} />

## Why migrate

With a single default warehouse, every query—exploratory, production, audience builds—competes for the same resources. Compute pools solve this by letting you assign different warehouses to different workloads:

* **Right-size compute for the job.** Use a small warehouse for quick lookups and a large one for heavy processing, rather than over-provisioning a single warehouse for all cases.
* **Isolate workloads.** Prevent an expensive production pipeline from slowing down ad-hoc exploration, or vice versa.
* **Control costs.** Smaller warehouses for lightweight work cost less per credit-second than running everything on a large warehouse.
* **Set collaboration policies.** Control which companies in your data plane can use which warehouses, so shared environments stay predictable.

## Prerequisites

* ACCOUNTADMIN role or equivalent in your Snowflake account
* Access to the Narrative Snowflake Native App in your account
* One or more Snowflake warehouses you want to register as compute pools
* A Narrative API token with **Compute Pools** Read and Write permissions ([manage API keys](/account-settings/api-keys))

## Migration steps

<Steps>
  <Step title="Register warehouses in the native app">
    1. Open the Narrative Data Collaboration app configuration screen in Snowflake.
    2. Expand the **Warehouse Management** section.
    3. Click **Select Warehouses to Register** and select the warehouses you want to use as compute pools.

    Then, grant the app usage on each selected warehouse by running the following in a Snowflake worksheet:

    ```sql theme={null}
    GRANT USAGE ON WAREHOUSE <warehouse_name> TO APPLICATION NARRATIVE_DATA_COLLABORATION;
    ```

    For example, to register two warehouses:

    ```sql theme={null}
    GRANT USAGE ON WAREHOUSE ANALYTICS_SMALL TO APPLICATION NARRATIVE_DATA_COLLABORATION;
    GRANT USAGE ON WAREHOUSE PRODUCTION_XLARGE TO APPLICATION NARRATIVE_DATA_COLLABORATION;
    ```

    Each granted warehouse is automatically registered as a compute pool on your data plane. You can grant access to your existing warehouse plus any additional warehouses you want to add.
  </Step>

  <Step title="Verify compute pools appear">
    In the [Narrative Platform UI](https://app.narrative.io/platform/), navigate to **Settings > Data Planes**, select your Snowflake data plane, and open the **Compute Pools** tab. You should see each registered warehouse listed as a compute pool.
  </Step>

  <Step title="Set a default compute pool">
    From the Compute Pools tab, open the action menu (`···`) on the warehouse you want as your default and select **Set as default**. This warehouse is used whenever a query doesn't specify a compute pool.
  </Step>

  <Step title="Select compute pools in the context selector">
    The [context selector](/guides/platform/using-the-context-selector) now shows your registered compute pools in the second column. Select the appropriate warehouse for your current workload. The previous static "DEFAULT" label is replaced by your registered pools.
  </Step>
</Steps>

## What changes after migration

| Before                                                | After                                                               |
| ----------------------------------------------------- | ------------------------------------------------------------------- |
| Single warehouse for all workloads                    | One or more warehouses, each as a named compute pool                |
| No choice in the context selector                     | Context selector populates with your registered warehouses          |
| Warehouse configuration managed entirely in Snowflake | Basic settings visible and editable from the data plane detail page |

The legacy single-warehouse configuration is removed once you complete the migration. All queries going forward use the compute pool model.

## Related content

<CardGroup cols={2}>
  <Card title="Compute Pools" icon="microchip" href="/concepts/primitives/compute-pools">
    Understand compute pool types and when to use each
  </Card>

  <Card title="Using the Context Selector" icon="hand-pointer" href="/guides/platform/using-the-context-selector">
    Choose your compute pool and other execution context settings
  </Card>

  <Card title="Snowflake Native App Installation" icon="snowflake" href="/guides/data-planes/snowflake-native-app-installation">
    Full installation guide for new Snowflake data planes
  </Card>
</CardGroup>
