æ¬èšäºã¯ 2026 幎 11 æ 9 æ¥ ã«å
¬éãããã Amazon Athena introduces system tables for query execution observability ãã翻蚳ãããã®ã§ãã å€ãã®æ¹ã Amazon Athena ã§ããŒã¿ã¬ã€ã¯å
šäœã« SQL ã¯ãšãªãå®è¡ãã察話åã®åæãã宿å®è¡ã®ã¬ããŒããã€ãã©ã€ã³ãŸã§ãå¹
åºãåŠçã«æŽ»çšããŠããŸãããã ããã¯ãŒã¯ããŒãã®ç¶æ³ãååã«ææ¡ã§ããŠããªãããšãå°ãªããããŸããããŠãŒã¶ãŒãã¯ãŒã¯ã°ã«ãŒããã¯ãšãªãå¢ã㊠Athena ã®å©çšãåºããã«ã€ããã©ã®ã¯ãšãªã®ã³ã¹ããé«ãã®ãã誰ãå®è¡ããã®ããããã©ãŒãã³ã¹ãå€åããŠããªãããã³ã¹ããã©ãé
åããã®ããç¥ãå¿
èŠãåºãŠããŸãã Athena ã§ã·ã¹ãã ããŒãã«ã䜿ããããã«ãªããŸããã第äžåŒŸãšããŠæ¬æ¥æäŸãéå§ãã query_executions ã¯ãå©çšç¶æ³ã®ããŒã¿ãèªåã§èšé²ãããªãã¶ãŒãããªãã£ãå©çšç¶æ³ã®åæãç£æ»ãšãã£ããŠãŒã¹ã±ãŒã¹ã«äœ¿ããŸããã·ã¹ãã ããŒãã«ãæå¹ã«ãããšããã¹ãŠã®ã¯ãŒã¯ã°ã«ãŒãã§ãã¯ãšãªã®å®äºããæ°å以å
ã«å©çšç¶æ³ã®ããŒã¿ãåç
§ã§ããããã«ãªããŸããAthena ã¯å©çšç¶æ³ã®ããŒã¿ãã Amazon Simple Storage Service (Amazon S3) ã®æ©èœã§ãã Amazon S3 Tables ã« Apache Iceberg ããŒãã«ãšããŠä¿åããŸããä¿ææéã¯èšå®ã§å€æŽã§ããŸããã¹ããŒãã®å®çŸ©ãããŒãã£ã·ã§ãã³ã°ãã³ã³ãã¯ã·ã§ã³ãã¹ãããã·ã§ããã®ã¡ã³ããã³ã¹ãå«ãããŒãã«ã®ç®¡ç㯠AWS ãæ
ãã®ã§ãAthena ããçŽæ¥ã¯ãšãªããã ãã§æžã¿ãŸããããŒãã«ã管çããéçšã®è² æ
ã¯ããããŸããã Athena ã®å©çšç¶æ³ã®ããŒã¿ã¯ã GetQueryExecution ãªã©ã® APIã Amazon CloudWatch ã®ã¡ããªã¯ã¹ã AWS CloudTrail ã®ãã°ããååŸã§ããŸããä»åã®ãªãªãŒã¹ã§ãå©çšç¶æ³ã®ããŒã¿ã S3 ããŒãã«ãšããŠã䜿ããããã«ãªããŸãããç¬èªã®ãã€ãã©ã€ã³ãæ§ç¯ã»ä¿å®ããªããŠããçŽæ¥æ€çŽ¢ããã£ã«ã¿ãªã³ã°ãéèšãçµåãã§ããŸãããã©ãããã©ãŒã ããŒã ã¯ãç¬èªã®æœåºã倿ãããŒã (ETL) ãã€ãã©ã€ã³ãçšæããªããŠããã¯ãŒã¯ã°ã«ãŒãå¥ããŠãŒã¶ãŒå¥ãããŒãã«å¥ã«ã¹ãã£ã³ããããŒã¿éã瀺ãã³ã¹ãé
åã®ããã·ã¥ããŒããæ§ç¯ã§ããŸããããã«ã AWS Agent Toolkit ã«ã¯ãã·ã¹ãã ããŒãã«ãã¯ãšãªããŠå©çšãã¿ãŒã³ãæé©åã®ææ¡ãå°ãåºãã¹ãã«ãçšæãããŠããŸããAthena ã¯ããŒã¿ããªãŒãã³ãª Apache Iceberg 圢åŒã§ä¿åããããã DuckDB ã Amazon Redshift ãªã©ã® Iceberg äºæãšã³ãžã³ãããã¯ãšãªã§ããŸãã æ¬èšäºã§ã¯ãã·ã¹ãã ããŒãã«ãšã¯äœããã©ãå§ããã®ãããããŠäœãããã·ã¹ãã ããŒãã«ã§äœãã§ããã®ãã玹ä»ããŸãã 課é¡: èŠæš¡ãæ¡å€§ãã Athena ã¯ãŒã¯ããŒãã®ææ¡ ãããŸã§ãèŠæš¡ã®å€§ããªã¯ãšãªã¯ãŒã¯ããŒããææ¡ããã«ã¯ãã¯ãšãªãã®ãã®ãå®è¡ãããããå€ãã®æéãããã£ãŠããŸãããããããæ¬¡ã®ãããªçåãèããŠã¿ãŠãã ããã ã³ã¹ãã®é
å: 仿ãæãã³ã¹ãã®é«ãã¯ãšãªãå®è¡ããã®ã¯ã©ã®ããŒã ãïŒ ããã©ãŒãã³ã¹åæ: é
ããªã£ãŠããã¯ãšãªããæ®æ®µããå€ãã®ããŒã¿ãã¹ãã£ã³ããŠããã¯ãšãªã¯ãªããïŒ ç£æ»ãšã³ã³ãã©ã€ã¢ã³ã¹: åååæã«ç¹å®ã®ããŒãã«ã«å¯ŸããŠã¯ãšãªãå®è¡ããã®ã¯èª°ãïŒ éçšç¶æ³ã®ææ¡: æ¬çªã¯ãŒã¯ããŒãã®ãšã©ãŒçã¯ã©ã®ããããïŒ å©çšãã¿ãŒã³: æ¥ããšã®ã¯ãšãªæ°ã¯ã©ã®ãããã§ãããŒã¯ã®æé垯ã¯ãã€ãïŒ ä»¥åã¯ãã©ã®çåã«çããã«ããAthena APIãAmazon CloudWatch ã®ã¡ããªã¯ã¹ãAWS CloudTrail ã®ãã°ãèªåã§ã€ãªãåãããããã¯ãšãªå±¥æŽã®ã¹ãããã·ã§ãããåã£ãŠã¯ãšãªã§ãã圢åŒã§ä¿åããç¬èªã®ãã€ãã©ã€ã³ãæ§ç¯ããå¿
èŠããããŸãããã€ãŸããåæãã€ãã©ã€ã³ãåæããããã«ãåæãã€ãã©ã€ã³ãæ§ç¯ããŠããããã§ããã·ã¹ãã ããŒãã«ã¯ãå·®å¥åã«ã€ãªãããªãéåŽåããªãããŸãã ã·ã¹ãã ããŒãã«ãšã¯ æåã®ã·ã¹ãã ããŒãã«ã§ãã query_executions ã¯ããã¹ãŠã®ã¯ãŒã¯ã°ã«ãŒãã§å®äºãã (æåãããããšã©ãŒã§çµäºãã) ã¯ãšãª 1 ä»¶ããšã« 1 è¡ãèšé²ããŸããèšé²ããå
å®¹ã¯æ¬¡ã®ãšããã§ãã ã¯ãšãªã®è奿
å ±: ã¯ãšãªå®è¡ IDãã¯ãšãªæååãéä¿¡æå»ã ã³ã³ããã¹ã: ã¯ãŒã¯ã°ã«ãŒããã«ã¿ãã°ãããŒã¿ããŒã¹ãããŒãã«ã ãŠãŒã¶ãŒã¢ã€ãã³ãã£ãã£: ã¯ãšãªãéä¿¡ãããŠãŒã¶ãŒã ããã©ãŒãã³ã¹: åèšå®è¡æéãèšç»æéããã¥ãŒæéãªã©ã ãªãœãŒã¹ã®æ¶è²»é: ã¹ãã£ã³ãããã€ãæ°ãããŒã¿åŠçãŠããã (DPU) æ°ã çµæ: å®è¡ç¶æ
(æåã倱æããã£ã³ã»ã«)ããšã©ãŒã®è©³çްæ
å ±ã ã¯ãšãªã«é¢ããæ
å ±ããã¹ãŠ 1 ãæã«ããããšãAthena ã¯ãŒã¯ããŒãã®æãæ¹ãå€ãããŸããã³ã³ãœãŒã«ã API ã§ã¯ãšãªã 1 ä»¶ãã€èª¿ã¹ãã®ã§ã¯ãªããã¯ãšãªå±¥æŽå
šäœã察象ã«åããç«ãŠãããŸããã»ãã®åæçšããŒã¿ã»ãããšåãããã«ãéèšããã£ã«ã¿ãªã³ã°ãåŸåã®åæãçµåãã§ããŸããããã·ã¥ããŒããæ§ç¯ãããã宿çãªã¬ããŒããèšå®ããããç¶æ³ãææ¡ããããšãã«ã¢ãããã¯ã¯ãšãªãå®è¡ãããã§ããŸãã å§ãæ¹ ã·ã¹ãã ããŒãã«ã¯ãæ°ã¹ãããã§æå¹ã«ã§ããŸãã Athena ã³ã³ãœãŒã« ãéããŸãã å·ŠåŽã®ããã²ãŒã·ã§ã³ãã€ã³ã§ã Administration ã®äžã«ãã System tables ãéžæããŸãã Configure ãéžæãã Enable system tables for all your current and future resources ããªã³ã«ããŸãã (ãªãã·ã§ã³) Data encryption ãå±éãã AWS Key Management Service (AWS KMS) ã®ããŒãéžæããŸããããŒãéžæããªãå ŽåãAthena 㯠Amazon S3 ãããŒãžãã㌠(SSE-S3) ã䜿ããŸãã Save ãéžæããŸããAthena ã¯ã¢ã«ãŠã³ãå
ã«ããµãŒãã¹ã管çãã Amazon S3 ã®ããŒãã«ãã±ãããããããžã§ãã³ã°ãããã¹ãŠã®ã¯ãŒã¯ã°ã«ãŒãã§ã¯ãšãªå®è¡ã®èšé²ãå§ããŸãã æå¹ã«ãããšãAthena ã¯æ°ããã¯ãšãªã®å®è¡ãèªåã§èšé²ããŸããã·ã¹ãã ããŒãã«ã«ã¯ãã»ãã® Athena ããŒãã«ãšåãããã«ãã³ã³ãœãŒã«ã®ã¯ãšãªãšãã£ã¿ãAPI ã SDKã JDBC ãã©ã€ããŒã ODBC ãã©ã€ããŒããã¢ã¯ã»ã¹ã§ããŸãã AI ãšãŒãžã§ã³ãã§ã·ã¹ãã ããŒãã«ããã€ã³ãµã€ããåŸã èªç¶èšèªã§è³ªåããŠãã·ã¹ãã ããŒãã«ãæ¢çŽ¢ããããšãã§ããŸããã·ã¹ãã ããŒãã«ã¯ AWS Glue Data Catalog ã®æšæºçãªããŒãã«ãªã®ã§ã Kiro ã Claude Code ãªã©ã Model Context Protocol (MCP) ã«å¯Ÿå¿ãã AI ãšãŒãžã§ã³ãããåç
§ã§ããŸããæ¥ç¶å
㯠AWS MCP Server ã§ããAWS MCP Server ã¯ãããŒãžãåã® MCP ãµãŒããŒã§ãæ¢åã® AWS Identity and Access Management (IAM) ã®èªèšŒæ
å ±ã䜿ã£ãŠããšãŒãžã§ã³ããã AWS ã«ã¢ã¯ã»ã¹ã§ããŸãã å®å®ããçµæãåŸãã«ã¯ãAWS ã AWS Agent Toolkit ã§å
¬éããŠãããAthena ã·ã¹ãã ããŒãã«åãã®ãªãŒãã³ãœãŒã¹ã® Agent Skill ã䜿ã£ãŠãã ãããã¹ãã«ã¯ããšãŒãžã§ã³ããæ©èœãããŸã䜿ããããã«æããæç€ºãšæ€èšŒæžã¿ã®äŸããŸãšããããã±ãŒãžã§ãããŒãžã§ã³ç®¡çãããŠããŸããAthena ã·ã¹ãã ããŒãã«åãã®ã¹ãã«ã«ã¯ãã·ã¹ãã ããŒãã«ã®ã¹ããŒããšã¯ãšãªäŸã®ã©ã€ãã©ãªãå«ãŸããŠããŸããããŒãã£ã·ã§ã³åã§çµã蟌ããããŒãã«ãèªã¿åãå°çšãšããŠæ±ããšãã£ããã¯ãšãªãæ£ãããã³ã¹ãå¹çããä¿ã€ããã®æ±ºãŸãããšãçµã¿èŸŒãŸããŠããŸããã¹ãã«ãèªã¿èŸŒãã ãšãŒãžã§ã³ãã¯ãæ£ããååã§ãããŒãã£ã·ã§ã³ãã«ãŒãã³ã°ã«ãã£ãŠã¹ãã£ã³éãæãã SQL ãæžããŸããèªç±åœ¢åŒã®ããã³ããã®ããã«ãçµæãäºæž¬ãã«ãããªãããšã¯ãããŸãããã¹ãã«ã¯ãªãŒãã³ãœãŒã¹ã§ãä»åŸè¿œå ãããæ°ããã·ã¹ãã ããŒãã«ã«ã察å¿ããããèšèšãããŠããŸãã ãšãŒãžã§ã³ãã¯è³ªåã SQL ã«å€æã㊠Athena ã§å®è¡ããçããè¿ããŸããäŒè©±ãç¶ããŠçµæãçµã蟌ãã ããåŸåãã°ã©ãã«ããããã§ããŸãã ã³ã¹ãã®é
å: ãå
æã¹ãã£ã³ããããŒã¿éãæãå€ãã£ãã¯ãŒã¯ã°ã«ãŒãã¯ã©ãã§ããïŒå
ã
æãšæ¯ã¹ãŠã©ãã§ããïŒã ç£æ»ãšã³ã³ãã©ã€ã¢ã³ã¹: ãåååæã« customer_orders ããŒãã«ã«ã¢ã¯ã»ã¹ããã¯ãšãªããã¹ãŠãå®è¡ãããŠãŒã¶ãŒãšããããŠäžèЧã«ããŠãã ãããã éçšç¶æ³ã®ææ¡: ããŠãŒã¶ãŒã®æ§æãšã©ãŒãé€ããšãä»é±ã®æ¬çªã¯ãŒã¯ã°ã«ãŒãã®ãšã©ãŒçã¯ã©ã®ãããã§ããïŒã ãšãŒãžã§ã³ãã䜿ã IAM ã®èªèšŒæ
å ±ã¯ãæå°æš©éã«çµã£ãŠãã ãããAthenaãAWS Glueãã·ã¹ãã ããŒãã«ãžã®èªã¿åãå°çšã®ã¢ã¯ã»ã¹æš©ãããã°ååã§ãã質åããã ããªãæžãèŸŒã¿æš©éã¯å¿
èŠãããŸãããAWS MCP Server 㯠IAM ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ã䜿ãããã¹ãŠã® API åŒã³åºãã CloudTrail ã«èšé²ããã®ã§ããšãŒãžã§ã³ãããŠãŒã¶ãŒã«ä»£ãã£ãŠå®è¡ããæäœã®ç£æ»èšŒè·¡ããã¹ãŠæ®ããŸãã ã·ã¹ãã ããŒãã«ã§ã§ããã㚠以éã®ã»ã¯ã·ã§ã³ã§ã¯ãç¹ã«ãããããŠãŒã¹ã±ãŒã¹ããããããã®ä»£è¡šçãªã¯ãšãªãšããããŠç޹ä»ããŸããããã§ç޹ä»ããã¯ãšãªã¯åºçºç¹ã§ããããã«å®è¡ã§ããã¯ãšãªãããã«å€ãç¥ãããå Žåã¯ã Athena ã·ã¹ãã ããŒãã«åãã® Agent Skill ã®ã¯ãšãªäŸãåç
§ããããã¹ãã«ã䜿ã£ãŠãšãŒãžã§ã³ãã«ã¯ãšãªãæžãããŠãã ããã å©çšãã¿ãŒã³: Athena ã®äœ¿ããæ¹ãææ¡ãã ã·ã¹ãã ããŒãã«ã䜿ããšãçµç¹å
šäœã§ Athena ãã©ã䜿ãããŠãããã®å
šäœåãã€ãããŸããå©çšãã¿ãŒã³ã¯å€ãã®ããŒã ãæåã«èª¿ã¹ãé
ç®ã§ãã¯ãŒã¯ããŒããçè§£ããããã§ã®åºæºã«ãªããŸãã æ¥ããšã®ã¯ãšãªæ° ã¯ãšãªæ°ã®æšç§»ã远跡ããŸã (âdayâ ã âhourâ ã«çœ®ãæãããšãããŒã¯ã®æé垯ãããããŸã)ã SELECT DATE_TRUNC('day', submission_date_time) AS day, COUNT(*) AS query_count FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '30' DAY GROUP BY 1 ORDER BY 1 ã¯ãŒã¯ã°ã«ãŒãå¥ã®å©çšç¶æ³ã®æšç§» SELECT DATE_TRUNC('week', submission_date_time) AS week, work_group_name, COUNT(*) AS query_count, COUNT(DISTINCT principal_arn) AS distinct_users FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '90' DAY GROUP BY 1, 2 ORDER BY 1, 2 ã¯ãšãªãµã€ãºã®ååž SELECT CASE WHEN data_scanned_size = 0 THEN '0 bytes' WHEN data_scanned_size < 1048576 THEN '<1 MB' WHEN data_scanned_size < 10485760 THEN '1-10 MB' WHEN data_scanned_size < 104857600 THEN '10-100 MB' WHEN data_scanned_size < 1073741824 THEN '100 MB-1 GB' WHEN data_scanned_size < 10737418240 THEN '1-10 GB' WHEN data_scanned_size < 107374182400 THEN '10-100 GB' ELSE '>100 GB' END AS scan_bucket, COUNT(*) AS query_count, ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER (), 2) AS percent_of_query_count FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '30' DAY AND state_enum = 'SUCCEEDED' GROUP BY 1 ORDER BY MIN(data_scanned_size) ã³ã¹ãã®é
å: ããŒã ããŠãŒã¶ãŒããšã«è²»çšãå²ãåœãŠã ã¹ãã£ã³ããããŒã¿éã«å¿ããŠèª²éããã Athena ã®æéã¢ãã«ã§ã¯ãã¹ãã£ã³ãããã€ãæ°ããŠãŒã¶ãŒãã¯ãŒã¯ã°ã«ãŒãã«å²ãåœãŠãã°ããã®ãŸãŸã³ã¹ãã®é
åã«ãªããŸããã·ã¹ãã ããŒãã«ã䜿ãã°ãç¬èªã®èšæž¬ãã€ãã©ã€ã³ãç«ã¡äžããªããŠãããã£ãŒãžããã¯ãã·ã§ãŒããã¯ã®ã¬ããŒããäœæã§ããŸããã³ã¹ããèŠç©ããã«ã¯ããªãŒãžã§ã³ããšã® 1 TB ãããã®æé ã確èªãããã AWS Price List API ã§ææ°ã®æéãããã°ã©ã ããããŠã³ããŒãããŠãã ããã è«æ±æéäžã«ãŠãŒã¶ãŒãã¹ãã£ã³ããããŒã¿éã®åèš SELECT work_group_name, region_name, ROUND(SUM(data_scanned_size) / POWER(1024.0, 4), 3) AS total_tb_scanned, COUNT(*) AS query_count, ROUND(SUM(data_scanned_size) * 100.0 / SUM(SUM(data_scanned_size)) OVER (), 3) AS percent_of_total_tb_scanned FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '30' DAY AND state_enum = 'SUCCEEDED' GROUP BY 1, 2 ORDER BY 1, 2 work_group_name ã principal_arn ã«å€ãããšãåãã¬ããŒãããŠãŒã¶ãŒå¥ã«åããããŸãã ããã©ãŒãã³ã¹åæ: ããã©ãŒãã³ã¹ã®åé¡ãèŠã€ããŠè§£æ±ºãã ããã©ãŒãã³ã¹ã®åŸåãææ¡ããã°ãå£åãæ©æã«æããæãéèŠãªã¯ãšãªãæé©åã§ããŸãã éå» 7 æ¥éã§æãé
ãã¯ãšãªãèŠã€ãã SELECT query_execution_id, work_group_name, principal_arn, submission_date_time, total_execution_duration / 1000.0 AS execution_seconds, data_scanned_size / POWER(1024, 3) AS data_scanned_gb, SUBSTR(query_string, 1, 200) AS query_preview FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '7' DAY AND state_enum = 'SUCCEEDED' ORDER BY total_execution_duration DESC LIMIT 50 ã¯ãŒã¯ããŒãã®ããã©ãŒãã³ã¹åé¡ãæç³»åã§æ€åºãã ã¯ãŒã¯ã°ã«ãŒãå
ã®å®è¡æéã®éèšå€ãä»é±ãšå
é±ã§æ¯ã¹ããŠãŒã¶ãŒãæ°ã¥ãåé¡ã«ãªãåã«åŸåãã€ãã¿ãŸãã WITH weekly_stats AS ( SELECT work_group_name, IF(submission_date_time >= DATE_TRUNC('week', CURRENT_DATE), 'this_week', 'last_week') AS period, COUNT(*) AS query_count, AVG(total_execution_duration) AS avg_exec_ms, APPROX_PERCENTILE(total_execution_duration, 0.95) AS p95_exec_ms, SUM(data_scanned_size) AS total_bytes_scanned FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= DATE_TRUNC('week', CURRENT_DATE) - INTERVAL '7' DAY AND state_enum = 'SUCCEEDED' GROUP BY 1, 2 ) SELECT tw.work_group_name, lw.query_count AS last_week_queries, tw.query_count AS this_week_queries, lw.avg_exec_ms / 1000.0 AS last_week_avg_sec, tw.avg_exec_ms / 1000.0 AS this_week_avg_sec, ROUND((tw.avg_exec_ms - lw.avg_exec_ms) * 100.0 / lw.avg_exec_ms, 1) AS avg_pct_change, lw.p95_exec_ms / 1000.0 AS last_week_p95_sec, tw.p95_exec_ms / 1000.0 AS this_week_p95_sec FROM weekly_stats tw JOIN weekly_stats lw ON tw.work_group_name = lw.work_group_name WHERE tw.period = 'this_week' AND lw.period = 'last_week' ORDER BY avg_pct_change DESC ãã¥ãŒæéãåæããŠãã£ãã·ãã£ã®éŒè¿«åºŠãææ¡ãã SELECT work_group_name, DATE(submission_date_time) AS query_date, COUNT(*) AS query_count, AVG(query_queue_time_duration) / 1000.0 AS avg_queue_sec, APPROX_PERCENTILE(query_queue_time_duration, 0.50) / 1000.0 AS median_queue_sec, APPROX_PERCENTILE(query_queue_time_duration, 0.95) / 1000.0 AS p95_queue_sec, MAX(query_queue_time_duration) / 1000.0 AS max_queue_sec FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '14' DAY GROUP BY work_group_name, DATE(submission_date_time) HAVING AVG(query_queue_time_duration) > 1000 ORDER BY avg_queue_sec DESC ã¹ãã£ã³ããããŒã¿éã®å€ãã¯ãšãªãèŠã€ãã ã¹ãã£ã³ããããŒã¿éãæãå€ãã¯ãšãªãç¹å®ããŸããã¹ãã£ã³éã®å€ãã¯ãšãªã¯ã³ã¹ããæŒãäžããæå€§ã®èŠå ã§ãæé©å (ããŒãã£ã·ã§ãã³ã°ãè¿°èªã®ããã·ã¥ããŠã³ãããŒã¿åœ¢åŒã®å€æŽ) ã®ææååè£ã§ãã SELECT query_execution_id, work_group_name, principal_arn, submission_date_time, data_scanned_size / POWER(1024, 4) AS data_scanned_tb, total_execution_duration / 1000.0 AS execution_seconds, SUBSTR(query_string, 1, 300) AS query_preview FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '7' DAY AND state_enum = 'SUCCEEDED' ORDER BY data_scanned_size DESC LIMIT 50 ããã§ç޹ä»ããã¯ãšãªã䜿ãã°ããã©ãããã©ãŒã ããŒã 㯠Athena ãã²ãšã€ã®ãµãŒãã¹ãšããŠéçšã§ããŸãããµãŒãã¹ã¬ãã«ç®æš (SLO) ãå®ããåŸåãå¯èŠåããäœããå€ãã£ããšãã«ã¯æ©ãã«æ°ã¥ããŸãã ç£æ»ãšã³ã³ãã©ã€ã¢ã³ã¹: 誰ãããã€ãäœãå®è¡ããããææ¡ãã èŠå¶ãã»ãã¥ãªãã£ã®èŠä»¶ãããçµç¹ã§ã¯ãã·ã¹ãã ããŒãã«ããæ§é åãããã¯ãšãªå¯èœãªç£æ»èšŒè·¡ãšããŠäœ¿ããŸãã ç¹å®ã®ãŠãŒã¶ãŒãäžå®æéã«å®è¡ãããã¹ãŠã®ã¯ãšãª SELECT query_execution_id, work_group_name, submission_date_time, state_enum, total_execution_duration / 1000.0 AS execution_seconds, data_scanned_size / POWER(1024, 2) AS data_scanned_mb, SUBSTR(query_string, 1, 200) AS query_preview FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE principal_arn = 'arn:aws:iam::111122223333:user/example-user' -- Replace with target user AND submission_date_time >= CURRENT_DATE - INTERVAL '7' DAY ORDER BY submission_date_time DESC ç¹å®ã®ããŒãã«ã«ã¢ã¯ã»ã¹ããã¯ãšãª SELECT query_execution_id, work_group_name, principal_arn, submission_date_time, state_enum, ROUND(data_scanned_size / POWER(1024.0, 3), 3) AS data_scanned_gb, SUBSTR(query_string, 1, 200) AS query_preview FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" CROSS JOIN UNNEST(tables_accessed) AS t(tbl) WHERE tbl.database_name = 'my_database' -- Replace with target database AND tbl.table_name = 'my_table' -- Replace with target table AND submission_date_time >= CURRENT_DATE - INTERVAL '30' DAY ORDER BY submission_date_time DESC Athena ã¯ã·ã¹ãã ããŒãã«ã Iceberg ã®ããŒã¿ãšããŠã客æ§èªèº«ã®ã¢ã«ãŠã³ãã«ä¿åããã¬ã³ãŒããæžã蟌ããã®ã¯ Athena ãµãŒãã¹ã ãã§ãããã®ãããã·ã¹ãã ããŒãã«ã¯ç£æ»ã«äœ¿ããä¿¡é Œæ§ã®é«ãã¯ãšãªã¢ã¯ãã£ããã£ã®èšé²ã«ãªããŸããä¿ææéãã¢ã¯ã»ã¹ããªã·ãŒãæå·åã¯ã客æ§ã管çããŸãã éçšç£èŠ: ãšã©ãŒçãšã¯ãŒã¯ããŒãã®å¥å
šæ§ã远跡ãã ã·ã¹ãã ããŒãã«ã䜿ããšãCloudWatch ã®éèšã¡ããªã¯ã¹ã§ãããç¯å²ãè¶
ããŠãAthena ã¯ãŒã¯ããŒãã®éçšç¶æ³ãå¯èŠåã§ããŸããããŒã¿ã¯ã¯ãšãªåäœãªã®ã§ããŠãŒã¶ãŒã®æ§æãšã©ãŒãæ¥å¢ããã ãã®åé¡ã®ãªãã±ãŒã¹ãšã察åŠãå¿
èŠãªã·ã¹ãã ãšã©ãŒã®æ¥å¢ãšãåºå¥ã§ããŸããéèšã¡ããªã¯ã¹ã§ã¯äž¡è
ãèŠåããããŸããã ã¯ãŒã¯ã°ã«ãŒãå¥ã®ãšã©ãŒç WITH error_stats AS ( SELECT work_group_name, COUNT(*) AS total_queries, COUNT(*) FILTER (WHERE state_enum = 'FAILED' AND error_category_enum = 1) AS system_errors, COUNT(*) FILTER (WHERE state_enum = 'FAILED' AND error_category_enum = 2) AS user_errors FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '7' DAY GROUP BY work_group_name ) SELECT work_group_name, total_queries, system_errors, ROUND(system_errors * 100.0 / SUM(system_errors) OVER (), 1) AS percent_of_all_system_errors, user_errors, ROUND(user_errors * 100.0 / SUM(user_errors) OVER (), 1) AS percent_of_all_user_errors FROM error_stats æ¥å¢ã®åå ã調ã¹ãã«ã¯ã倱æããã¯ãšãªã error_category_enum ãš error_message ã§ã°ã«ãŒãåããã©ã®ãšã©ãŒãã©ãã«éäžããŠããããæ£ç¢ºã«ç¢ºèªããŸãã ãªãœãŒã¹ã䜿ãæãããã¯ãšãªãç¹å®ãã ãªãœãŒã¹ã䜿ãæãããã¯ãšãªã¯æé©åã®æååè£ã§ããããŒãã£ã·ã§ãã³ã°ã®æ¹åãã¯ãšãªã®æžãæãããã£ãã·ãã£ã®è¿œå ãå¹ãå¯èœæ§ããããŸãã SELECT query_execution_id, work_group_name, principal_arn, submission_date_time, error_message, ROUND(data_scanned_size / POWER(1024.0, 3)) AS data_scanned_gb, ROUND(total_execution_duration / 1000.0, 1) AS execution_seconds, SUBSTR(query_string, 1, 200) AS query_preview FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '7' DAY AND state_enum = 'FAILED' AND error_message LIKE 'Query exhausted resources%' ORDER BY data_scanned_size DESC ãã£ãã·ãã£äºçŽã®æé©å ãã£ãã·ãã£äºçŽ ã䜿ã£ãŠããå Žåã¯ãããããžã§ãã³ã°ãããã£ãã·ãã£ã®äœ¿ããæ¹ãã·ã¹ãã ããŒãã«ã§ç¢ºèªã§ããŸããAthena ã dpu_count åã«å€ãå
¥ããã®ã¯ããã£ãã·ãã£äºçŽã§å®è¡ããã¯ãšãªã ãã§ãããã®ããã dpu_count åã«ã¯ 2 ã€ã®åœ¹å²ããããäºçŽæžã¿ã®ãã£ãã·ãã£ã§å®è¡ããã¯ãšãªãã©ãããšãåã¯ãšãªãæ¶è²»ãã DPU æ°ã®äž¡æ¹ãããããŸããäºçŽãæ¶è²»ãã DPU æéã®æšç§»ã远ãã°ãäºçŽã®ãµã€ãºãé©åãã©ããã確èªã§ããŸãããŸããåè¿°ã®å®è¡æéãšãã¥ãŒæéã®ãã¿ãŒã³ããããªã³ããã³ãã®ã¯ãŒã¯ããŒãããã£ãã·ãã£äºçŽã«é©ããŠãããã©ããã倿ã§ããŸãã ãã£ãã·ãã£äºçŽã§å®è¡ããã¯ãšãªãæ¶è²»ããé±ããšã® DPU æé SELECT DATE_TRUNC('week', submission_date_time) AS week, COUNT(*) AS reservation_queries, ROUND(SUM(dpu_count * total_execution_duration / 3600000.0), 1) AS dpu_hours FROM "s3tablescatalog/aws-athena"."metadata"."query_executions" WHERE submission_date_time >= CURRENT_DATE - INTERVAL '90' DAY AND state_enum = 'SUCCEEDED' AND dpu_count > 0 -- populated only for capacity-reservation queries GROUP BY 1 ORDER BY 1 ã¢ãŒããã¯ãã£ãšããŒã¿ã¢ãã« Athena ã®ã·ã¹ãã ããŒãã«ã¯ãç¹å¥ãªçš®é¡ã® S3 ããŒãã«ãã±ããã䜿ããŸããéåžžã® S3 ããŒãã«ãã±ãããšåãããã«åäœããŸãããæžã蟌ããã®ã¯ AWS ã®ãµãŒãã¹ã ãã§ãããã®ãããããŒã¿ãææããã¡ãªãããåŸãªãããã¬ã³ãŒãã®å®å
šæ§ãä¿ãŠãŸãã ã客æ§ãããŒã¿ãææ â ããŒã¿ã¯ã客æ§ã®ã¢ã«ãŠã³ãå
ã«ãããã客æ§ã®ããŒã§æå·åãããã客æ§ã®ããªã·ãŒã§ç®¡çãããŸãã äžå€ã®ã¬ã³ãŒã â ã·ã¹ãã ããŒãã«ã«æžã蟌ããã®ã¯ Athena ã ãã§ããã客æ§ã®ã¢ã«ãŠã³ãå
ã®ã©ã® IAM ããªã³ã·ãã«ããåã
ã®ã¬ã³ãŒãã倿Žã»åé€ã§ããŸããã æšæºçãªåœ¢åŒ â AthenaãAmazon Redshiftã Amazon EMR ã Apache Spark ã Trino ãªã©ãIceberg äºæã®ãšã³ãžã³ã§ããã°ã©ãã§ãããŒã¿ãèªã¿åããŸãã èªåã¡ã³ããã³ã¹ â ã³ã³ãã¯ã·ã§ã³ãã¹ãããã·ã§ããã®ç®¡çãèšå®ããä¿ææéã«åºã¥ãããŒã¿ã®æå¹æéåãã®åŠç㯠S3 Tables ãè¡ããŸãã Athena ã¯ä¿ææéã®æ¢å®å€ãèšå®ããŸãããS3 Tables ã§ã¬ã³ãŒãã®æå¹æéãèšå®ãããŸã§ãã¬ã³ãŒãã¯ä¿æãããŸããæéã¯æç 1 æ¥ã§ãäžéã¯ãããŸãããããŒã¿ã¯å¹çããã¹ãã£ã³ã§ããããã«ããŒãã£ã·ã§ã³åå²ãããã¯ãšãªã®å®è¡ããŒã¿ã¯ãããã§å±ããŸããéåžžã¯ã¯ãšãªã®å®äºããæ°å以å
ã§ããããŒãã£ã·ã§ã³åã確èªããã«ã¯ã DESCRIBE ã¹ããŒãã¡ã³ãã䜿ããŸãã ãŸãšã Amazon Athena ã®ã·ã¹ãã ããŒãã«ã䜿ãã°ãç¬èªã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãçšæããªããŠããã¯ãšãªã¯ãŒã¯ããŒãã®ç¶æ³ãã¯ãšãªã§å¯èŠåã§ããŸããããŒã ãžã®ã³ã¹ãé
åãããã©ãŒãã³ã¹å£åã®èª¿æ»ãã³ã³ãã©ã€ã¢ã³ã¹ã®èšŒè·¡äœæãAthena ã®äœ¿ããæ¹ã®ææ¡ãšãç®çãäœã§ãã£ãŠããã¯ãšãª 1 æ¬ã§çããåŸãããããã«ãªããŸãããAthena ã¯ã·ã¹ãã ããŒãã«ã AWS Glue Data Catalog ã«ç»é²ãããªãŒãã³ãª Apache Iceberg 圢åŒã§ã客æ§èªèº«ã®ã¢ã«ãŠã³ãã«ä¿åããããã Amazon Quick Sight ãããžãã¹ã€ã³ããªãžã§ã³ã¹ (BI) ããŒã«ããçŽæ¥åç
§ã§ããŸãããããŸã§ããŒã ãä¿å®ããŠããç¬èªã®ãã€ãã©ã€ã³ã¯äžèŠã«ãªããŸãã ãŸã㯠Athena ã³ã³ãœãŒã«ããã·ã¹ãã ããŒãã«ãæå¹ã«ããŠãã ããã詳ããã¯ãAmazon Athena ãŠãŒã¶ãŒã¬ã€ãã®ã System Tables ããåç
§ããŠãã ããã èè
ã«ã€ã㊠Pathik Shah Pathik ã¯ãAmazon Web Services ã®ã·ãã¢ã¢ããªãã£ã¯ã¹ã¢ãŒããã¯ãã§ãã2015 幎㫠AWS ã«å
¥ç€ŸããŠä»¥æ¥ãããã°ããŒã¿åæãå°éãšããã客æ§ã AWS ã®åæãµãŒãã¹ã䜿ã£ãŠã¹ã±ãŒã©ãã«ã§å
ç¢ãªãœãªã¥ãŒã·ã§ã³ãæ§ç¯ã§ããããæ¯æŽããŠããŸãã Theo Tolv Theo ã¯ãã¹ãŠã§ãŒãã³ã®ã¹ããã¯ãã«ã ãæ ç¹ãšããããªã³ã·ãã«ã¢ããªãã£ã¯ã¹ã¢ãŒããã¯ãã§ãããã£ãªã¢ã®å€§åãéããŠèŠæš¡ã®å€§å°ãåããããŒã¿ã«æºããã2008 幎ãã AWS äžã§åãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠããŸãããäœæã«ã¯é»åå·¥äœãããããã¹ããŒã¹ãªãã©ãèªãã ãããŠéãããŠããŸãã Raza Hafeez Raza ã¯ãAmazon Redshift ã®ã·ãã¢ãã¯ãã«ã«ãããã¯ããããŒãžã£ãŒã§ãããšã³ã¿ãŒãã©ã€ãºããŒã¿ãŠã§ã¢ããŠã¹ã®æ§ç¯ãšæé©åã« 15 å¹Žä»¥äžæºãã£ãŠããŸãããããããèŠæš¡ã®ã客æ§ã«ãšã£ãŠãã¯ã©ãŠãã§ã®åæãæè»œã§è²»çšå¯Ÿå¹æã®é«ããã®ã«ããããšã«æ
ç±ã泚ãã§ããŸãã ãã®èšäºã¯ Kiro ã翻蚳ãæ
åœããSolutions Architect ã® Woosuk Choi ãã¬ãã¥ãŒããŸããã