# Ingestion

Ingestion is where Pinot tables become real. Start here to choose the right path for batch or stream data, then refine the design with upsert, dedup, file format, filesystem, transform, and aggregation decisions.

The detailed controller and table-config material belongs in [Reference](/reference/reference.md). This section stays focused on data flow and operational choices.

## Start Here

* [Batch Ingestion](/build-with-pinot/ingestion/batch-ingestion.md) - for data that arrives in files or lands in a warehouse-style batch flow.
* [Stream Ingestion](/build-with-pinot/ingestion/stream-ingestion.md) - for Kafka-style or other event streams that should be queryable quickly.
* [Upsert and Dedup](/build-with-pinot/ingestion/upsert-dedup.md) - for tables that need one canonical row per key instead of raw event history.
* [Formats and Filesystems](/build-with-pinot/ingestion/formats-filesystems.md) - for source formats, file systems, and deep-storage choices.
* [Transformations and Aggregations](/build-with-pinot/ingestion/transformations-and-aggregations.md) - for ingest-time cleanup and pre-aggregation decisions.

## Related Existing Docs

* [Import Data](/build-with-pinot/ingestion.md)
* [Data Ingestion Overview](/build-with-pinot/ingestion.md)
* [Ingestion Transformations](/build-with-pinot/ingestion/transformations-and-aggregations/ingestion-level-transformations.md)
* [Ingestion Aggregations](/build-with-pinot/ingestion/transformations-and-aggregations/ingestion-level-aggregations.md)
* [Supported Data Formats](/build-with-pinot/ingestion/formats-filesystems/pinot-input-formats.md)
* [File Systems](/build-with-pinot/ingestion/formats-filesystems/file-systems.md)

## What this page covered

This landing page defines the ingestion subtree and points to the main decision pages.

## Next step

Read [Batch Ingestion](/build-with-pinot/ingestion/batch-ingestion.md) if your source data arrives in files or prebuilt segments.

## Related pages

* [Batch Ingestion](/build-with-pinot/ingestion/batch-ingestion.md)
* [Stream Ingestion](/build-with-pinot/ingestion/stream-ingestion.md)
* [Upsert and Dedup](/build-with-pinot/ingestion/upsert-dedup.md)
* [Formats and Filesystems](/build-with-pinot/ingestion/formats-filesystems.md)
* [Transformations and Aggregations](/build-with-pinot/ingestion/transformations-and-aggregations.md)


---

# Agent Instructions: 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:

```
GET https://docs.pinot.apache.org/build-with-pinot/ingestion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
