Apache Cassandra คืออะไร และวิธีติดตั้งบน Cloud Server
Apache Cassandra คือฐานข้อมูลกระจายศูนย์ที่ทุกโหนดมีสถานะเท่ากัน จึงไม่มีจุดล้มเหลวจุดเดียวและขยายด้วยการเพิ่มเครื่องได้เกือบเป็นเส้นตรง เหมาะกับข้อมูลปริมาณมหาศาลที่ต้องเขียนตลอดเวลา
- หมวดหมู่
- ฐานข้อมูล
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 4 vCPU · RAM 8 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Apache Cassandra คืออะไร
ฐานข้อมูลทั่วไปมีเครื่องหลักที่รับการเขียน เมื่อเครื่องนั้นมีปัญหาระบบจะเขียนไม่ได้จนกว่าจะสลับเครื่องสำเร็จ Cassandra ออกแบบต่างออกไปโดยให้ทุกโหนดรับการเขียนได้เท่ากัน ระบบจึงยังทำงานต่อได้แม้บางโหนดล่ม
การขยายทำได้ด้วยการเพิ่มเครื่องเข้าคลัสเตอร์ ซึ่งเพิ่มทั้งความจุและความสามารถในการรับงานไปพร้อมกัน ต่างจากการต้องเปลี่ยนไปใช้เครื่องใหญ่ขึ้นเรื่อย ๆ
สิ่งที่ต้องยอมรับคือรูปแบบการออกแบบข้อมูลที่ต่างจากฐานข้อมูลตาราง เพราะต้องออกแบบตารางตามคำถามที่จะถาม ไม่ใช่ตามโครงสร้างข้อมูล และไม่มีการ Join จึงต้องเก็บข้อมูลซ้ำในหลายตารางโดยตั้งใจ
ความสามารถเด่นของ Apache Cassandra
ไม่มีจุดล้มเหลวจุดเดียว
ทุกโหนดมีสถานะเท่ากัน ระบบยังรับงานต่อได้แม้บางโหนดล่ม
ขยายด้วยการเพิ่มเครื่อง
ความจุและกำลังรับงานเพิ่มขึ้นเกือบเป็นเส้นตรงตามจำนวนโหนด
รองรับการเขียนปริมาณสูงมาก
เหมาะกับข้อมูลเหตุการณ์และข้อมูลจากอุปกรณ์ที่ไหลเข้าตลอดเวลา
กระจายข้ามศูนย์ข้อมูลได้
วางโหนดไว้หลายไซต์เพื่อรองรับเหตุระดับสถานที่
ปรับระดับความสอดคล้องได้
เลือกได้ว่าจะให้ยืนยันการเขียนจากกี่โหนด เพื่อสมดุลระหว่างความเร็วกับความแน่นอน
ใช้ Apache Cassandra ทำอะไรได้บ้าง
- ระบบเก็บข้อมูลเหตุการณ์ปริมาณมหาศาลที่เขียนตลอดเวลา
- ข้อมูลจากอุปกรณ์ IoT จำนวนมากที่ต้องไม่สูญหาย
- ระบบที่ต้องกระจายข้อมูลข้ามหลายศูนย์ข้อมูล
- บริการที่ต้องรับการเขียนต่อเนื่องแม้บางเครื่องมีปัญหา
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| ทดสอบคลัสเตอร์ทดลองหรือโหนดเดียวเพื่อเรียนรู้ | 4 vCPU | 8 GB | NVMe 100 GB |
| แนะนำคลัสเตอร์สามโหนดสำหรับงานจริง | 8 vCPU ต่อโหนด | 32 GB ต่อโหนด | NVMe 1 TB ต่อโหนด |
| ข้อมูลมหาศาลคลัสเตอร์หลายโหนดข้ามศูนย์ข้อมูล | 16 vCPU ขึ้นไปต่อโหนด | 64 GB ขึ้นไปต่อโหนด | NVMe หลาย TB ต่อโหนด |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Apache Cassandra บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Java Runtime ตามที่ Cassandra รุ่นนั้นกำหนด
- อย่างน้อยสามโหนดสำหรับงานจริง เพื่อให้ทำสำเนาข้อมูลได้
- ดิสก์ NVMe และเครือข่ายภายในที่หน่วงต่ำระหว่างโหนด
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Java และ Cassandra บนทุกโหนด
sudo apt update sudo apt -y install openjdk-17-jre-headless curl -fsSL https://downloads.apache.org/cassandra/KEYS | sudo gpg --dearmor -o /usr/share/keyrings/cassandra.gpg echo "deb [signed-by=/usr/share/keyrings/cassandra.gpg] https://debian.cassandra.apache.org 50x main" | sudo tee /etc/apt/sources.list.d/cassandra.list sudo apt update && sudo apt -y install cassandra - 2
ตั้งค่าคลัสเตอร์ใน /etc/cassandra/cassandra.yaml
ตั้งชื่อคลัสเตอร์ให้ตรงกันทุกโหนด และระบุโหนดที่ใช้เป็นจุดเริ่มต้นการค้นหาสมาชิก
cluster_name: 'tdc-cluster' listen_address: 10.10.0.31 rpc_address: 10.10.0.31 seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.10.0.31,10.10.0.32" - 3
เริ่มบริการและตรวจสถานะคลัสเตอร์
sudo systemctl enable --now cassandra nodetool status - 4
สร้าง Keyspace พร้อมกำหนดจำนวนสำเนา
จำนวนสำเนาคือสิ่งที่กำหนดว่าข้อมูลจะยังอยู่เมื่อโหนดล่มกี่เครื่อง ปกติใช้สามสำหรับคลัสเตอร์สามโหนดขึ้นไป
CREATE KEYSPACE events WITH replication = {'class':'SimpleStrategy','replication_factor':3}; - 5
ออกแบบตารางตามคำถามที่จะถาม
Cassandra ไม่มีการ Join จึงต้องออกแบบตารางให้ตอบคำถามหลักได้ในการอ่านครั้งเดียว และยอมเก็บข้อมูลซ้ำในหลายตารางเมื่อมีหลายคำถาม
- 6
ตั้งงานบำรุงรักษาตามรอบ
ตั้งงาน repair ตามรอบเพื่อให้สำเนาข้อมูลในทุกโหนดตรงกัน ซึ่งเป็นงานที่จำเป็นและมักถูกลืมในคลัสเตอร์ที่ใช้งานจริง
nodetool repair -pr
อย่ารันคลัสเตอร์จริงด้วยโหนดเดียว เพราะข้อดีทั้งหมดของ Cassandra มาจากการมีหลายโหนด และคลัสเตอร์โหนดเดียวมีความเสี่ยงมากกว่าฐานข้อมูลทั่วไปด้วยซ้ำ
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 9042 | TCP | การเชื่อมต่อของแอป (เปิดเฉพาะวงภายใน) |
| 7000 | TCP | การสื่อสารระหว่างโหนดในคลัสเตอร์ |
| 7199 | TCP | การจัดการและเฝ้าระวัง |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- เปิดการยืนยันตัวตนและสร้างผู้ใช้แยกต่อแอป
- ไม่เปิดพอร์ตของคลัสเตอร์ออกสู่อินเทอร์เน็ต
- เปิด TLS สำหรับการสื่อสารระหว่างโหนดเมื่อข้ามเครือข่ายที่ไม่น่าเชื่อถือ
- ตั้งงาน repair ตามรอบและเฝ้าระวังพื้นที่ดิสก์ของทุกโหนด
ทำไมควรรัน Apache Cassandra บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
สร้างโหนดเพิ่มบน Cloud Server ได้ในไม่กี่นาทีเมื่อข้อมูลหรือทราฟฟิกโต
ทราฟฟิกระหว่างโหนดวิ่งในวง Private Network ในไทย จึงเร็วและไม่มีค่าใช้จ่ายภายใน
กระจายโหนดข้าม Data Center ในไทยและสิงคโปร์เพื่อรองรับเหตุระดับไซต์
คำถามที่พบบ่อยเกี่ยวกับ Apache Cassandra
Cassandra เหมาะกับงานแบบไหน
เหมาะกับข้อมูลที่เขียนตลอดเวลาในปริมาณมหาศาลและต้องไม่หยุดรับงาน เช่น ข้อมูลเหตุการณ์และข้อมูลจากอุปกรณ์ ไม่เหมาะกับงานที่ต้องการ Join หลายตารางหรือรายงานเชิงวิเคราะห์ซับซ้อน
ต้องใช้กี่โหนด
อย่างน้อยสามโหนดสำหรับงานจริง เพื่อให้เก็บสำเนาข้อมูลได้สามชุดและยังทำงานต่อได้เมื่อโหนดหนึ่งล่มหรือปิดปรับปรุง
ต่างจาก MongoDB อย่างไร
MongoDB มีโหนดหลักที่รับการเขียนและเหมาะกับข้อมูลเอกสารที่โครงสร้างยืดหยุ่น ส่วน Cassandra ให้ทุกโหนดรับการเขียนได้และเน้นการเขียนปริมาณสูงกับการกระจายข้ามไซต์ การเลือกจึงขึ้นกับว่าให้ค่ากับความยืดหยุ่นหรือความทนทานในการเขียน
ทางเลือกอื่นที่คล้ายกับ Apache Cassandra
แอปอื่นในหมวด ฐานข้อมูล
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Apache Cassandra ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด