> For the complete documentation index, see [llms.txt](https://v2.dataos.info/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://v2.dataos.info/build/v1/move/overview.md).

# Overview

Move is the Extract and Load of the build pattern. You pull raw records from a source and land them, unchanged, where your engine can read them. Move never transforms; it only relocates. Producing meaning from the data is [Productize](/build/v1/productize/overview.md), the step after.

You only do this when there is a gap. If [Understand](/build/v1/understand/overview.md) showed the data already lives where your engine can reach it, skip Move and go straight to Productize. Reach for Move when the data you need is in a system your engine cannot query directly.

Data movement runs on **Nilus**, the DataOS data movement framework. You declare a `nilus` resource that names a source, a destination, and a type, then apply it with the CLI.

## Choose a data movement type

The type depends on how fresh the data must be and what the source supports.

| Type                                                    | Best for                                                                                           | Freshness        |
| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------- |
| [Batch](/build/v1/move/mode/batch.md)                   | Large volumes; scheduled full or incremental loads from databases, warehouses, and SaaS platforms  | Minutes to hours |
| [Change data capture (CDC)](/build/v1/move/mode/cdc.md) | Operational databases where every insert, update, and delete must be captured without full reloads | Near real-time   |
| [Streaming](/build/v1/move/mode/stream.md)              | Event streams and message queues processed continuously as records arrive                          | Near real-time   |

If you are unsure, start with **Batch**. Use **CDC** when you need row-level change capture from a transactional database. Use **Streaming** when the source produces continuous events through systems such as Kafka or NATS.

## The shape of a move

Every data movement type follows the same three steps, so once you have run one you can run any of them:

```mermaid
flowchart LR
    S[(Source)] -->|Extract| N[Nilus pipeline<br/>source + sink + type]
    N -->|Load, unchanged| D[(Destination<br/>your engine can read)]

    style S fill:#F1EFE8,stroke:#5F5E5A,color:#2C2C2A
    style N fill:#E6F1FB,stroke:#185FA5,color:#0C447C
    style D fill:#E1F5EE,stroke:#0F6E56,color:#085041
```

1. **Pick a source and destination.** Both are addressed through a Depot. See [Supported sources and destinations](/build/v1/move/supported-sources-and-destinations.md).
2. **Write the manifest.** A `nilus` resource with the right `spec.type` (`batch`, `cdc`, or `stream`).
3. **Apply and confirm.** `dataos-ctl resource apply`, then check the resource is active.

## Before you begin

Across all types of data movement, you need:

* Access to the DataOS tenant where the pipeline runs.
* A Depot for the source and a Depot for the destination (or an approved connection with secrets projected via `use.projection`).
* A compute profile for the pipeline.
* Read access to the source and write access to the destination.

When the data has landed, [explore the moved data](/build/v1/move/explore-moved-data.md) to confirm it is correct, then move on to Productize.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://v2.dataos.info/build/v1/move/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
