---
title: Copy and export data
meta:
  description: Move data inside Tinybird with Copy Pipes and export query results to Kafka, S3, or GCS with Sinks.
---

# Copy and export data

After data is in Tinybird, you often need to reshape it, store query results, or send processed data to another system. Use this section when you want to move data after ingestion.

## Move data internally

Use [Copy Pipes](/forward/core-concepts/copy-pipes) to capture the result of a Pipe at a specific point in time and write it to a target Data Source. Copy Pipes can run on a schedule or on demand.

Copy Pipes are useful when you need to:

- Build scheduled snapshots of source data.
- Backfill or rebuild a derived Data Source.
- Deduplicate data with a replace strategy.
- Run heavy transformations outside request-time query paths.
- Test a new shape before replacing an existing Data Source.

For continuously updated derived Data Sources, use [Materialized Views](/forward/core-concepts/materialized-views). Materialized Views process new rows as they arrive. Copy Pipes rerun a query and write the result when the copy job executes.

## Sinks

Use [Sinks](/forward/core-concepts/sinks) to export query results from Tinybird to external systems. A Sink is a Pipe with `TYPE SINK` and destination-specific export settings.

Tinybird supports these Sink destinations:

- [Kafka Sink](/forward/copy-export-data/kafka-sink): Export events to a Kafka topic.
- [S3 Sink](/forward/copy-export-data/s3-sink): Export files to an S3 bucket.
- [GCS Sink](/forward/copy-export-data/gcs-sink): Export files to a Google Cloud Storage bucket.

Use Sinks when another system needs processed Tinybird data, for example to feed a data lake, publish events to a streaming platform, or deliver scheduled extracts to customers or partners.

## Choose the right option

| Need | Use |
| --- | --- |
| Store query results in another Tinybird Data Source | [Copy Pipes](/forward/core-concepts/copy-pipes) |
| Export query results to Kafka, S3, or GCS | [Sinks](/forward/core-concepts/sinks) |
| Keep a derived Data Source updated as rows are ingested | [Materialized Views](/forward/core-concepts/materialized-views) |
| Query data without storing the result | [API Endpoints](/forward/core-concepts/api-endpoints) or [Query API](/forward/query-data/sql-api) |
