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

# External tables

> Query a BigQuery table from the Catalog without copying it.

An external table lets you use a BigQuery table that already exists in your own Google Cloud project directly from the Nekt Catalog, without copying it. Nekt reads it in place, so the table shows up alongside your other tables and is available for consumption, queries, and notebooks. Every Nekt permission rule applies to it.

<Note>
  External tables are available only on workspaces that run in your **own Google Cloud project** (customer-hosted GCP), on **Growth plans and above**. They are not available on AWS or on Nekt-hosted workspaces.
</Note>

## How it works

Nekt does not move your data. It registers a reference to the source table and reads it where it lives. Nothing is copied into Nekt's storage, and you keep control of the source in your own project — Nekt only ever reads it.

## Add an external table

From the Catalog, pick the layer or folder where you want the table, open the **New** menu, and choose **External table**. A wizard walks you through two phases.

<Steps>
  <Step title="Describe the source">
    Fill in the **Google Cloud project** the table lives in (yours, not Nekt's), the **Dataset**, and the **Table**. Choose a **Name in the Nekt catalog** — use only lowercase letters, numbers, and underscores, and start with a letter.

    Datasets you have already shared with Nekt appear in the list. If you haven't shared one yet, type its name and it will appear once the grant in the next phase is in place.
  </Step>

  <Step title="Grant access in Google Cloud">
    Complete a few steps in your own Google Cloud console. Nekt only checks these — it never changes permissions in your project. Each step is verified before the next one appears.

    1. **Give Nekt read access to the source.** Grant the Nekt service account shown in the wizard the **BigQuery Data Viewer** role on the source dataset. (Granting it on the table alone also works, but then Nekt cannot list the dataset's tables and you type the table name by hand.)
    2. **Enable queries across regions** *(only if the source is in another region)*. Run the SQL statements the wizard provides in BigQuery. They take a few minutes to take effect.
    3. **Authorize the view.** In the BigQuery console, open the source **dataset** (not the table) → **Sharing** → **Authorize views**, and add the view Nekt created in the previous step. BigQuery only authorizes views at the dataset level.
  </Step>
</Steps>

Nekt checks your setup automatically every 5 minutes, and every 10 seconds for a few minutes after you click **Check now**. This is because Google can take a minute or two to apply a grant, so a correct setup often fails the first check and passes shortly after. When everything is in place, the table is added to your catalog and marked with an **External** badge.

<Note>
  If the source table is in a different region from your workspace, queries that read it take noticeably longer, because the data has to cross regions. Nothing is wrong — if it becomes a problem, bringing the data in with a [Source](/sources/overview) is faster.
</Note>

## Awaiting setup

If you don't finish the grants in one sitting, the registration is saved under **Awaiting setup** in the Catalog. Each entry shows a status tag for what is still missing (for example, *Waiting for access*, *View not authorized*, or *Cross-region off*). Use **Continue** to reopen the wizard where you left off, or **Remove** to discard the registration and free the source so it can be added again.

## Remove an external table

Removing an external table (from the tables list or from **Awaiting setup**) stops Nekt from reading the source. Your source table in BigQuery is never touched. The view Nekt created stays listed under **Authorize views** on the source dataset — it no longer reads anything, but only you can remove it there.
