S3 metadata สิ่งที่เพิ่มเข้ามาบน AWS ทำอะไรได้

AWS S3 metadata คือ?
เป็นการจัดเก็บ Metadata ของ object ที่อยู่ใน S3 ให้อยู่ในรูปแบบ Apache iceberg tables แบบอัตโนมัติ, ทำให้เราสามารถเอาไปใช้กับ service อื่นๆ ใน AWS ได้ เช่น
- Amazon Athena
- Amazon Redshift
- Amazon QuickSight
- Apache Spark
เพราะถ้าโดยปรกติแล้ว เวลาเราทำการ Upload object ไปที่ S3 เวลาที่เราอยากจะค้นหาอะไร ต้องเข้าไปทีละ Folder หรือจะต้องเขียน Code เพื่อที่จะหาว่าไฟล์อยู่ที่ไหน ขนาดยังไง เป็นรื่องที่น่าปวดหัวโดยแท้ โดยเฉพาะคนที่ Code ไม่เป็น

S3 Metadata จึงถูกสร้างมาเพื่อทำให้การดู Metadata ของ object ได้ง่ายยิ่งขึ้นไปอีก เช่นเราสามารถใช้ SQL ทำการดูข้อมูล metadata ผ่าน AWS Athena ได้เลย, ตัวอย่าง Column ที่เราจะได้เห็นใน Metadata table
- Bucket Name and Object Key
- Creation/Modification Time
- Storage Class
- Encryption Details
- Object Tags
- User Metadata
Usecase ที่น่าสนใจ
ตัวอย่างที่น่าสนใจในการเอาไปใช้ ก็เช่นการ
- Optimize เรื่องค่าใช้จ่ายบน S3
- Track ไฟล์ต่างๆบน S3
- จัดการไฟล์เพื่อนำไปใช้กับงาน AI ML

Hand-on มาดูการใช้งานกันดีกว่าจะได้เข้าใจเพิ่มขึ้น
Prerequisite service:
- S3 Tables
- AWS Athena
จากข้างต้นเลยสิ่งที่เราต้องมีนั้นแค่สร้าง S3 tables และเข้าใจการใช้งาน AWS Athena, ไม่ยากเลยทำตามได้ง่ายๆครับ
S3 Tables:
เริ่มโดยการสร้าง S3 Tables Bucket กันก่อน ถ้าใครไม่รู้ว่า S3 Tables คืออะไรแนะนำไปอ่านที่ (S3Tables คืออะไร) ทำผ่าน AWS console ได้ตามนี้
aws s3tables create-table-bucket --name my-metadata-bucket --region us-east-1
เสร็จแล้วเราจะได้ S3 Tables ไว้ใช้งานละ

S3 Metadata
สิ่งที่เราจะทำถัดมาก็คือการเปิดการใช้งาน S3 Metadata โดยเราจะต้องไปที่ S3 แล้วเลือก Bucket ที่เราต้องการเก็บ Metadata โดยจะทำได้ทั้งสองทางก็คือ 1. AWS CLI 2.หน้า Console แต่เราจะมาทำผ่านหน้า Console กัน ไปที่หน้า S3 แล้วก็กดไปที่ Bucket ที่เราต้องการ
เราจะเห็นว่าจะมี Metadata อยู่ให้กดเข้าไปได้เลย


แล้วต่อมาก็กดไปที่ Create metadata เลือก S3 Tables ที่ต้องการเก็บข้อมูลและก็ตั้งชื่อ Table เป็นอันเสร็จสิ้น


เพียงเท่านี้เราก็ได้ S3 Metadata มาใช้แล้ว ง่ายใช่ไหมครับ ที่เหลือก็รอเวลาในการ Provision table แล้วเราก็จะได้ไปทำการ query ข้อมูลได้ที่ Athena
ไปกันที่ AWS Athena แล้วมาดูกัน Query อะไรบ้าง
แต่ก่อนอื่นถ้าติดปัญหาเรื่องการ Query แล้วไม่มีข้อมูลหรือ Error ให้ไป Check ดูว่าเราได้ Grant สิทธิ์ตัวเราใน AWS Lake formation หรือเปล่า เพราะ Metadata จะถูกดูแลโดย Lake formation

เรียบร้อยแล้วเราก็จะได้เห็นแล้วว่ามีไฟล์อะไรบ้างแล้ว เท่านี้เราก็จะได้เห็นแล้วว่าเรามีไฟล์อะไรบ้างเข้ามาตอนไหนยังไง
สรุปง่ายๆ ก็คือตัดปัญหาเรื่องการดู Metadata ที่ต้องทำผ่าน Programming มา Query ดูให้ง่ายขึ้นนั้นเอง
หวังว่าบทความนี้จะเป็นประโยชน์นะครับ
Leave a comment