ในการสร้าง Table ขึ้นมาใช้งานใน Azure Synapse Analytic นั้น เราสามารถใช้ประโยชน์จาก Compute Node ที่สร้างขึ้นมาใช้งานในการ “จัดการ” การจัดเก็บข้อมูลในรูปแบบต่างๆ ได้
ในที่นี้จะมาอธิบายการเลือกใช้การกระจายข้อมูลในการจัดเก็บแบบ Round_Robin ครับ
ระบบประมวลผลใน Azure Synapse Analytics เหมือนทีมนักฟุตบอล
- ก่อนอื่นสำหรับคนที่อาจจะไม่รู้ เราสามารถกำหนด “จำนวน” ของระบบจัดการข้อมูลภายใน Synapse Analytics ได้
- เหมือนเราเลือกเช่าเครื่องคอมที่มี Harddisk กี่ตัว หรือการ์ดจอกี่ใบก็ได้ ระบุได้ตามความต้องการ
- เราเรียกกลุ่มของระบบพวกนี้รวมๆ ว่า SQL Pool
- สมาชิกที่อยู่ใน Pool เรียกว่า Compute Node ลองมองว่าเป็นนักฟุตบอลที่มารวมตัวกันเป็นทีมก็ได้
อ่ะพร้อมแล้วก็ไปต่อ
การกำหนด Distribution แบบ Round Robin ให้ Table
ในการสร้าง Table ในการจัดเก็บข้อมูล เราสามารถกำหนดลักษณะการกระจายข้อมูลไปเก็บไว้ใน compute node ต่างๆ แบบ round_robin ได้ดังนี้
CREATE TABLE my_table (
id INT PRIMARY KEY,
name VARCHAR(255),
value FLOAT
) WITH (DISTRIBUTION = ROUND_ROBIN); <--- สำคัญตรงนี้แหละ
ลักษณะการทำงาน
- Round robin คือการบอกว่าข้อมูลที่อยู่ใน table นี้จะกระจายไปอยู่บน compute node ที่อยู่ใน SQL Pool จำนวนเท่าๆ กัน
ใช้เมื่อไหร่ดี
- ใช้เมื่อประเมินแล้วว่า ไม่มี column ไหนในชุดข้อมูลเหมาะที่จะใช้เป็น distribution key
- เหมาะกับ table ที่ไม่ถูก query หนักๆ เพราะเนื่องจากข้อมูลกระจายไปอยู่บน node ทั้งหมด จำนวนเท่าๆ กัน การ query จะมีการใช้งาน node ทั้งหมดนั้นด้วย