Multi-tenancy บน PostgreSQL

 

Multi-tenancyบน PostgreSQL

โดยทั่วไป การออกแบบฐานข้อมูลที่เรียนรู้กัน มักเริ่มจากวิเคราะห์ความต้องการของผู้ใช้นำมาออกแบบฐานข้อมูล โดยจัดแบ่งข้อมูลออกเป็นตาราง ใช้หลักการ Normailizationในการวิเคราะห์โครงสร้างของแต่ละตาราง เพื่อป้องกันการซ้ำซ้อนของข้อมูล ซึ่งโดยเบื้องต้นมักจบกันที่ตรงที่การออกแบบเชิงเดี่ยวเช่นนี้

เมื่อความต้องการในการใช้งานข้อมูลในองค์กรมีความหลากหลายมากขึ้น การบริหารจัดการข้อมูลด้วยระบบฐานข้อมูลก็มีความซับซ้อนมากขึ้นตามกันไป การออกแบบฐานข้อมูลเชิงเดี่ยวดังกล่าวมักไม่เพียงพอต่อความต้องการ

การบริหารจัดการข้อมูลในระบบฐานข้อมูล สามารถแบ่งออกเป็น 4 แบบหลัก ได้แก่

1.      จัดแบ่งข้อมูลในตาราง จัดเก็บแยกตาม schema ใน database เดียวกันทำงานภายใต้ PostgreSQL instance เดียว

2.      จัดเก็บข้อมูลแยกกันบนหลาย databaseทำงานภายใต้ PostgreSQL Instance เดียว

3.      PostgreSQL instancesหลายตัว ทำงานบน virtual/physical system เดียว

4.      PostgreSQL instancesหลายตัว ทำงานต่าง virtual machines บน physical server เดียว   

แบบที่ 1 ใช้กับกรณีต้องการแบ่งแยกการใช้งานข้อมูลตามกลุ่มของผู้ใช้งาน การใช้งานมักใช้งานบนระบบงานเดียวกัน แต่ต้องการแยกข้อมูลออกเป็นกลุ่มต่างๆชัดเจนตามกลุ่มผู้ใช้งาน แต่ละกลุ่มมีข้อมูลเป็นของตนเองไม่เกี่ยวข้องกัน และขอเรียกระบบรูปแบบนี้ว่า Multi SchemaSingleDatabase

แบบที่ 2 ใช้กับข้อมูลที่ต้องการแบ่งการจัดการข้อมูลอย่างชัดเจน การแยกข้อมูลอยู่ต่างฐานข้อมูลกันนั้น ทำให้ผู้ใช้งานไม่สามารถมองเห็นข้อมูลเหล่านั้น ภายในระบบงานเดียวกันได้ เช่น ผู้ใช้งานไม่สามารถใช้ SQL Command ในการสืบค้นข้อมูลจากตารางต่างๆจากอยู่แยกฐานข้อมูลข้อมูลกัน และขอเรียกระบบรูปแบบนี้ว่า Multi DatabasesSingleInstance

แบบที่ 3 ใช้ในกรณีต้องการให้ server เดียวมี PostgreSQL หลายinstances ทำงานร่วมกัน เพื่อใช้ทรัพยากร บน server ร่วมกัน และขอเรียกระบบรูปแบบนี้ว่า Multi Instances SingleServer

แบบที่ 4 ใช้ในกรณีเรามี Physical server ขนาดใหญ่ที่ต้องการแบ่งใช้ทรัพยากรที่มีอยู่ ออกเป็น Multiple serversและแต่ละ server สามารถมี PostgreSQL หลาย instances ทำงานร่วมกันด้วย ขอเรียกระบบรูปแบบนี้ว่า Multi Instances Multi Servers

โดยทั่วไป เราคุ้นเคยกับใช้งานในแบบที่ 2 เป็นปรกติอยู่แล้ว ในหัวข้อนี้ เราจะอธิบายรายละเอียดในแบบที่ 1และ 3 ส่วน ส่วนแบบที่ 4 นั้น เป็นการสร้าง Virtual-Machine Servers (VM Server) บน Physical Serverและติดตั้ง PostgreSQL instances บนแต่ละ VMServer การติดตั้ง VMServer อยู่นอกเหนือขอบเขตของหัวข้อนี้

 

คราวหน้าเราจะมาดูรายละเอียดเกี่ยวกับแบบที่ 1 และ 3 กัน

บริษัท แอฟฟิกซ์ เทคโนโลยี จำกัด

32/144 ถ.สุขุมวิท

ต.ปากน้ำ อ.เมืองสมุทรปราการ

จ.สมุทรปราการ

Tel: (662)-332-2794-6
Email : This email address is being protected from spambots. You need JavaScript enabled to view it.
Web : www.affix.co.th

ข่าวล่าสุด (Latest News)

© 2018 Affix Technology. All Rights Reserved. Designed By JoomShaper

search