使用 Athena 的示例 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Athena 的示例 Amazon CLI

以下代码示例向您展示了如何使用 Amazon Command Line Interface 与 Athena 配合使用来执行操作和实现常见场景。

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

场景是展示如何通过在同一服务中调用多个函数来完成特定任务任务的代码示例。

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

主题

操作

以下代码示例演示如何使用 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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考BatchGetNamedQuery中的。

以下代码示例演示如何使用 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://awsdoc-example-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://awsdoc-example-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 查询

以下代码示例演示如何使用 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中的注册目录:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateDataCatalog中的。

以下代码示例演示如何使用 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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateNamedQuery中的。

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

Amazon CLI

创建工作组

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

aws athena create-work-group \ --name Data_Analyst_Group \ --configuration ResultConfiguration={OutputLocation="s3://awsdoc-example-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

有关更多信息,请参阅 A mazon Athena 用户指南中的管理工作组

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateWorkGroup中的。

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

Amazon CLI

删除数据目录

以下delete-data-catalog示例删除了UnusedDataCatalog数据目录。

aws athena delete-data-catalog \ --name UnusedDataCatalog

此命令不生成任何输出。

有关更多信息,请参阅 Amazon Athena 用户指南 delete-data-catalog中的删除目录:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeleteDataCatalog中的。

以下代码示例演示如何使用 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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeleteNamedQuery中的。

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

Amazon CLI

删除工作组

以下delete-work-group示例删除了TeamB工作组。

aws athena delete-work-group \ --work-group TeamB

此命令不生成任何输出。要确认删除,请使用aws athena list-work-groups

有关更多信息,请参阅 A mazon Athena 用户指南中的管理工作组

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeleteWorkGroup中的。

以下代码示例演示如何使用 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中的显示目录详情:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetDataCatalog中的。

以下代码示例演示如何使用 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 用户指南中的显示数据库详情:获取数据库。

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetDatabase中的。

以下代码示例演示如何使用 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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetNamedQuery中的。

以下代码示例演示如何使用 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://awsdoc-example-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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetQueryExecution中的。

以下代码示例演示如何使用 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 Athen a 用户指南中的使用查询结果、输出文件和查询历史记录

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetQueryResults中的。

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

Amazon CLI

返回有关表的元数据信息

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

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://awsdoc-example-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中的显示表格详情:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetTableMetadata中的。

以下代码示例演示如何使用 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://awsdoc-example-bucket/" }, "EnforceWorkGroupConfiguration": false, "PublishCloudWatchMetricsEnabled": true, "RequesterPaysEnabled": false }, "Description": "Workgroup for Athena administrators", "CreationTime": 1573677174.105 } }

有关更多信息,请参阅 A mazon Athena 用户指南中的管理工作组

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetWorkGroup中的。

以下代码示例演示如何使用 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" } ] }

有关更多信息,请参阅 A mazon Athena 用户 list-data-catalogs指南中的列出注册目录:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考ListDataCatalogs中的。

以下代码示例演示如何使用 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 用户指南中的在目录中列出数据库:列表数据库

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考ListDatabases中的。

以下代码示例演示如何使用 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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考ListNamedQueries中的。

以下代码示例演示如何使用 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 Athen a 用户指南中的使用查询结果、输出文件和查询历史记录

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

Amazon CLI

列出数据目录的指定数据库中表的元数据

以下list-table-metadata示例返回数据目录geography数据库中最多两个表的元AwsDataCatalog数据信息。

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://awsdoc-example-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://awsdoc-example-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 Athen a 用户指南 list-table-metadata中的显示数据库中所有表的元数据:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考ListTableMetadata中的。

以下代码示例演示如何使用 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 Athen a 用户 list-tags-for-resource指南中的列出资源的标签:

以下代码示例演示如何使用 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 } ] }

有关更多信息,请参阅 A mazon Athena 用户指南中的管理工作组

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考ListWorkGroups中的。

以下代码示例演示如何使用 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 查询

示例 2:运行使用指定工作组在指定数据目录中创建数据库的查询

以下start-query-execution示例使用AthenaAdmin工作组在默认数据目录newdbAwsDataCatalog中创建数据库。

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 查询

示例 3:运行查询以在指定数据库和数据目录中的表上创建视图

以下start-query-execution示例使用对cloudfront_logs表的SELECT语句cflogsdatabase来创建视图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 查询

以下代码示例演示如何使用 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 查询

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考StopQueryExecution中的。

以下代码示例演示如何使用 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 用户指南中的为资源添加标签:标签资源。

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考TagResource中的。

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

Amazon CLI

从资源中移除标签

以下untag-resource示例从dynamo_db_catalog数据目录资源中移除SpecializationFocus键及其关联值。

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 Athen a 用户指南中的从资源中移除标签:取消标记资源。

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考UntagResource中的。

以下代码示例演示如何使用 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中的更新目录:

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考UpdateDataCatalog中的。

以下代码示例演示如何使用 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属性。

有关更多信息,请参阅 A mazon Athena 用户指南中的管理工作组

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考UpdateWorkGroup中的。