AWS Athena เป็น Query service ที่เอาไว้ใช้ query ข้อมูลจากแหล่งต่างๆด้วยภาษา sql ช่วยให้เราดึงข้อมูลจำนวนมากได้ภายในเวลาที่ไม่นานและการ Athena เป็น serverless service ค่าใช้จ่ายจึงคิดตามจำนวนข้อมูลที่ดึงออกมาเท่านั้นโดยเริ่มที่ 5 USD ต่อ 1TB เท่านั้น
สิ่งที่เราต้องเตรียมพร้อมไว้ก่อนใช้งาน Athena คือ
Data source: ต้นทางของข้อมูลที่จะใช้งาน ไม่ว่าจะเป็น Glue Data Catalog, RDS หรือ DynamoDB เป็นตัน
Query result bucket: S3 bucket เอาไว้เก็บผลลัพธ์จากการ query
วิธีเข้าใช้งาน Athena ผ่าน AWS Console
Step 1: เข้าไปยัง Athena โดยการ Search หาได้เลย
Step 2: เมื่อเข้ามาที่ Athena และให้ทำการ Expand Navbar ด้านซ้ายมือ เราจะพบกับ feature ทั้งหมดของ Athena
ตามที่ได้เกริ่นไปในตอนต้น Athena เป็นเพียง Query service จำเป็นต้องมีต้นทางของข้อมูลให้มันใช้งาน เราจะพาทุกคนไปดูว่า Athena สามารถใช้งาน Data souces อะไรได้อีกบ้าง
Step 1: ใน Navbar ด้านซ้ายมือ ให้เข้าไปที่ Data sources
Step 2: เราจะเจอกับ AwsDataCatalog ถูกสร้างไว้เป็น Default หรือมันก็คือ Database ที่อยู่ใน Data Catalog ของ AWS Glue นั้นเอง
Step 3: ถ้าต้องการเพิ่ม Data source ที่มากจากที่อื่น ให้กดที่ Create data source
Step 4: เลือก data source ที่ต้องการ
Step 5: กด Next เพื่อไปขั้นตอนต่อไป
Step 6: ใส่ Configuration ที่จำเป็นให้ครบถ้วน
Step 7: กด Next
Step 8: ตรวจสอบความถูกต้องของการตั้งค่า จากนั้นกด Create data source เพื่อสร้าง Data source
Step 9: เมื่อกลับไปหน้า Data sources เราจะพบว่ามี data source ที่สร้างใหม่เพิ่มขึ้นมา
หัวข้อนี้เป็นการยกตัวอย่างให้เห็นถึงวิธีการเพิ่ม data source เข้ามาใช้งานใน Athena เพียงเบื้องต้นนะครับ ผมจึงไม่ได้ลงรายละเอียดในการสร้างซักเท่าไหร่ เพียงแค่อยากให้ทุกคนเห็นว่า Athena รองรับข้อมูลได้จากหลายแหล่งมากๆ ช่วยให้การทำงานกับข้อมูลนั้นง่ายมากขึ้นเยอะเลยทีเดียว
หนึ่งสิ่งที่จำเป็นมากๆก่อนจะทำการ query data ได้ก็คือ S3 bucket สำหรับเก็บ query result
Step 1: สร้าง S3 สำหรับเก็บ query result
Step 2: ใน Athena ให้เข้าไปที่ Query Editor หรือกด Launch query editor ก็ได้
Step 3: เมือเข้ามาที่หน้า query editor ให้เลือกที่ setting
Step 4: เลือกที่ Manage
Step 5: Browse S3 แล้วเลือก bucket ที่เราสร้างไว้
Step 6: กด Save
Step 7: ในหน้า Setting ตรง Query result location จะแสดงให้เห็น S3 Bucket ที่เราเลือก
เมื่อเรา setting ในส่วนของ query result location เรียบร้อย เราก็พร้อมที่จะใช้งาน Query Editor ได้แล้ว
Note: หัวข้อนี้เป็นภาคต่อของการใช้งาน Glue ดังนั้นผมแนะนำว่าให้เรียนในหัวข้อ What is Glue ให้จบก่อนค่อยเริ่มดูเนื้อหาต่อจากนี้นะครับ
Step 1: ใน Query Editor เลือกไปยัง Editor Tab
Step 2: เลือก Data source เป็น AwsDataCatalog
Step 3: เลือก Database เป็น customer_database
Step 4: ที่ Table customer_parquet ให้กดตรงจุด 3 จุด
Step 5: เลือก Preview Table เพื่อ Query ข้อมูลจาก Table ขึ้นมาแสดง
Step 6: ทดลองเปลี่ยน query โดยเราจะ query เฉพาะ age ที่น้อยกว่า 30
Step 7: เมื่อแก้ไข query เสร็จแล้วให้กด Run again
Athena เป็น service ที่ทรงพลังและการเริ่มต้นใช้งานก็ง่ายมากๆ แถมราคายังถูกมากอีกด้วยเมื่อเทียบกับ service อื่นๆที่คล้ายกัน เพียงแค่ไม่กี่ขั้นตอนก็สามารถเชื่อมต่อไป service ต่างๆที่อยู่ใน AWS ได้อย่างง่ายดาย หรือแม้แต่ service ที่ไม่ได้อยู่ใน AWS ก็ตาม และในการ Query โดยใช้ภาษา SQL ก็ช่วยให้การค้นหาข้อมูลนั้นง่ายขึ้น ลดความซับซ้อนในการเรียนรู้ภาษาอื่นเพิ่มเติมอีกด้วย และทั้งหมดนี้เป็นการใช้งานผ่าน web console ล้วนๆ รวมถึงเป็น serverless ทั้งหมด หมดปัญหาที่ต้อง provision เครื่อง server ขึ้นมาใช้งาน
-------- Data Engineer Course ----------
เริ่มต้นใช้งาน AWS Athena -> https://www.vultureprime.com/how-to/what-is-aws-athena
เริ่มต้นใช้งาน AWS Quicksight -> https://www.vultureprime.com/how-to/what-is-aws-quicksight
การคำนวนค่าใช้จ่ายของ Data Pipeline - Basic Level -> https://www.vultureprime.com/how-to/how-to-calcualte-etl-cost-basic-level