10 April 2010

Partitioning Strategy

ข้อคำนึงในการเลือกใช้ partition
  1. ถ้าต้องการจัดกลุ่มข้อมูล (grouping data) เช่น Join, Merge หรือ Remove duplicate ให้ใช้ HASH partitioning
  2. ถ้า key ที่ใช้แบ่ง partition มีแค่ 1 column และเป็น integer ให้ใช้ MODULUS partitioning
  3. กรณีที่การกระจายของข้อมูลมั่วซั่วไปหมด ใช้ hash แล้วไม่สามารถ balance มันได้ ให้ใช้ RANGE partitioning
  4. ถ้าไม่มีการจัดกลุ่มข้อมูล (grouping data) ให้ใช้ ROUND ROBIN เพราะ overhead น้อยสุด
  5. ให้มีการ re-partition น้อยที่สุดเท่าที่จะทำได้
  6. ใช้ SAME ให้เยอะที่สุดเท่าที่จะเป็นไปได้ เพราะฉะนั้นต้องออกแบบ job ดีดี
  7. การรับส่งไฟล์ระหว่าง job ให้ใช้ dataset เพราะยังคง partition อยู่

No comments: