> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Системная таблица, содержащая сведения о недавних асинхронных задачах и их статусе (например, для таблиц в процессе загрузки). Таблица содержит по одной строке для каждой задачи.

# system.asynchronous_loader

<Info>
  **Запросы в ClickHouse Cloud**

  Данные в этой системной таблице хранятся локально на каждом узле ClickHouse Cloud. Поэтому, чтобы получить полное представление обо всех данных, требуется функция `clusterAllReplicas`. Дополнительные сведения см. [здесь](/ru/reference/system-tables/overview#system-tables-in-clickhouse-cloud).
</Info>

<div id="description">
  ## Описание
</div>

Содержит информацию о состоянии недавних асинхронных задач (например, задач загрузки таблиц). Таблица содержит по одной строке для каждой задачи. Для визуализации данных из этой таблицы есть инструмент `utils/async_loader_graph`.

<div id="columns">
  ## Столбцы
</div>

* `job` ([String](/ru/reference/data-types)) — Имя задачи (может быть неуникальным).
* `job_id` ([UInt64](/ru/reference/data-types)) — Уникальный ID задачи.
* `dependencies` ([Array(UInt64)](/ru/reference/data-types)) — Список ID задач, которые должны быть завершены до выполнения этой задачи.
* `dependencies_left` ([UInt64](/ru/reference/data-types)) — Текущее количество зависимостей, которые осталось завершить.
* `status` ([Enum8('PENDING' = 0, 'OK' = 1, 'FAILED' = 2, 'CANCELED' = 3)](/ru/reference/data-types)) — Текущий статус загрузки задачи: PENDING: задача загрузки еще не запущена. OK: задача загрузки успешно выполнена. FAILED: задача загрузки была выполнена и завершилась ошибкой. CANCELED: задача загрузки не будет выполнена из-за удаления или сбоя зависимости.
* `is_executing` ([UInt8](/ru/reference/data-types)) — Задача в данный момент выполняется воркером.
* `is_blocked` ([UInt8](/ru/reference/data-types)) — Задача ожидает завершения своих зависимостей.
* `is_ready` ([UInt8](/ru/reference/data-types)) — Задача готова к выполнению и ожидает воркера.
* `elapsed` ([Float64](/ru/reference/data-types)) — Количество секунд, прошедших с начала выполнения. Ноль, если задача еще не запущена. Общее время выполнения, если задача завершена.
* `pool_id` ([UInt64](/ru/reference/data-types)) — ID пула, в данный момент назначенного задаче.
* `pool` ([String](/ru/reference/data-types)) — Имя пула `pool_id`.
* `priority` ([Int64](/ru/reference/data-types)) — Приоритет пула `pool_id`.
* `execution_pool_id` ([UInt64](/ru/reference/data-types)) — ID пула, в котором выполняется задача. До начала выполнения совпадает с изначально назначенным пулом.
* `execution_pool` ([String](/ru/reference/data-types)) — Имя пула `execution_pool_id`.
* `execution_priority` ([Int64](/ru/reference/data-types)) — Приоритет пула `execution_pool_id`.
* `ready_seqno` ([Nullable(UInt64)](/ru/reference/data-types)) — Не равно null для готовых задач. Воркер берет следующую задачу для выполнения из очереди готовых задач своего пула. Если готовых задач несколько, выбирается задача с наименьшим значением `ready_seqno`.
* `waiters` ([UInt64](/ru/reference/data-types)) — Количество потоков, ожидающих эту задачу.
* `exception` ([Nullable(String)](/ru/reference/data-types)) — Не равно null для задач, завершившихся ошибкой или отмененных. Содержит сообщение об ошибке, возникшей во время выполнения запроса, либо об ошибке, приведшей к отмене этой задачи, вместе с цепочкой сбоев зависимостей по именам задач.
* `schedule_time` ([DateTime64(6)](/ru/reference/data-types)) — Время, когда задача была создана и запланирована к выполнению (обычно вместе со всеми ее зависимостями).
* `enqueue_time` ([Nullable(DateTime64(6))](/ru/reference/data-types)) — Время, когда задача стала готовой и была помещена в очередь готовых задач своего пула. Null, если задача еще не готова.
* `start_time` ([Nullable(DateTime64(6))](/ru/reference/data-types)) — Время, когда воркер извлекает задачу из очереди готовых задач и начинает ее выполнение. Null, если задача еще не запущена.
* `finish_time` ([Nullable(DateTime64(6))](/ru/reference/data-types)) — Время завершения выполнения задачи. Null, если задача еще не завершена.

Задача в ожидании может находиться в одном из следующих состояний:

* `is_executing` (`UInt8`) - Задача в данный момент выполняется воркером.
* `is_blocked` (`UInt8`) - Задача ожидает завершения своих зависимостей.
* `is_ready` (`UInt8`) - Задача готова к выполнению и ожидает воркера.
* `elapsed` (`Float64`) - Секунды, прошедшие с начала выполнения. Ноль, если задача не запущена. Общее время выполнения, если задача завершена.

Каждая задача связана с определённым пулом и запускается в нём. У каждого пула есть постоянный приоритет и изменяемое максимальное число воркеров. Сначала выполняются задачи с более высоким приоритетом (меньшим значением `priority`). Ни одна задача с более низким приоритетом не запускается, пока есть хотя бы одна готовая или уже выполняющаяся задача с более высоким приоритетом. Приоритет задачи можно повысить (но нельзя понизить), явно повысив её приоритет. Например, задачи, связанные с загрузкой таблицы и запуском, будут получать более высокий приоритет, если входящий запрос требует эту таблицу. Повысить приоритет задачи можно и во время её выполнения, но задача не перемещается из своего `execution_pool` в новый назначенный `pool`. Для создания новых задач задача использует `pool`, чтобы избежать инверсии приоритетов. Уже запущенные задачи не вытесняются задачами с более высоким приоритетом и после запуска всегда выполняются до конца.

* `pool_id` (`UInt64`) - ID пула, в данный момент назначенного задаче.

* `pool` (`String`) - Имя пула `pool_id`.

* `priority` (`Int64`) - Приоритет пула `pool_id`.

* `execution_pool_id` (`UInt64`) - ID пула, в котором выполняется задача. До начала выполнения совпадает с изначально назначенным пулом.

* `execution_pool` (`String`) - Имя пула `execution_pool_id`.

* `execution_priority` (`Int64`) - Приоритет пула `execution_pool_id`.

* `ready_seqno` (`Nullable(UInt64)`) - Не NULL для готовых задач. Воркер берёт следующую задачу для выполнения из очереди готовых задач своего пула. Если готовых задач несколько, выбирается задача с наименьшим значением `ready_seqno`.

* `waiters` (`UInt64`) - Число потоков, ожидающих эту задачу.

* `exception` (`Nullable(String)`) - Не NULL для задач, завершившихся с ошибкой или отменённых. Содержит сообщение об ошибке, возникшей при выполнении запроса, либо ошибку, приведшую к отмене этой задачи, вместе с цепочкой отказов зависимостей в виде имён задач.

Моменты времени в течение жизненного цикла задачи:

* `schedule_time` (`DateTime64`) - Время, когда задача была создана и запланирована к выполнению (обычно вместе со всеми её зависимостями).
* `enqueue_time` (`Nullable(DateTime64)`) - Время, когда задача стала готовой и была помещена в очередь готовых задач своего пула. NULL, если задача ещё не готова.
* `start_time` (`Nullable(DateTime64)`) - Время, когда воркер извлекает задачу из очереди готовых задач и начинает её выполнение. NULL, если задача ещё не запущена.
* `finish_time` (`Nullable(DateTime64)`) - Время, когда выполнение задачи завершилось. NULL, если задача ещё не завершена.

<div id="example">
  ## Пример
</div>

```sql theme={null}
SELECT *
FROM system.asynchronous_loader
LIMIT 1
FORMAT Vertical
```
