

# 使用 Amazon CLI 的 Athena 的示例
<a name="cli_athena_code_examples"></a>

以下代码示例演示如何通过将 Amazon Command Line Interface与 Athena 结合使用，来执行操作和实现常见场景。

*操作是大型程序的代码摘录*，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `batch-get-named-query`
<a name="athena_BatchGetNamedQuery_cli_topic"></a>

以下代码示例演示了如何使用 `batch-get-named-query`。

**Amazon CLI**  
**返回有关多个查询的信息**  
以下 `batch-get-named-query` 示例返回有关具有指定 ID 的命名查询的信息。  

```
aws athena batch-get-named-query \
    --named-query-ids a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 a1b2c3d4-5678-90ab-cdef-EXAMPLE33333
```
输出：  

```
{
    "NamedQueries": [
        {
            "Name": "Flights Select Query",
            "Description": "Sample query to get the top 10 airports with the most number of departures since 2000",
            "Database": "sampledb",
            "QueryString": "SELECT origin, count(*) AS total_departures\nFROM\nflights_parquet\nWHERE year >= '2000'\nGROUP BY origin\nORDER BY total_departures DESC\nLIMIT 10;",
            "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "WorkGroup": "primary"
        },
        {
            "Name": "Load flights table partitions",
            "Description": "Sample query to load flights table partitions using MSCK REPAIR TABLE statement",
            "Database": "sampledb",
            "QueryString": "MSCK REPAIR TABLE flights_parquet;",
            "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
            "WorkGroup": "primary"
        },
        {
            "Name": "CloudFront Select Query",
            "Description": "Sample query to view requests per operating system during a particular time frame",
            "Database": "sampledb",
            "QueryString": "SELECT os, COUNT(*) count FROM cloudfront_logs WHERE date BETWEEN date '2014-07-05' AND date '2014-08-05' GROUP BY os;",
            "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
            "WorkGroup": "primary"
        }
    ],
    "UnprocessedNamedQueryIds": []
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [BatchGetNamedQuery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/batch-get-named-query.html)。

### `batch-get-query-execution`
<a name="athena_BatchGetQueryExecution_cli_topic"></a>

以下代码示例演示了如何使用 `batch-get-query-execution`。

**Amazon CLI**  
**返回有关一个或多个查询执行的信息**  
以下 `batch-get-query-execution` 示例返回具有指定查询 ID 的查询的查询执行信息。  

```
aws athena batch-get-query-execution \
    --query-execution-ids a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 a1b2c3d4-5678-90ab-cdef-EXAMPLE22222
```
输出：  

```
{
    "QueryExecutions": [
        {
            "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "Query": "create database if not exists webdata",
            "StatementType": "DDL",
            "ResultConfiguration": {
                "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.txt"
            },
            "QueryExecutionContext": {},
            "Status": {
                "State": "SUCCEEDED",
                "SubmissionDateTime": 1593470720.592,
                "CompletionDateTime": 1593470720.902
            },
            "Statistics": {
                "EngineExecutionTimeInMillis": 232,
                "DataScannedInBytes": 0,
                "TotalExecutionTimeInMillis": 310,
            "ResultConfiguration": {

                "QueryQueueTimeInMillis": 50,
                "ServiceProcessingTimeInMillis": 28
            },
            "WorkGroup": "AthenaAdmin"
        },
        {
            "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
            "Query": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10",
            "StatementType": "DML",
            "ResultConfiguration": {
                "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222.csv"
            },
            "QueryExecutionContext": {
                "Database": "mydatabase",
                "Catalog": "awsdatacatalog"
            },
            "Status": {
                "State": "SUCCEEDED",
                "SubmissionDateTime": 1593469842.665,
                "CompletionDateTime": 1593469846.486
            },
            "Statistics": {
                "EngineExecutionTimeInMillis": 3600,
                "DataScannedInBytes": 203089,
                "TotalExecutionTimeInMillis": 3821,
                "QueryQueueTimeInMillis": 267,
                "QueryPlanningTimeInMillis": 1175
            },
            "WorkGroup": "AthenaAdmin"
        }
    ],
    "UnprocessedQueryExecutionIds": []
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [BatchGetQueryExecution](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/batch-get-query-execution.html)。

### `create-data-catalog`
<a name="athena_CreateDataCatalog_cli_topic"></a>

以下代码示例演示了如何使用 `create-data-catalog`。

**Amazon CLI**  
**创建数据目录**  
以下 `create-data-catalog` 示例创建 `dynamo_db_catalog` 数据目录。  

```
aws athena create-data-catalog \
    --name dynamo_db_catalog \
    --type LAMBDA \
    --description "DynamoDB Catalog" \
    --parameters function=arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda
```
此命令不生成任何输出。要查看结果，请使用 `aws athena get-data-catalog --name dynamo_db_catalog`。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[注册目录：create-data-catalog](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-registering-a-catalog)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [CreateDataCatalog](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-data-catalog.html)。

### `create-named-query`
<a name="athena_CreateNamedQuery_cli_topic"></a>

以下代码示例演示了如何使用 `create-named-query`。

**Amazon CLI**  
**创建命名查询**  
以下 `create-named-query` 示例在 `AthenaAdmin` 工作组中创建一个已保存的查询，查询 `flights_parquet` 表中 2016 年 1 月从西雅图飞往纽约的航班，这些航班的起飞和到达时间都延误了十分钟以上。由于表中的机场代码值是包含双引号的字符串（例如，“SEA”），因此使用反斜杠转义，并用单引号扩起。  

```
aws athena create-named-query \
    --name "SEA to JFK delayed flights Jan 2016" \
    --description "Both arrival and departure delayed more than 10 minutes." \
    --database sampledb \
    --query-string "SELECT flightdate, carrier, flightnum, origin, dest, depdelayminutes, arrdelayminutes FROM sampledb.flights_parquet WHERE yr = 2016 AND month = 1 AND origin = '\"SEA\"' AND dest = '\"JFK\"' AND depdelayminutes > 10 AND arrdelayminutes > 10" \
    --work-group AthenaAdmin
```
输出：  

```
{
    "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [CreateNamedQuery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-named-query.html)。

### `create-work-group`
<a name="athena_CreateWorkGroup_cli_topic"></a>

以下代码示例演示了如何使用 `create-work-group`。

**Amazon CLI**  
**创建工作组**  
以下 `create-work-group` 示例创建一个名为 `Data_Analyst_Group` 的工作组，具有查询结果的输出位置 `s3://amzn-s3-demo-bucket`。该命令创建一个覆盖客户端配置设置的工作组，其中包括查询结果的输出位置。该命令还启用 CloudWatch 指标，并向工作组添加三个键值标签对，以将其与其他工作组区分开来。请注意，`--configuration` 参数在分隔其选项的逗号前没有空格。  

```
aws athena create-work-group \
    --name Data_Analyst_Group \
    --configuration ResultConfiguration={OutputLocation="s3://amzn-s3-demo-bucket"},EnforceWorkGroupConfiguration="true",PublishCloudWatchMetricsEnabled="true" \
    --description "Workgroup for data analysts" \
    --tags Key=Division,Value=West Key=Location,Value=Seattle Key=Team,Value="Big Data"
```
此命令不生成任何输出。要查看结果，请使用 `aws athena get-work-group --work-group Data_Analyst_Group`。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[管理工作组](https://docs.amazonaws.cn/athena/latest/ug/workgroups-create-update-delete.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [CreateWorkGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/create-work-group.html)。

### `delete-data-catalog`
<a name="athena_DeleteDataCatalog_cli_topic"></a>

以下代码示例演示了如何使用 `delete-data-catalog`。

**Amazon CLI**  
**删除数据目录**  
以下 `delete-data-catalog` 示例删除 `UnusedDataCatalog` 数据目录。  

```
aws athena delete-data-catalog \
    --name UnusedDataCatalog
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[删除目录：delete-data-catalog](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-deleting-a-catalog)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [DeleteDataCatalog](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/delete-data-catalog.html)。

### `delete-named-query`
<a name="athena_DeleteNamedQuery_cli_topic"></a>

以下代码示例演示了如何使用 `delete-named-query`。

**Amazon CLI**  
**删除命名查询**  
以下 `delete-named-query` 示例删除具有指定 ID 的命名查询。  

```
aws athena delete-named-query \
    --named-query-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [DeleteNamedQuery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/delete-named-query.html)。

### `delete-work-group`
<a name="athena_DeleteWorkGroup_cli_topic"></a>

以下代码示例演示了如何使用 `delete-work-group`。

**Amazon CLI**  
**删除工作组**  
以下 `delete-work-group` 示例删除 `TeamB` 工作组。  

```
aws athena delete-work-group \
    --work-group TeamB
```
此命令不生成任何输出。要确认删除，请使用 `aws athena list-work-groups`。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[管理工作组](https://docs.amazonaws.cn/athena/latest/ug/workgroups-create-update-delete.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [DeleteWorkGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/delete-work-group.html)。

### `get-data-catalog`
<a name="athena_GetDataCatalog_cli_topic"></a>

以下代码示例演示了如何使用 `get-data-catalog`。

**Amazon CLI**  
**返回有关数据目录的信息**  
以下 `get-data-catalog` 示例返回有关 `dynamo_db_catalog` 数据目录的信息。  

```
aws athena get-data-catalog \
    --name dynamo_db_catalog
```
输出：  

```
{
    "DataCatalog": {
        "Name": "dynamo_db_catalog",
        "Description": "DynamoDB Catalog",
        "Type": "LAMBDA",
        "Parameters": {
            "catalog": "dynamo_db_catalog",
            "metadata-function": "arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda",
            "record-function": "arn:aws:lambda:us-west-2:111122223333:function:dynamo_db_lambda"
        }
    }
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[显示目录详细信息：get-data-catalog](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-showing-details-of-a-catalog)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetDataCatalog](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-data-catalog.html)。

### `get-database`
<a name="athena_GetDatabase_cli_topic"></a>

以下代码示例演示了如何使用 `get-database`。

**Amazon CLI**  
**返回有关数据目录中数据库的信息**  
以下 `get-database` 示例返回有关 `AwsDataCatalog` 数据目录中 `sampledb` 数据库的信息。  

```
aws athena get-database \
    --catalog-name AwsDataCatalog \
    --database-name sampledb
```
输出：  

```
{
    "Database": {
        "Name": "sampledb",
        "Description": "Sample database",
        "Parameters": {
            "CreatedBy": "Athena",
            "EXTERNAL": "TRUE"
        }
    }
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[显示数据库详细信息：get-database](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-showing-details-of-a-database)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetDatabase](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-database.html)。

### `get-named-query`
<a name="athena_GetNamedQuery_cli_topic"></a>

以下代码示例演示了如何使用 `get-named-query`。

**Amazon CLI**  
**返回命名查询**  
以下 `get-named-query` 示例返回有关具有指定 ID 的查询的信息。  

```
aws athena get-named-query \
    --named-query-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
输出：  

```
{
    "NamedQuery": {
        "Name": "CloudFront Logs - SFO",
        "Description": "Shows successful GET request data for SFO",
        "Database": "default",
        "QueryString": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10",
        "NamedQueryId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "WorkGroup": "AthenaAdmin"
    }
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetNamedQuery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-named-query.html)。

### `get-query-execution`
<a name="athena_GetQueryExecution_cli_topic"></a>

以下代码示例演示了如何使用 `get-query-execution`。

**Amazon CLI**  
**返回有关查询执行的信息**  
以下 `get-query-execution` 示例返回有关具有指定查询 ID 的查询的信息。  

```
aws athena get-query-execution \
    --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
输出：  

```
{
    "QueryExecution": {
        "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "Query": "select date, location, browser, uri, status from cloudfront_logs where method = 'GET
' and status = 200 and location like 'SFO%' limit 10",
        "StatementType": "DML",
        "ResultConfiguration": {
            "OutputLocation": "s3://amzn-s3-demo-bucket/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.csv"
        },
        "QueryExecutionContext": {
            "Database": "mydatabase",
            "Catalog": "awsdatacatalog"
        },
        "Status": {
            "State": "SUCCEEDED",
            "SubmissionDateTime": 1593469842.665,
            "CompletionDateTime": 1593469846.486
        },
        "Statistics": {
            "EngineExecutionTimeInMillis": 3600,
            "DataScannedInBytes": 203089,
            "TotalExecutionTimeInMillis": 3821,
            "QueryQueueTimeInMillis": 267,
            "QueryPlanningTimeInMillis": 1175
        },
        "WorkGroup": "AthenaAdmin"
    }
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetQueryExecution](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-query-execution.html)。

### `get-query-results`
<a name="athena_GetQueryResults_cli_topic"></a>

以下代码示例演示了如何使用 `get-query-results`。

**Amazon CLI**  
**返回查询结果**  
以下 `get-query-results` 示例返回具有指定查询 ID 的查询的结果。  

```
aws athena get-query-results \
    --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
输出：  

```
{
    "ResultSet": {
        "Rows": [
            {
                "Data": [
                    {
                        "VarCharValue": "date"
                    },
                    {
                        "VarCharValue": "location"
                    },
                    {
                        "VarCharValue": "browser"
                    },
                    {
                        "VarCharValue": "uri"
                    },
                    {
                        "VarCharValue": "status"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Safari"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Opera"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Firefox"
                    },
                    {
                        "VarCharValue": "/test-image-3.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Lynx"
                    },
                    {
                        "VarCharValue": "/test-image-3.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "IE"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Opera"
                    },
                    {
                        "VarCharValue": "/test-image-1.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Chrome"
                    },
                    {
                        "VarCharValue": "/test-image-3.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Firefox"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Chrome"
                    },
                    {
                        "VarCharValue": "/test-image-3.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "IE"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            }
        ],
        "ResultSetMetadata": {
            "ColumnInfo": [
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "date",
                    "Label": "date",
                    "Type": "date",
                    "Precision": 0,
                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": false
                },
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "location",
                    "Label": "location",
                    "Type": "varchar",
                    "Precision": 2147483647,
                "Data": [

                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": true
                },
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "browser",
                    "Label": "browser",
                    "Type": "varchar",
                    "Precision": 2147483647,
                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": true
                },
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "uri",
                    "Label": "uri",
                    "Type": "varchar",
                    "Precision": 2147483647,
                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": true
                },
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "status",
                    "Label": "status",
                    "Type": "integer",
                    "Precision": 10,
                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": false
                }
            ]
        }
    },
    "UpdateCount": 0
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用查询结果、输出文件和查询历史记录](https://docs.amazonaws.cn/athena/latest/ug/querying.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetQueryResults](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-query-results.html)。

### `get-table-metadata`
<a name="athena_GetTableMetadata_cli_topic"></a>

以下代码示例演示了如何使用 `get-table-metadata`。

**Amazon CLI**  
**返回有关表的元数据信息**  
以下 `get-table-metadata` 示例从 `AwsDataCatalog` 数据目录的 `sampledb` 数据库返回有关 `counties` 表的元数据信息，包括列名及其数据类型。  

```
aws athena get-table-metadata \
    --catalog-name AwsDataCatalog \
    --database-name sampledb \
    --table-name counties
```
输出：  

```
{
    "TableMetadata": {
        "Name": "counties",
        "CreateTime": 1593559968.0,
        "LastAccessTime": 0.0,
        "TableType": "EXTERNAL_TABLE",
        "Columns": [
            {
                "Name": "name",
                "Type": "string",
                "Comment": "from deserializer"
            },
            {
                "Name": "boundaryshape",
                "Type": "binary",
                "Comment": "from deserializer"
            },
            {
                "Name": "motto",
                "Type": "string",
                "Comment": "from deserializer"
            },
            {
                "Name": "population",
                "Type": "int",
                "Comment": "from deserializer"
            }
        ],
        "PartitionKeys": [],
        "Parameters": {
            "EXTERNAL": "TRUE",
            "inputformat": "com.esri.json.hadoop.EnclosedJsonInputFormat",
            "location": "s3://amzn-s3-demo-bucket/json",
            "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
            "serde.param.serialization.format": "1",
            "serde.serialization.lib": "com.esri.hadoop.hive.serde.JsonSerde",
            "transient_lastDdlTime": "1593559968"
        }
    }
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[显示表详细信息：get-table-metadata](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-showing-details-of-a-table)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetTableMetadata](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-table-metadata.html)。

### `get-work-group`
<a name="athena_GetWorkGroup_cli_topic"></a>

以下代码示例演示了如何使用 `get-work-group`。

**Amazon CLI**  
**返回有关工作组的信息**  
以下 `get-work-group` 示例返回有关 `AthenaAdmin` 工作组的信息。  

```
aws athena get-work-group \
    --work-group AthenaAdmin
```
输出：  

```
{
    "WorkGroup": {
        "Name": "AthenaAdmin",
        "State": "ENABLED",
        "Configuration": {
            "ResultConfiguration": {
                "OutputLocation": "s3://amzn-s3-demo-bucket/"
            },
            "EnforceWorkGroupConfiguration": false,
            "PublishCloudWatchMetricsEnabled": true,
            "RequesterPaysEnabled": false
        },
        "Description": "Workgroup for Athena administrators",
        "CreationTime": 1573677174.105
    }
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[管理工作组](https://docs.amazonaws.cn/athena/latest/ug/workgroups-create-update-delete.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [GetWorkGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/get-work-group.html)。

### `list-data-catalogs`
<a name="athena_ListDataCatalogs_cli_topic"></a>

以下代码示例演示了如何使用 `list-data-catalogs`。

**Amazon CLI**  
**列出在 Athena 注册的数据目录**  
以下 `list-data-catalogs` 示例列出在 Athena 中注册的数据目录。  

```
aws athena list-data-catalogs
```
输出：  

```
{
    "DataCatalogsSummary": [
        {
            "CatalogName": "AwsDataCatalog",
            "Type": "GLUE"
        },
        {
            "CatalogName": "cw_logs_catalog",
            "Type": "LAMBDA"
        },
        {
            "CatalogName": "cw_metrics_catalog",
            "Type": "LAMBDA"
        }
    ]
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[列出已注册目录：list-data-catalogs](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-listing-registered-catalogs)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListDataCatalogs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-data-catalogs.html)。

### `list-databases`
<a name="athena_ListDatabases_cli_topic"></a>

以下代码示例演示了如何使用 `list-databases`。

**Amazon CLI**  
**列出数据目录中的数据库**  
以下 `list-databases` 示例列出 `AwsDataCatalog` 数据目录中的数据库。  

```
aws athena list-databases \
    --catalog-name AwsDataCatalog
```
输出：  

```
{
    "DatabaseList": [
        {
            "Name": "default"
        },
        {
            "Name": "mydatabase"
        },
        {
            "Name": "newdb"
        },
        {
            "Name": "sampledb",
            "Description": "Sample database",
            "Parameters": {
                "CreatedBy": "Athena",
                "EXTERNAL": "TRUE"
            }
        },
        {
            "Name": "webdata"
        }
    ]
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[列出目录中的数据库：list-databases](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-listing-databases)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListDatabases](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-databases.html)。

### `list-named-queries`
<a name="athena_ListNamedQueries_cli_topic"></a>

以下代码示例演示了如何使用 `list-named-queries`。

**Amazon CLI**  
**列出工作组的命名查询**  
以下 `list-named-queries` 示例列出 `AthenaAdmin` 工作组的命名查询。  

```
aws athena list-named-queries \
    --work-group AthenaAdmin
```
输出：  

```
{
    "NamedQueryIds": [
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333"
    ]
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListNamedQueries](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-named-queries.html)。

### `list-query-executions`
<a name="athena_ListQueryExecutions_cli_topic"></a>

以下代码示例演示了如何使用 `list-query-executions`。

**Amazon CLI**  
**列出指定工作组中查询的查询 ID**  
以下 `list-query-executions` 示例列出 `AthenaAdmin` 工作组中最多十个查询 ID。  

```
aws athena list-query-executions \
    --work-group AthenaAdmin \
    --max-items 10
```
输出：  

```
{
    "QueryExecutionIds": [
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11110",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11114",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11115",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11116",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11117",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11118",
        "a1b2c3d4-5678-90ab-cdef-EXAMPLE11119"
    ],
    "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxMH0="
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用查询结果、输出文件和查询历史记录](https://docs.amazonaws.cn/athena/latest/ug/querying.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListQueryExecutions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-query-executions.html)。

### `list-table-metadata`
<a name="athena_ListTableMetadata_cli_topic"></a>

以下代码示例演示了如何使用 `list-table-metadata`。

**Amazon CLI**  
**列出数据目录的指定数据库中表的元数据**  
以下 `list-table-metadata` 示例返回 `AwsDataCatalog` 数据目录的 `geography` 数据库中最多两个表的元数据信息。  

```
aws athena list-table-metadata \
    --catalog-name AwsDataCatalog \
    --database-name geography \
    --max-items 2
```
输出：  

```
{
    "TableMetadataList": [
        {
            "Name": "country_codes",
            "CreateTime": 1586553454.0,
            "TableType": "EXTERNAL_TABLE",
            "Columns": [
                {
                    "Name": "country",
                    "Type": "string",
                    "Comment": "geo id"
                },
                {
                    "Name": "alpha-2 code",
                    "Type": "string",
                    "Comment": "geo id2"
                },
                {
                    "Name": "alpha-3 code",
                    "Type": "string",
                    "Comment": "state name"
                },
                {
                    "Name": "numeric code",
                    "Type": "bigint",
                    "Comment": ""
                },
                {
                    "Name": "latitude",
                    "Type": "bigint",
                    "Comment": "location (latitude)"
                },
                {
                    "Name": "longitude",
                    "Type": "bigint",
                    "Comment": "location (longitude)"
                }
            ],
            "Parameters": {
                "areColumnsQuoted": "false",
                "classification": "csv",
                "columnsOrdered": "true",
                "delimiter": ",",
                "has_encrypted_data": "false",
                "inputformat": "org.apache.hadoop.mapred.TextInputFormat",
                "location": "s3://amzn-s3-demo-bucket/csv/countrycode",
                "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
                "serde.param.field.delim": ",",
                "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                "skip.header.line.count": "1",
                "typeOfData": "file"
            }
        },
        {
            "Name": "county_populations",
            "CreateTime": 1586553446.0,
            "TableType": "EXTERNAL_TABLE",
            "Columns": [
                {
                    "Name": "id",
                    "Type": "string",
                    "Comment": "geo id"
                },
                {
                    "Name": "country",

                    "Name": "id2",
                    "Type": "string",
                    "Comment": "geo id2"
                },
                {
                    "Name": "county",
                    "Type": "string",
                    "Comment": "county name"
                },
                {
                    "Name": "state",
                    "Type": "string",
                    "Comment": "state name"
                },
                {
                    "Name": "population estimate 2018",
                    "Type": "string",
                    "Comment": ""
                }
            ],
            "Parameters": {
                "areColumnsQuoted": "false",
                "classification": "csv",
                "columnsOrdered": "true",
                "delimiter": ",",
                "has_encrypted_data": "false",
                "inputformat": "org.apache.hadoop.mapred.TextInputFormat",
                "location": "s3://amzn-s3-demo-bucket/csv/CountyPopulation",
                "outputformat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
                "serde.param.field.delim": ",",
                "serde.serialization.lib": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
                "skip.header.line.count": "1",
                "typeOfData": "file"
            }
        }
    ],
    "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ=="
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[显示数据库中所有表的元数据：list-table-metadata](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-showing-all-table-metadata)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListTableMetadata](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-table-metadata.html)。

### `list-tags-for-resource`
<a name="athena_ListTagsForResource_cli_topic"></a>

以下代码示例演示了如何使用 `list-tags-for-resource`。

**Amazon CLI**  
**示例 1：列出工作组的标签**  
以下 `list-tags-for-resource` 示例列出 `Data_Analyst_Group` 工作组的标签。  

```
aws athena list-tags-for-resource \
    --resource-arn arn:aws:athena:us-west-2:111122223333:workgroup/Data_Analyst_Group
```
输出：  

```
{
    "Tags": [
        {
            "Key": "Division",
            "Value": "West"
        },
        {
            "Key": "Team",
            "Value": "Big Data"
        },
        {
            "Key": "Location",
            "Value": "Seattle"
        }
    ]
}
```
**示例 2：列出数据目录的标签**  
以下 `list-tags-for-resource` 示例列出 `dynamo_db_catalog` 数据目录的标签。  

```
aws athena list-tags-for-resource \
    --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog
```
输出：  

```
{
    "Tags": [
        {
            "Key": "Division",
            "Value": "Mountain"
        },
        {
            "Key": "Organization",
            "Value": "Retail"
        },
        {
            "Key": "Product_Line",
            "Value": "Shoes"
        },
        {
            "Key": "Location",
            "Value": "Denver"
        }
    ]
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[列出资源标签：list-tags-for-resource](https://docs.amazonaws.cn/athena/latest/ug/tags-operations.html#tags-operations-examples-cli-list-tags-for-resource)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListTagsForResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-tags-for-resource.html)。

### `list-work-groups`
<a name="athena_ListWorkGroups_cli_topic"></a>

以下代码示例演示了如何使用 `list-work-groups`。

**Amazon CLI**  
**列出工作组**  
以下 `list-work-groups` 命令列出当前账户中的工作组。  

```
aws athena list-work-groups
```
输出：  

```
{
    "WorkGroups": [
        {
            "Name": "Data_Analyst_Group",
            "State": "ENABLED",
            "Description": "",
            "CreationTime": 1578006683.016
        },
        {
            "Name": "AthenaAdmin",
            "State": "ENABLED",
            "Description": "",
            "CreationTime": 1573677174.105
        },
        {
            "Name": "primary",
            "State": "ENABLED",
            "Description": "",
            "CreationTime": 1567465222.723
        }
    ]
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[管理工作组](https://docs.amazonaws.cn/athena/latest/ug/workgroups-create-update-delete.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [ListWorkGroups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/list-work-groups.html)。

### `start-query-execution`
<a name="athena_StartQueryExecution_cli_topic"></a>

以下代码示例演示了如何使用 `start-query-execution`。

**Amazon CLI**  
**示例 1：在工作组中对指定数据库和数据目录中的指定表运行查询**  
以下 `start-query-execution` 示例使用 `AthenaAdmin` 工作组对 `AwsDataCatalog` 数据目录中 `cflogsdatabase` 的 `cloudfront_logs` 表运行查询。  

```
aws athena start-query-execution \
    --query-string "select date, location, browser, uri, status from cloudfront_logs where method = 'GET' and status = 200 and location like 'SFO%' limit 10" \
    --work-group "AthenaAdmin" \
    --query-execution-context Database=cflogsdatabase,Catalog=AwsDataCatalog
```
输出：  

```
{
"QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
**示例 2：运行查询，使用指定工作组在指定数据目录中创建数据库**  
以下 `start-query-execution` 示例使用 `AthenaAdmin` 工作组在默认数据目录 `AwsDataCatalog` 中创建数据库 `newdb`。  

```
aws athena start-query-execution \
    --query-string "create database if not exists newdb" \
    --work-group "AthenaAdmin"
```
输出：  

```
{
"QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11112"
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
**示例 3：运行查询，在指定数据库和数据目录中的表上创建视图**  
以下 `start-query-execution` 示例在 `cflogsdatabase` 中的 `cloudfront_logs` 表上使用 `SELECT` 语句创建视图 `cf10`。  

```
aws athena start-query-execution \
    --query-string  "CREATE OR REPLACE VIEW cf10 AS SELECT * FROM cloudfront_logs limit 10" \
    --query-execution-context Database=cflogsdatabase
```
输出：  

```
{
"QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11113"
}
```
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [StartQueryExecution](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/start-query-execution.html)。

### `stop-query-execution`
<a name="athena_StopQueryExecution_cli_topic"></a>

以下代码示例演示了如何使用 `stop-query-execution`。

**Amazon CLI**  
**停止正在运行的查询**  
以下 `stop-query-execution` 示例停止具有指定查询 ID 的查询。  

```
aws athena stop-query-execution \
    --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```
此命令不生成任何输出。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用 Amazon Athena 运行 SQL 查询](https://docs.amazonaws.cn/athena/latest/ug/querying-athena-tables.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [StopQueryExecution](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/stop-query-execution.html)。

### `tag-resource`
<a name="athena_TagResource_cli_topic"></a>

以下代码示例演示了如何使用 `tag-resource`。

**Amazon CLI**  
**向资源添加标签**  
以下 `tag-resource` 示例向 `dynamo_db_catalog` 数据目录添加三个标签。  

```
aws athena tag-resource \
    --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog \
    --tags Key=Organization,Value=Retail Key=Division,Value=Mountain Key=Product_Line,Value=Shoes Key=Location,Value=Denver
```
此命令不生成任何输出。要查看结果，请使用 `aws athena list-tags-for-resource --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog`。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[向资源添加标签：tag-resource](https://docs.amazonaws.cn/athena/latest/ug/tags-operations.html#tags-operations-examples-cli-tag-resource)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [TagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/tag-resource.html)。

### `untag-resource`
<a name="athena_UntagResource_cli_topic"></a>

以下代码示例演示了如何使用 `untag-resource`。

**Amazon CLI**  
**从资源中删除标签**  
以下 `untag-resource` 示例从 `dynamo_db_catalog` 数据目录资源中移除 `Specialization` 和 `Focus` 键及其相关值。  

```
aws athena untag-resource \
    --resource-arn arn:aws:athena:us-west-2:111122223333:datacatalog/dynamo_db_catalog \
    --tag-keys Specialization Focus
```
此命令不生成任何输出。要查看结果，请使用 `list-tags-for-resource` 命令。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[从资源中删除标签：untag-resource](https://docs.amazonaws.cn/athena/latest/ug/tags-operations.html#tags-operations-examples-cli-untag-resource)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [UntagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/untag-resource.html)。

### `update-data-catalog`
<a name="athena_UpdateDataCatalog_cli_topic"></a>

以下代码示例演示了如何使用 `update-data-catalog`。

**Amazon CLI**  
**更新数据目录**  
以下 `update-data-catalog` 示例更新 Lambda 函数和 `cw_logs_catalog` 数据目录的说明。  

```
aws athena update-data-catalog \
    --name cw_logs_catalog \
    --type LAMBDA \
    --description "New CloudWatch Logs Catalog" \
    --function=arn:aws:lambda:us-west-2:111122223333:function:new_cw_logs_lambda
```
此命令不生成任何输出。要查看结果，请使用 `aws athena get-data-catalog --name cw_logs_catalog`。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[更新目录：update-data-catalog](https://docs.amazonaws.cn/athena/latest/ug/datastores-hive-cli.html#datastores-hive-cli-updating-a-catalog)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [UpdateDataCatalog](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/update-data-catalog.html)。

### `update-work-group`
<a name="athena_UpdateWorkGroup_cli_topic"></a>

以下代码示例演示了如何使用 `update-work-group`。

**Amazon CLI**  
**更新工作组**  
以下 `update-work-group` 示例禁用 `Data_Analyst_Group` 工作组。用户无法在禁用的工作组中运行或创建查询，但仍可以查看指标、数据使用限制控制、工作组设置、查询历史记录和保存的查询。  

```
aws athena update-work-group \
    --work-group Data_Analyst_Group \
    --state DISABLED
```
此命令不生成任何输出。要验证状态的变化，请使用 `aws athena get-work-group --work-group Data_Analyst_Group` 并检查输出中的 `State` 属性。  
有关更多信息，请参阅《Amazon Athena 用户指南》**中的[管理工作组](https://docs.amazonaws.cn/athena/latest/ug/workgroups-create-update-delete.html)。  
+  有关 API 详细信息，请参阅《Amazon CLI 命令参考》**中的 [UpdateWorkGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/update-work-group.html)。