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

> 包含近期异步作业的信息及其状态的系统表（例如针对正在加载的表）。该表中的每个作业各占一行。

# system.asynchronous_loader

<Info>
  **在 ClickHouse Cloud 中查询**

  此系统表中的数据分别保存在 ClickHouse Cloud 各节点的本地。因此，如需查看所有数据的完整情况，需要使用 `clusterAllReplicas` 函数。更多详情请参见[此处](/zh/reference/system-tables/overview#system-tables-in-clickhouse-cloud)。
</Info>

<div id="description">
  ## 描述
</div>

包含最近异步作业的信息和状态 (例如表加载作业) 。该表中每个作业对应一行。还提供了一个用于将该表中信息可视化的工具 `utils/async_loader_graph`。

<div id="columns">
  ## 列
</div>

* `job` ([String](/zh/reference/data-types)) — 作业名称 (可能不唯一) 。
* `job_id` ([UInt64](/zh/reference/data-types)) — 作业的唯一 ID。
* `dependencies` ([Array(UInt64)](/zh/reference/data-types)) — 此作业开始前必须先完成的作业 ID 列表。
* `dependencies_left` ([UInt64](/zh/reference/data-types)) — 当前剩余未完成的依赖项数量。
* `status` ([Enum8('PENDING' = 0, 'OK' = 1, 'FAILED' = 2, 'CANCELED' = 3)](/zh/reference/data-types)) — 作业的当前加载状态：PENDING：加载作业尚未开始。OK：加载作业已执行且成功。FAILED：加载作业已执行且失败。CANCELED：由于被移除或依赖项失败，加载作业不会执行。
* `is_executing` ([UInt8](/zh/reference/data-types)) — 该作业当前正由某个工作线程执行。
* `is_blocked` ([UInt8](/zh/reference/data-types)) — 该作业正在等待其依赖项完成。
* `is_ready` ([UInt8](/zh/reference/data-types)) — 该作业已准备好执行，正在等待工作线程。
* `elapsed` ([Float64](/zh/reference/data-types)) — 自开始执行以来经过的秒数。若作业尚未开始则为零；若作业已完成则为总执行时间。
* `pool_id` ([UInt64](/zh/reference/data-types)) — 当前分配给该作业的 池 ID。
* `pool` ([String](/zh/reference/data-types)) — `pool_id` 对应 池 的名称。
* `priority` ([Int64](/zh/reference/data-types)) — `pool_id` 对应 池 的优先级。
* `execution_pool_id` ([UInt64](/zh/reference/data-types)) — 该作业实际执行所在 池 的 ID。在执行开始前，它等于最初分配的 池。
* `execution_pool` ([String](/zh/reference/data-types)) — `execution_pool_id` 对应 池 的名称。
* `execution_priority` ([Int64](/zh/reference/data-types)) — `execution_pool_id` 对应 池 的优先级。
* `ready_seqno` ([Nullable(UInt64)](/zh/reference/data-types)) — 对于就绪作业，该值不为 NULL。工作线程会从其 池 的就绪队列中取出下一个待执行作业。如果有多个就绪作业，则选择 `ready_seqno` 值最小的作业。
* `waiters` ([UInt64](/zh/reference/data-types)) — 等待此作业的线程数。
* `exception` ([Nullable(String)](/zh/reference/data-types)) — 对于失败和已取消的作业，该值不为 NULL。保存查询执行期间引发的错误消息，或导致该作业被取消的错误，以及依赖项失败事件链中的作业名称。
* `schedule_time` ([DateTime64(6)](/zh/reference/data-types)) — 作业被创建并调度执行的时间 (通常会连同其所有依赖项一起调度) 。
* `enqueue_time` ([Nullable(DateTime64(6))](/zh/reference/data-types)) — 作业变为就绪并进入其所属 池 的就绪队列的时间。如果作业尚未就绪，则为 NULL。
* `start_time` ([Nullable(DateTime64(6))](/zh/reference/data-types)) — 工作线程从就绪队列中取出该作业并开始执行的时间。如果作业尚未开始，则为 NULL。
* `finish_time` ([Nullable(DateTime64(6))](/zh/reference/data-types)) — 作业执行完成的时间。如果作业尚未完成，则为 NULL。

待处理作业可能处于以下状态之一：

* `is_executing` (`UInt8`) - 该作业当前正由某个工作线程执行。
* `is_blocked` (`UInt8`) - 该作业正在等待其依赖项完成。
* `is_ready` (`UInt8`) - 该作业已可执行，正在等待工作线程。
* `elapsed` (`Float64`) - 自开始执行以来经过的秒数。如果作业尚未开始，则为零；如果作业已完成，则为总执行时间。

每个作业都关联一个 `pool`，并在该池中启动。每个池都有固定的优先级，以及一个可变的最大工作线程数。优先级更高 (`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
```
