---
metadata:
  - name: generator
    content: Diplodoc Platform v5.62.0
alternate:
  - https://ydb.tech/docs/en/concepts/query_execution/index.md
  - https://ydb.tech/docs/ru/concepts/query_execution/index.md
  - href: https://ydb.tech/docs/ru/concepts/query_execution/index.md
    type: text/markdown
    title: Markdown version
  - href: https://ydb.tech/docs/ru/llms.txt
    rel: describedby
sourcePath: ru/core/concepts/query_execution/index.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Выполнение запросов

YDB предоставляет единый интерфейс для выполнения запросов на языке [YQL](https://ydb.tech/docs/ru/yql/reference/index.md) и единый распределённый движок их выполнения. Один и тот же синтаксис и одни и те же механизмы позволяют обращаться к данным разной природы: от строк в таблицах базы данных до неограниченных потоков событий в топиках и данных во внешних системах.

С точки зрения пользователя запросы выполняются к трём типам сущностей:

- [таблицы базы данных](#tables) — транзакционные (OLTP) и аналитические (OLAP) запросы к данным, хранящимся в YDB;
- [внешние источники данных](#federated) — федеративные запросы к данным, расположенным за пределами YDB;
- [топики](#streaming) — запросы к неограниченным потокам данных: потоковые запросы и бесконечные запросы к топикам.

Общий порядок обработки запроса, а также базовые понятия — сессии, транзакции, повторные выполнения, язык запросов и результирующие наборы — описаны в разделе [Процесс выполнения запросов](https://ydb.tech/docs/ru/concepts/query_execution/execution_process.md).

## Запросы к таблицам базы данных {#tables}

Основной сценарий — выполнение запросов к [таблицам](https://ydb.tech/docs/ru/concepts/datamodel/table.md), хранящимся в YDB. Единый интерфейс способен эффективно обрабатывать широкий спектр нагрузок — от высоконагруженных [транзакционных OLTP-запросов](https://ru.wikipedia.org/wiki/OLTP) до сложных [аналитических OLAP-запросов](https://ru.wikipedia.org/wiki/OLAP).

## Запросы к внешним источникам данных (федеративные запросы) {#federated}

[Федеративные запросы](https://ydb.tech/docs/ru/concepts/query_execution/federated_query/index.md) позволяют обращаться к данным, расположенным во внешних системах, без переноса этих данных внутрь YDB. С помощью YQL-запросов можно читать данные из внешних СУБД и объектных хранилищ (S3), а также объединять их с данными в таблицах YDB.

Подробнее см. в разделе [Федеративные запросы](https://ydb.tech/docs/ru/concepts/query_execution/federated_query/index.md).

## Запросы к топикам {#streaming}

Запросы к [топикам](https://ydb.tech/docs/ru/concepts/datamodel/topic.md) позволяют обрабатывать неограниченные потоки данных. Поскольку поток данных бесконечен, такой запрос не завершается после получения результата, а работает до явной отмены. Есть два варианта таких запросов.

### Потоковые запросы

[Потоковые запросы](https://ydb.tech/docs/ru/concepts/streaming-query/streaming-query.md) — основной способ потоковой обработки данных в production. Они оформляются как постоянные объекты схемы (`STREAMING QUERY`), читают сообщения из топиков по мере их поступления, записывают результаты в выходные топики или таблицы и автоматически восстанавливаются после сбоев из [чекпоинтов](https://ydb.tech/docs/ru/dev/streaming-query/checkpoints.md).

Подробнее см. в разделе [Потоковые запросы](https://ydb.tech/docs/ru/concepts/streaming-query/streaming-query.md) и в описании [CREATE STREAMING QUERY](https://ydb.tech/docs/ru/yql/reference/syntax/create-streaming-query.md).

### Запросы к топикам в табличном режиме

Прочитать данные из топика можно и обычным `SELECT`, указав `STREAMING = "TRUE"` в блоке `WITH`. Без ограничения `LIMIT` такой запрос работает бесконечно, возвращая результат клиенту по мере поступления сообщений. В отличие от потоковых запросов, он не создаёт постоянного объекта схемы и не восстанавливается после сбоев, поэтому предназначен в первую очередь для отладки и проверки данных в топике.

Подробнее см. в разделе [Потоковое чтение данных из топика](https://ydb.tech/docs/ru/yql/reference/syntax/select/streaming.md).
