Cassandra - บทนำ

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

NoSQLDatabase

ฐานข้อมูล NoSQL (บางครั้งเรียกว่า Not Only SQL) เป็นฐานข้อมูลที่มีกลไกในการจัดเก็บและดึงข้อมูลนอกเหนือจากความสัมพันธ์แบบตารางที่ใช้ในฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลเหล่านี้ไม่มีสคีมารองรับการจำลองแบบง่ายมี API ที่เรียบง่ายสอดคล้องกันในที่สุดและสามารถจัดการข้อมูลจำนวนมหาศาลได้

วัตถุประสงค์หลักของฐานข้อมูล NoSQL คือการมี

  • ความเรียบง่ายของการออกแบบ
  • มาตราส่วนแนวนอนและ
  • ควบคุมความพร้อมใช้งานได้ละเอียดขึ้น

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

NoSQL เทียบกับฐานข้อมูลเชิงสัมพันธ์

ตารางต่อไปนี้แสดงจุดที่ทำให้ฐานข้อมูลเชิงสัมพันธ์แตกต่างจากฐานข้อมูล NoSQL

ฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูล NoSql
รองรับภาษาแบบสอบถามที่มีประสิทธิภาพ รองรับภาษาแบบสอบถามที่เรียบง่ายมาก
มีสคีมาที่ตายตัว ไม่มีสคีมาที่ตายตัว
ติดตามกรด (อะตอมมิก, ความสม่ำเสมอ, การแยกและความทนทาน) มันเป็นเพียง "สอดคล้องกันในที่สุด"
รองรับการทำธุรกรรม ไม่รองรับการทำธุรกรรม

นอกจาก Cassandra แล้วเรายังมีฐานข้อมูล NoSQL ต่อไปนี้ที่ค่อนข้างเป็นที่นิยม -

  • Apache HBase- HBase เป็นฐานข้อมูลแบบโอเพนซอร์สที่ไม่เกี่ยวข้องและกระจายซึ่งจำลองแบบมาจาก BigTable ของ Google และเขียนด้วย Java ได้รับการพัฒนาโดยเป็นส่วนหนึ่งของโปรเจ็กต์ Apache Hadoop และทำงานบน HDFS ซึ่งให้ความสามารถเหมือน BigTable สำหรับ Hadoop

  • MongoDB - MongoDB เป็นระบบฐานข้อมูลที่เน้นเอกสารข้ามแพลตฟอร์มที่หลีกเลี่ยงการใช้โครงสร้างฐานข้อมูลเชิงสัมพันธ์แบบตารางแบบเดิมเพื่อสนับสนุนเอกสารที่มีลักษณะคล้าย JSON ที่มีแผนภาพแบบไดนามิกทำให้การรวมข้อมูลในแอปพลิเคชันบางประเภททำได้ง่ายขึ้นและเร็วขึ้น

Apache Cassandra คืออะไร?

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

ด้านล่างนี้เป็นจุดที่น่าสังเกตบางประการของ Apache Cassandra -

  • สามารถปรับขนาดได้ทนต่อความผิดพลาดและสม่ำเสมอ

  • เป็นฐานข้อมูลเชิงคอลัมน์

  • การออกแบบการจัดจำหน่ายขึ้นอยู่กับ Dynamo ของ Amazon และแบบจำลองข้อมูลบน Bigtable ของ Google

  • สร้างขึ้นที่ Facebook ซึ่งแตกต่างอย่างมากกับระบบจัดการฐานข้อมูลเชิงสัมพันธ์

  • คาสซานดราใช้โมเดลจำลองแบบไดนาโมโดยไม่มีจุดล้มเหลวแม้แต่จุดเดียว แต่เพิ่มโมเดลข้อมูล "คอลัมน์ตระกูล" ที่มีประสิทธิภาพมากขึ้น

  • Cassandra ถูกใช้โดย บริษัท ที่ใหญ่ที่สุดบางแห่งเช่น Facebook, Twitter, Cisco, Rackspace, ebay, Twitter, Netflix และอื่น ๆ

คุณสมบัติของ Cassandra

Cassandra ได้รับความนิยมอย่างมากเนื่องจากคุณสมบัติทางเทคนิคที่โดดเด่น ด้านล่างนี้เป็นคุณสมบัติบางอย่างของ Cassandra:

  • Elastic scalability- Cassandra สามารถปรับขนาดได้สูง ช่วยให้สามารถเพิ่มฮาร์ดแวร์เพิ่มเติมเพื่อรองรับลูกค้าและข้อมูลเพิ่มเติมตามความต้องการ

  • Always on architecture - Cassandra ไม่มีจุดล้มเหลวแม้แต่จุดเดียวและพร้อมใช้งานอย่างต่อเนื่องสำหรับแอพพลิเคชั่นที่สำคัญทางธุรกิจที่ไม่สามารถล้มเหลว

  • Fast linear-scale performance- Cassandra สามารถปรับขนาดได้เชิงเส้นกล่าวคือจะเพิ่มปริมาณงานของคุณเมื่อคุณเพิ่มจำนวนโหนดในคลัสเตอร์ ดังนั้นจึงรักษาเวลาตอบสนองที่รวดเร็ว

  • Flexible data storage- Cassandra รองรับรูปแบบข้อมูลที่เป็นไปได้ทั้งหมด ได้แก่ : มีโครงสร้างกึ่งโครงสร้างและไม่มีโครงสร้าง สามารถรองรับการเปลี่ยนแปลงโครงสร้างข้อมูลของคุณแบบไดนามิกตามความต้องการของคุณ

  • Easy data distribution - Cassandra มอบความยืดหยุ่นในการกระจายข้อมูลในที่ที่คุณต้องการโดยการจำลองข้อมูลในศูนย์ข้อมูลหลายแห่ง

  • Transaction support - Cassandra รองรับคุณสมบัติต่างๆเช่น Atomicity, Consistency, Isolation และ Durability (ACID)

  • Fast writes- Cassandra ได้รับการออกแบบให้ทำงานบนฮาร์ดแวร์สินค้าราคาถูก เขียนได้อย่างรวดเร็วและสามารถจัดเก็บข้อมูลได้หลายร้อยเทราไบต์โดยไม่ทำให้ประสิทธิภาพในการอ่านลดลง

ประวัติคาสซานดรา

  • Cassandra ได้รับการพัฒนาที่ Facebook สำหรับการค้นหาในกล่องจดหมาย
  • Facebook เปิดแหล่งที่มาในเดือนกรกฎาคม 2551
  • Cassandra ได้รับการยอมรับให้เข้าสู่ Apache Incubator ในเดือนมีนาคม 2552
  • จัดทำโครงการระดับบนสุดของ Apache ตั้งแต่เดือนกุมภาพันธ์ 2010