Skip to main content

Amazon Athena

Amazon Athena เป็นบริการ Serverless Query Service ที่ออกแบบมาเพื่อช่วยวิเคราะห์ข้อมูลที่จัดเก็บอยู่ใน Amazon S3 โดยสามารถใช้ ภาษา SQL มาตรฐาน ในการ query ไฟล์ที่อยู่บน S3 ได้โดยตรง โดยไม่จำเป็นต้องย้ายข้อมูลออกมา

Athena สร้างขึ้นบน Presto Engine ซึ่งรองรับการ query ด้วย SQL

ผู้ใช้งานเพียงแค่เก็บข้อมูลไว้ใน S3 bucket แล้วใช้ Athena เพื่อ query และวิเคราะห์ข้อมูลนั้นได้ทันที โดยไม่ต้องจัดการหรือดูแลโครงสร้างพื้นฐานของฐานข้อมูลใด ๆ เนื่องจากเป็น Serverless

An image

รูปแบบข้อมูลที่รองรับและการคิดราคา​

  • Athena รองรับหลายรูปแบบไฟล์ เช่น CSV, JSON, ORC, Avro, Parquet
  • การคิดราคาเป็นแบบง่าย ๆ: จ่ายตามปริมาณข้อมูลที่ถูกสแกน (ต่อ TB)
  • เนื่องจากเป็น Serverless จึง ไม่ต้อง provision ฐานข้อมูลเอง

การทำงานร่วมกับ Amazon QuickSight​

Athena มักถูกใช้งานร่วมกับ Amazon QuickSight เพื่อสร้าง รายงานและ Dashboard QuickSight จะเชื่อมต่อกับ Athena และ Athena จะ query ข้อมูลที่เก็บอยู่ใน S3 จากนั้น QuickSight แสดงผลออกมาในรูปแบบ Visualization

กรณีใช้งานของ Amazon Athena​

  • การทำ ad hoc queries

  • Business Intelligence (BI)

  • Analytics และ Reporting

  • การวิเคราะห์ Logs ที่สร้างโดย AWS services เช่น

    • VPC Flow Logs
    • Load Balancer Logs
    • CloudTrail Trails

เคล็ดลับสำหรับการสอบ (Exam Tip)​

เมื่อใดก็ตามที่ต้องการ วิเคราะห์ข้อมูลที่เก็บใน Amazon S3 ด้วย SQL และไม่ต้องการดูแลเซิร์ฟเวอร์ → คำตอบคือ Amazon Athena

การปรับปรุงประสิทธิภาพของ Amazon Athena​

  • การคิดค่าบริการขึ้นอยู่กับ ขนาดข้อมูลที่ถูกสแกน

  • เทคนิคการลดปริมาณข้อมูลที่ต้องสแกน (ช่วยลดทั้งค่าใช้จ่ายและเวลา):

    • ใช้ Columnar Data Formats → สแกนเฉพาะคอลัมน์ที่ต้องการ
    • แนะนำให้ใช้ Apache Parquet และ ORC เนื่องจากช่วยเพิ่มประสิทธิภาพสูงสุด
    • ใช้ AWS Glue ในการทำ ETL เพื่อแปลงไฟล์เช่น CSV → Parquet
    • บีบอัดข้อมูล (Compression) เพื่อลดปริมาณข้อมูลและเพิ่มความเร็วในการอ่าน
    • Partition ข้อมูล → จัดโครงสร้างข้อมูลใน S3 เป็นโฟลเดอร์ตามคอลัมน์ เช่น year=1991/month=1/day=1 → เวลา query เฉพาะวัน/เดือน/ปี จะสแกนเฉพาะ partition ที่เกี่ยวข้อง
    • ใช้ ไฟล์ใหญ่แทนไฟล์เล็กจำนวนมาก (เช่น 128 MB ขึ้นไป) → ทำให้สแกนเร็วขึ้นและมีประสิทธิภาพ

Federated Query​

Athena ไม่ได้ query ได้เฉพาะข้อมูลใน S3 เท่านั้น แต่ยังสามารถ query ข้าม หลายแหล่งข้อมูล (data sources) ได้ เช่น:

  • AWS services: CloudWatch Logs, DynamoDB, RDS, Redshift, Aurora
  • ฐานข้อมูลภายนอก: SQL Server, MySQL, DocumentDB, HBase on EMR
  • ระบบ On-premises

Athena ใช้ Data Source Connectors (Lambda Functions) เพื่อเชื่อมต่อและทำ federated queries ข้ามระบบเหล่านี้ และผลลัพธ์สามารถเก็บกลับไปที่ Amazon S3 ได้

An image

สรุป​

Amazon Athena เป็นบริการ Serverless Query Service ที่ช่วยให้ query และวิเคราะห์ข้อมูลใน S3 ได้อย่างมีประสิทธิภาพ รวมถึง query ข้ามระบบผ่าน Federated Query ได้ด้วย

Key Takeaways​

  • Athena เป็น Serverless SQL Query Service สำหรับการวิเคราะห์ข้อมูลใน Amazon S3
  • รองรับไฟล์หลายประเภท เช่น CSV, JSON, ORC, Avro, Parquet (แนะนำ Parquet / ORC เพื่อประสิทธิภาพและลดค่าใช้จ่าย)
  • การเพิ่มประสิทธิภาพ: ใช้ Columnar Format, Compression, Partitioning, และไฟล์ขนาดใหญ่
  • รองรับ Federated Query ผ่าน Lambda connectors → query ได้ทั้ง AWS และฐานข้อมูล On-premises