Athena 範例使用 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Athena 範例使用 AWS CLI

下列程式碼範例說明如何透過 AWS Command Line Interface 搭配 Athena 使用來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用batch-get-named-query

AWS 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 查詢

下列程式碼範例會示範如何使用batch-get-query-execution

AWS 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

AWS 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中的註冊目錄:

下列程式碼範例會示範如何使用create-named-query

AWS CLI

建立具名查詢的步驟

下列create-named-query範例會在AthenaAdmin工作群組中建立已儲存的查詢,查詢 2016 年 1 月從西雅圖飛往紐約的航班資料flights_parquet表,其起飛和抵達都延遲了十分鐘以上。由於資料表中的機場代碼值是包含雙引號的字串 (例如「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 詳細資訊,請參閱AWS CLI 命令參考CreateNamedQuery中的。

下列程式碼範例會示範如何使用create-work-group

AWS 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

如需詳細資訊,請參閱 Amazon Athena 使用者指南中的管理工作群組

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考CreateWorkGroup中的。

下列程式碼範例會示範如何使用delete-data-catalog

AWS CLI

刪除資料目錄的步驟

下列delete-data-catalog範例會刪除資UnusedDataCatalog料目錄。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Athena 使用者指南 delete-data-catalog中的刪除目錄:

下列程式碼範例會示範如何使用delete-named-query

AWS CLI

刪除具名查詢的步驟

下列delete-named-query範例會刪除具有指定 ID 的具名查詢。

aws athena delete-named-query \ --named-query-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Athena 使用者指南中的使用 Amazon Athena 執行 SQL 查詢

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteNamedQuery中的。

下列程式碼範例會示範如何使用delete-work-group

AWS CLI

刪除工作群組的步驟

下列delete-work-group範例會刪除TeamB工作群組。

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

此命令不會產生輸出。若要確認刪除,請使用aws athena list-work-groups

如需詳細資訊,請參閱 Amazon Athena 使用者指南中的管理工作群組

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteWorkGroup中的。

下列程式碼範例會示範如何使用get-data-catalog

AWS 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 詳細資訊,請參閱AWS CLI 命令參考GetDataCatalog中的。

下列程式碼範例會示範如何使用get-database

AWS 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 詳細資訊,請參閱AWS CLI 命令參考GetDatabase中的。

下列程式碼範例會示範如何使用get-named-query

AWS 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 詳細資訊,請參閱AWS CLI 命令參考GetNamedQuery中的。

下列程式碼範例會示範如何使用get-query-execution

AWS 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 查詢

下列程式碼範例會示範如何使用get-query-results

AWS 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 使用者指南中的使用查詢結果、輸出檔案和查詢歷史記錄

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetQueryResults中的。

下列程式碼範例會示範如何使用get-table-metadata

AWS 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 詳細資訊,請參閱AWS CLI 命令參考GetTableMetadata中的。

下列程式碼範例會示範如何使用get-work-group

AWS 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 } }

如需詳細資訊,請參閱 Amazon Athena 使用者指南中的管理工作群組

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetWorkGroup中的。

下列程式碼範例會示範如何使用list-data-catalogs

AWS 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中的列出已註冊目錄:

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListDataCatalogs中的。

下列程式碼範例會示範如何使用list-databases

AWS 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 詳細資訊,請參閱AWS CLI 命令參考ListDatabases中的。

下列程式碼範例會示範如何使用list-named-queries

AWS 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 詳細資訊,請參閱AWS CLI 命令參考ListNamedQueries中的。

下列程式碼範例會示範如何使用list-query-executions

AWS 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 使用者指南中的使用查詢結果、輸出檔案和查詢歷史記錄

下列程式碼範例會示範如何使用list-table-metadata

AWS 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 Athena 使用者指南中的〈顯示資料庫 list-table-metadata中所有表格的中繼資料〉

下列程式碼範例會示範如何使用list-tags-for-resource

AWS 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中的列出資源標籤

下列程式碼範例會示範如何使用list-work-groups

AWS 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 使用者指南中的管理工作群組

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListWorkGroups中的。

下列程式碼範例會示範如何使用start-query-execution

AWS 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工作群組在預設資料目錄newdb中建立資料庫AwsDataCatalog

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

AWS CLI

若要停止執行中的查詢

下列stop-query-execution範例會停止具有指定查詢 ID 的查詢。

aws athena stop-query-execution \ --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

此命令不會產生輸出。

如需詳細資訊,請參閱 Amazon Athena 使用者指南中的使用 Amazon Athena 執行 SQL 查詢

下列程式碼範例會示範如何使用tag-resource

AWS 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 詳細資訊,請參閱AWS CLI 命令參考TagResource中的。

下列程式碼範例會示範如何使用untag-resource

AWS 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 Athena 使用者指南中的從資源移除標籤:無標記資源。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UntagResource中的。

下列程式碼範例會示範如何使用update-data-catalog

AWS 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中的更新目錄:

下列程式碼範例會示範如何使用update-work-group

AWS 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 使用者指南中的管理工作群組

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UpdateWorkGroup中的。