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

# Corvic Tables

> A distributed processing construct that composes multiple inputs into a unified representation of an entity.

A **Corvic Table** defines *what* entity, object, or operational unit you want to work with across your data. Rather than being tied to a single source or format, it composes multiple contributing inputs — structured, unstructured, or multimodal — into one unified, addressable representation.

Corvic Tables are the backbone of distributed data processing. They let you declaratively specify how complex data is joined, enriched, and normalized at scale — without hard-coding brittle pipelines — so teams can build reusable, composable intelligence.

<Note>
  A Corvic Table specifies *what* needs to be embedded, but not *how* it should be embedded. That's the role of a [Space](/concepts/spaces).
</Note>

## Key ideas

| Term              | Meaning                                                                                                                                           |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Entity**        | The object you want to represent and embed — an account, customer, product, or document.                                                          |
| **Input sources** | The data sources that contribute to an entity: dimension (entity) files and fact (relation) files.                                                |
| **Space key**     | The unique, stable identifier for each entity (for example, `account_id`). It must be unique across the table and present in the relevant inputs. |

## Table shapes

* **Single entity** — one entity file and one space key; the simplest structure.
* **Multi-entity** — multiple entity types and keys with richer relationships.
* **Graph-based** — entity and relation files combined to capture complex relationships for relational embeddings.

## Example: financial accounts

Suppose you have `accounts.parquet` (with `account_id`) and `transactions.parquet` (transactions between accounts). A Corvic Table for accounts might use:

* **Input sources**: `accounts.parquet`, `transactions.parquet`
* **Entity**: Account
* **Space key**: `Account.account_id`
* **Relationships**: transactions link accounts together

This defines accounts as the entities to embed, using both account attributes and transaction relationships.

## Building Corvic Tables

You create and configure Corvic Tables as actions on the [workflow canvas](/features/workflows) — for example with **Extract Tables** to derive clean tables, and **Graph Builder** to relate them. When you change a table's inputs or definition, dependent spaces may need to be regenerated.

## Related Concepts

<CardGroup cols={2}>
  <Card title="Spaces" icon="layer-group" href="/concepts/spaces">
    Turn Corvic Tables into embeddings.
  </Card>

  <Card title="Data Sources" icon="database" href="/concepts/data-sources">
    The inputs that feed Corvic Tables.
  </Card>

  <Card title="Extract Tables" icon="table" href="/features/extract-tables">
    Derive tables from your sources.
  </Card>

  <Card title="Graph Builder" icon="diagram-project" href="/features/graph-builder">
    Relate tables for graph embeddings.
  </Card>
</CardGroup>
