ClickHouse/docs/ru/sql-reference/statements/select/from.md
Roman Bug 9ec78855cd
DOCSUP-2806: Add meta header in RU (#15801)
* DOCSUP-2806: Add meta intro.

* DOCSUP-2806: Update meta intro.

* DOCSUP-2806: Fix meta.

* DOCSUP-2806: Add quotes for meta headers.

* DOCSUP-2806: Remove quotes from meta headers.

* DOCSUP-2806: Add meta headers.

* DOCSUP-2806: Fix quotes in meta headers.

* DOCSUP-2806: Update meta headers.

* DOCSUP-2806: Fix link to nowhere in EN.

* DOCSUP-2806: Fix link (settings to tune)

* DOCSUP-2806: Fix links.

* DOCSUP-2806:Fix links EN

* DOCSUP-2806: Fix build errors.

* DOCSUP-2806: Fix meta intro.

* DOCSUP-2806: Fix toc_priority in examples datasets TOC.

* DOCSUP-2806: Fix items order in toc.

* DOCSUP-2806: Fix order in toc.

* DOCSUP-2806: Fix toc order.

* DOCSUP-2806: Fix order in toc.

* DOCSUP-2806: Fix toc index in create

* DOCSUP-2806: Fix toc order in create.

Co-authored-by: romanzhukov <romanzhukov@yandex-team.ru>
Co-authored-by: alexey-milovidov <milovidov@yandex-team.ru>
2020-10-26 13:29:30 +03:00

4.3 KiB
Raw Blame History

toc_title
FROM

Секция FROM

В секции FROM указывается источник, из которого будут читаться данные:

Секция JOIN и ARRAY JOIN могут быть использованы для расширения функциональных возможностей секции FROM.

Подзапрос — дополнительный SELECT запрос, который может быть указан в круглых скобках внутри секции FROM.

Секция FROM может содержать несколько источников данных, указанных через запятую, что эквивалентно выполнению CROSS JOIN на них.

Модификатор FINAL

Если в запросе используется модификатор FINAL, то ClickHouse полностью мёржит данные перед выдачей результата, таким образом выполняя все преобразования данных, которые производятся движком таблиц при мёржах.

Он применим при выборе данных из таблиц, использующих MergeTree- семейство движков (кроме GraphiteMergeTree). Также поддерживается для:

  • Replicated варианты исполнения MergeTree движков.
  • View, Buffer, Distributed, и MaterializedView, которые работают поверх других движков, если они созданы для таблиц с движками семейства MergeTree.

Недостатки

Запросы, которые используют FINAL выполняются не так быстро, как аналогичные запросы без него, потому что:

  • Запрос выполняется в одном потоке, и данные мёржатся во время выполнения запроса.
  • Запросы с модификатором FINAL читают столбцы первичного ключа в дополнение к столбцам, используемым в запросе.

В большинстве случаев избегайте использования FINAL. Общий подход заключается в использовании агрегирующих запросов, которые предполагают, что фоновые процессы движков семейства MergeTree ещё не случились (например, сами отбрасывают дубликаты). {## TODO: examples ##}

Детали реализации

Если секция FROM опущена, данные будут считываться из таблицы system.one. Таблица system.one содержит ровно одну строку.

Для выполнения запроса, из соответствующей таблицы, вынимаются все столбцы, перечисленные в запросе. Из подзапросов выкидываются столбцы, не нужные для внешнего запроса.

Если в запросе не перечислено ни одного столбца (например, SELECT count() FROM t), то из таблицы всё равно вынимается один какой-нибудь столбец (предпочитается самый маленький), для того, чтобы можно было посчитать количество строк.