บทนำสู่ Column Family กับ Cassandra



บล็อกนี้เน้นถึงความสำคัญของกลุ่มคอลัมน์กับคาสซานดรา

คอลัมน์ครอบครัว

กลุ่มคอลัมน์จะคล้ายกับตารางใน RDBMS หรือ Relational Database Management System และเป็นแผนกลอจิคัลที่เชื่อมโยงข้อมูลที่คล้ายกัน โดยทั่วไปในข้อมูลที่คล้ายกันคุณมักจะจัดเก็บข้อมูลบางประเภทที่เป็นเรื่องที่คล้ายคลึงกัน

ตัวอย่างเช่นข้อมูลคำสั่งซื้อจะถูกเก็บไว้ในตระกูลคอลัมน์เดียวดังนั้นคุณจึงสามารถมีรหัสคำสั่งซื้อเป็นคีย์แถวได้เช่นเดียวกับคอลัมน์ต่างๆเช่นชนิดของผลิตภัณฑ์ที่ถูกนำมาเป็นส่วนหนึ่งของคำสั่งซื้อนั้นเพื่อจัดเก็บในกลุ่มคำสั่งซื้อนั้น ๆ . ในการยกตัวอย่างกลุ่มคอลัมน์ผู้ใช้ประกอบด้วยรหัสผู้ใช้เป็นคีย์ ดังนั้นจึงมีอิสระในการเลือก ID และคอลัมน์สามารถเป็น 'name = Kunal' ได้ และค่าของคอลัมน์คือ Kunal และ Bangalore มีคอลัมน์ตระกูลที่สองที่เรียกว่าตระกูลคอลัมน์คริกเก็ตซึ่งช่วยให้สามารถจัดเก็บสถิติคริกเก็ตในตระกูลคอลัมน์เดียว ตัวอย่างเช่นคุณสามารถมี Sachin Tendulkar ในคอลัมน์เดียวและอีกหลายศตวรรษในอีกคอลัมน์หนึ่ง ดังนั้นอาจมีกี่คอลัมน์ก็ได้





ประเภทของคอลัมน์

Column Family ไม่ใช่แค่ตารางที่คล้ายกับตารางในโลก RDBMS มีบางประเภท ได้แก่

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



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

หากคุณมีกลุ่มคอลัมน์แบบคงที่และต้องการเพิ่มกลุ่มคอลัมน์แบบไดนามิกในโค้ดของคุณขณะโหลดข้อมูลสามารถเพิ่มลงในตระกูลคอลัมน์แบบคงที่ได้ตลอดเวลา Cassandra ให้อิสระในการเลือกชื่อคอลัมน์

ความแตกต่างกับ RDBMS

ตระกูลคอลัมน์ Cassandra ไม่มีสคีมาและปรับขนาดได้มาก กลุ่มคอลัมน์ Cassandra มีสองคุณลักษณะ - ชื่อและตัวเปรียบเทียบ ดังนั้นเมื่อคุณมีคอลัมน์ตระกูล Cassandra การตั้งชื่อจะกลายเป็นสิ่งที่จำเป็นและตัวเปรียบเทียบเป็นชนิดข้อมูลสำหรับชื่อคอลัมน์ หากคุณไม่ได้ระบุตัวเปรียบเทียบจะถือว่าเป็นตัวเปรียบเทียบเริ่มต้นบางตัว



การตั้งค่า hadoop บน Ubuntu

แคสแซนดรายังมีคอลัมน์ตระกูลซุปเปอร์คอลัมน์ มันจะใช้ซุปเปอร์คอลัมน์ภายใน เป็นการจัดกลุ่มเชิงตรรกะและอีกระดับของการจัดกลุ่มคอลัมน์ ดังนั้นในกลุ่มคอลัมน์ผู้ใช้คุณสามารถมีคอลัมน์พิเศษสองคอลัมน์ที่เราสามารถมีข้อมูลส่วนบุคคลและข้อมูลผลิตภัณฑ์ของผู้ใช้

คอลัมน์

คอลัมน์คือข้อมูลที่เพิ่มขึ้นน้อยที่สุดในคาสซานดรา มีส่วนประกอบ 3 อย่าง:

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

ซุปเปอร์คอลัมน์

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

กรณีหลักสำหรับคอลัมน์พิเศษคือการทำให้แถวหลายแถวจากตระกูลคอลัมน์อื่น ๆ เป็นแถวเดียวเพื่อให้สามารถดึงข้อมูลมุมมองที่เป็นรูปธรรมได้

ใช้กรณี

ข้อ จำกัด ของ Super Columns

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

ชนิดข้อมูลคอลัมน์

ชนิดข้อมูลคอลัมน์

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

แถว

อาจมีแถวกว้างและหลายแถว สามารถมีคอลัมน์และแถวได้หลายล้านรายการ

แถวผอมมีคอลัมน์จำนวนน้อยที่มีตัวเลือกให้มีเฉพาะแถวที่ จำกัด

คีย์คอมโพสิต

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

มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป

กระทู้ที่เกี่ยวข้อง:

รู้เบื้องต้นเกี่ยวกับ Snitches ใน Cassandra