# 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](https://docs.pinot.apache.org/reference/reference). This section stays focused on data flow and operational choices.

## Start Here

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

## Related Existing Docs

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

## What this page covered

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

## Next step

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

## Related pages

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