

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 异步状态和操作
<a name="views-api-usage-async-states"></a>

当您运行 `glue:CreateTable` 请求时，将开始异步创建数据目录视图。在以下各节中，本文档描述了`glue:GetTable`响应中可用的 AWS Glue 视图。`Status`为简洁起见，本节略去完整响应。

```
{
    "Table": {
        ...
        "Status": {
            ...
            "Action": "CREATE",
            "State": "QUEUED",
        }
    }
}
```

上述两个属性均代表重要的诊断信息，这些信息指示异步操作的状态，以及可对此视图执行的操作。以下是这些属性的可能值。

1. `Status.Action`

   1. CREATE

   1. UPDATE

1. `Status.State`

   1. QUEUED

   1. 进行中

   1. 成功

   1. FAILED

还需要注意的是，数据目录视图上的某些更新不需要异步操作。例如，用户可能希望更新表的 `Description` 属性。由于这不需要任何异步操作，因此生成的表元数据将没有任何 `Status`，属性将为 `NULL`。

```
{
    "Table": {
        ...,
        "Description": "I changed this attribute!"
    }
}
```

接下来，本主题探讨上述状态信息如何影响可以对 AWS Glue 视图执行的操作。

**胶水：CreateTable**  
与任何 Glue 表的 `glue:CreateTable` 功能相比，该 API 没有任何变化。可以为任何尚未存在的表名调用 `CreateTable`。

**胶水：UpdateTable**  
无法对具有以下状态信息的 AWS Glue 视图执行此操作：

1. Action == CREATE and State == QUEUED

1. Action == CREATE and State == IN\$1PROGRESS

1. Action == CREATE and state == FAILED

1. Action == UPDATE and state == QUEUED

1. Action == UPDATE and state == IN\$1PROGRESS

总之，只有当数据目录视图满足以下要求时，才能更新该视图。

1. 首次成功创建。

   1. Action == CREATE and State == SUCCESS

1. 在异步更新操作后达到终端状态。

   1. Action == UPDATE and State == SUCCESS

   1. Action == UPDATE and State == FAILED

1. 由于同步更新，状态属性为 `NULL`。

**胶水：DeleteTable**  
与任何 AWS Glue 表的运行方式`glue:DeleteTable`相比，此操作没有任何变化。无论数据目录视图处于何种状态，都可以删除该视图。

**胶水：GetTable**  
与任何 AWS Glue 表的运行方式`glue:GetTable`相比，此操作没有任何变化。但是，在首次成功创建数据目录视图之前，不能从分析引擎中查询该视图。`Action == CREATE and State == SUCCESS`。首次成功创建数据目录视图后，无论其状态如何，都可以查询该视图。

**注意**  
本节中的所有信息都适用于读取的所有表`GetTable`， APIs 例如`GetTables`、和`SearchTables`。