วิธีใช้าน Glue Data Partition (Part 1)

Partitioning เป็นอีกหนึ่งวิธีที่สำคัญที่ใช้จัดการ dataset ให้ใช้งานได้งานขึ้น เมื่อมีการ Query ข้อมูล ทั้งเป็นตัวช่วยให้ปริมาณ data ที่ถูก query ลดลง มีความเร็วเพิ่มขึ้น และยังประหยัดค่าใช้จ่าย

การทำ Partition

อธิบายให้ง่ายที่สุดก็คือการจัดการโครงสร้างการเก็บข้อมูลตั้งแต่ระดับของ Directory ในการจัดเก็บไฟล์ ตามลำดับขึ้นที่เราสามารถแยกออกจากกันได้

ตัวอย่างการทำ partition แบบง่ายๆ

หากเรามี file ข้อมูลการขายสินค้าในแต่ละวันที่ export ข้อมูลทุกชั่วโมงออกมาเป็น csv และทำการเก็บลง S3 โดยต้องการทำ partition วิธีการทำแบบง่ายๆ ก็คือการแบ่ง folder ในการจัดเก็บให้เป็นลำดับตั้งแต่ ปี,เดือน,วัน สำหรับการจัดเก็บ raw file

ดังนั้นรูปแบบ folder และการวางไฟล์จะเป็นแบบนี้

s3://daily_order/year=2023/month=08/day=30/001.csv

s3://daily_order/year=2023/month=08/day=30/002.csv

s3://daily_order/year=2023/month=08/day=30/003.csv

s3://daily_order/year=2023/month=08/day=31/001.csv

s3://daily_order/year=2023/month=08/day=31/002.csv

s3://daily_order/year=2023/month=09/day=01/001.csv

s3://daily_order/year=2023/month=09/day=01/002.csv

partition ที่ได้จะถูกแบ่งออกเป็น

partition_0 = year

partition_1 = month

partition_2 = day

ทดลองสร้าง Glue table

จาก structure ที่เราได้ออกแบบไว้เราจะทำการ upload ไฟล์ขึ้นไปเพื่อทดลอง crawler data

Step 1: Create folder ใน S3

Step 2: Upload file ไปยัง S3

Step 3: สร้าง Database และ Table ใน Data Catalog


Step 4: เช็ค Table ที่ได้จากการ Crawler ตรง Schema จะเห็นว่า folder ที่เราได้แบ่งไว้ในตอนต้นจะถูกนำมาใช้เป็น Partition key

Step 5: เข้าไปที่ Tab Partition เราจะเห็นว่า file จะถูกแยกเก็บตาม partition ที่สามารถเปิดเข้าไปดูเฉพาะ partition ที่ต้องการได้

Summary

ในการทำ partition data นอกจากจะทำให้ข้อมูลเป็นระเบียบและจัดการได้ง่ายแล้ว มันยังช่วยให้การ query ข้อมูลนั้นทำได้เร็วและประหยัดค่าใช้จ่ายได้ไปอย่างมากอีกด้วย ตัวอย่างเช่นถ้าเราต้องการข้อมูลของเดือนสิงหาคมเราสามารถเลือกที่จะ query ข้อมูลเฉพาะ partition นั้นได้ โดยไม่ต้อง query ข้อมูลทั้งหมดแล้ว filter เอาแค่ข้อมูลของเดือนสิงหาคมเป็นต้น ซึ่งในหัวข้อนี้เป็นเพียงการแนะนำให้เพื่อนๆได้รู้จักการทำ partition และเป็นจุดเริ่มต้นให้ทุกคนได้นำไปใช้งานกันต่อในการทำงานจริง

Aa

© 2023, All Rights Reserved, VulturePrime co., ltd.