---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ydb.tech/docs/en/concepts/query_execution.md?version=main
  - https://ydb.tech/docs/ru/concepts/query_execution.md?version=main
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?version=main) и единый распределённый движок их выполнения. Один и тот же синтаксис и одни и те же механизмы позволяют обращаться к данным разной природы: от строк в таблицах базы данных до неограниченных потоков событий в топиках и данных во внешних системах.

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

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

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

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

Основной сценарий — выполнение запросов к [таблицам](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=main), хранящимся в 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?version=main) позволяют обращаться к данным, расположенным во внешних системах, без переноса этих данных внутрь YDB. С помощью YQL-запросов можно читать данные из внешних СУБД и объектных хранилищ (S3), а также объединять их с данными в таблицах YDB.

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

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

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

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

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

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

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

Прочитать данные из топика можно и обычным [`SELECT`](https://ydb.tech/docs/ru/yql/reference/syntax/select/topics.md?version=main). В отличие от потоковых запросов, он не создаёт постоянного объекта схемы и не восстанавливается после сбоев, поэтому предназначен в первую очередь для отладки и проверки данных в топике.

Подробнее см. в разделе [YQL-запросы к топикам](https://ydb.tech/docs/ru/concepts/query_execution/topics.md?version=main).
