文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的 Athena 範例 AWS CLI
下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 Athena 來執行動作和實作常見案例。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。
每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。
主題
動作
下列程式碼範例示範如何使用 batch-get-named-query
。
- AWS CLI
-
傳回多個查詢的相關資訊
下列
batch-get-named-query
範例會傳回具有指定 IDs之具名查詢的相關資訊。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 詳細資訊,請參閱《 AWS CLI 命令參考》中的 BatchGetNamedQuery
。
-
下列程式碼範例示範如何使用 batch-get-query-execution
。
- AWS CLI
-
傳回一或多個查詢執行的相關資訊
下列
batch-get-query-execution
範例會傳回具有指定查詢 IDs 之查詢的查詢執行資訊。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 查詢。
-
如需 API 詳細資訊,請參閱《 AWS CLI 命令參考》中的 BatchGetQueryExecution
。
-
下列程式碼範例示範如何使用 create-data-catalog
。
- AWS CLI
-
建立資料目錄
下列
create-data-catalog
範例會建立dynamo_db_catalog
資料目錄。aws athena create-data-catalog \ --name
dynamo_db_catalog
\ --typeLAMBDA
\ --description"DynamoDB Catalog"
\ --parametersfunction=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 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateDataCatalog
。
-
下列程式碼範例示範如何使用 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."
\ --databasesampledb
\ --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-groupAthenaAdmin
輸出:
{ "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://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"
\ --tagsKey=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。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteDataCatalog
。
-
下列程式碼範例示範如何使用 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-namesampledb
輸出:
{ "Database": { "Name": "sampledb", "Description": "Sample database", "Parameters": { "CreatedBy": "Athena", "EXTERNAL": "TRUE" } } }
如需詳細資訊,請參閱《Amazon Athena 使用者指南》中的顯示資料庫詳細資訊:get-database。
-
如需 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://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 查詢。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetQueryExecution
。
-
下列程式碼範例示範如何使用 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
範例會從AwsDataCatalog
資料目錄的sampledb
資料庫傳回counties
資料表的中繼資料資訊,包括資料欄名稱及其資料類型。aws athena get-table-metadata \ --catalog-name
AwsDataCatalog
\ --database-namesampledb
\ --table-namecounties
輸出:
{ "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。
-
如需 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://amzn-s3-demo-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 使用者指南》中的在目錄:list-databases 中列出資料庫。
-
如需 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
-
列出指定工作群組中查詢IDs
下列
list-query-executions
範例列出AthenaAdmin
工作群組中最多十IDs。aws athena list-query-executions \ --work-group
AthenaAdmin
\ --max-items10
輸出:
{ "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 使用者指南》中的使用查詢結果、輸出檔案和查詢歷史記錄。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListQueryExecutions
。
-
下列程式碼範例示範如何使用 list-table-metadata
。
- AWS CLI
-
列出資料目錄指定資料庫中資料表的中繼資料
下列
list-table-metadata
範例會傳回AwsDataCatalog
資料目錄geography
資料庫中最多兩個資料表的中繼資料資訊。aws athena list-table-metadata \ --catalog-name
AwsDataCatalog
\ --database-namegeography
\ --max-items2
輸出:
{ "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。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListTableMetadata
。
-
下列程式碼範例示範如何使用 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。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ListTagsForResource
。
-
下列程式碼範例示範如何使用 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
資料目錄中 中的cloudfront_logs
資料表cflogsdatabase
上執行查詢。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-contextDatabase=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-contextDatabase=cflogsdatabase
輸出:
{ "QueryExecutionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11113" }
如需詳細資訊,請參閱 Amazon Athena 使用者指南中的使用 Amazon Athena 執行 SQL 查詢。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 StartQueryExecution
。
-
下列程式碼範例示範如何使用 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 查詢。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 StopQueryExecution
。
-
下列程式碼範例示範如何使用 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
\ --tagsKey=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。
-
如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 TagResource
。
-
下列程式碼範例示範如何使用 untag-resource
。
- AWS 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-keysSpecialization
Focus
此命令不會產生輸出。若要查看結果,請使用
list-tags-for-resource
命令。如需詳細資訊,請參閱《Amazon Athena 使用者指南》中的從資源移除標籤:Untag-resource。
-
如需 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
\ --typeLAMBDA
\ --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 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateDataCatalog
。
-
下列程式碼範例示範如何使用 update-work-group
。
- AWS CLI
-
更新工作群組
下列
update-work-group
範例會停用Data_Analyst_Group
工作群組。使用者無法在已停用的工作群組中執行或建立查詢,但仍可以檢視指標、資料用量限制控制、工作群組設定、查詢歷史記錄和已儲存的查詢。aws athena update-work-group \ --work-group
Data_Analyst_Group
\ --stateDISABLED
此命令不會產生輸出。若要驗證狀態變更,請使用
aws athena get-work-group --work-group Data_Analyst_Group
並檢查輸出中的State
屬性。如需詳細資訊,請參閱《Amazon Athena 使用者指南》中的管理工作群組。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateWorkGroup
。
-