Cassandra สร้าง Type

Cassandra Srang Type



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

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







โพสต์นี้จะกล่าวถึงวิธีที่คุณสามารถกำหนดประเภทผู้ใช้โดยใช้คำสั่ง CREATE TYPE”



สร้าง Type Command Syntax

คำสั่งต่อไปนี้แสดงไวยากรณ์ของคำสั่ง create type:



สร้างประเภท [ หากไม่มีอยู่ ]
keyspace_name.type_name (
field_name cassandra_type [ , ]
[ field_name cassandra_type ] [ ,... ]
) ;


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





Type_name ต้องมีชื่อเฉพาะที่สอดคล้องกับกฎการตั้งชื่อของ Cassandra

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



ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีการกำหนดประเภทแบบกำหนดเองที่เก็บรายงาน CVE

วางคีย์สเปซ ถ้า มีอยู่ zero_day;

สร้างคีย์สเปซ zero_day
พร้อมการจำลอง = {
'ระดับ' : 'กลยุทธ์ง่ายๆ' ,
'replication_factor' : 1
} ;
ใช้ zero_day;

สร้าง พิมพ์ cve_reports (
ข้อความ cve_number,
รายงาน_วันที่ วันที่ ,
ข้อความที่ได้รับผลกระทบ_ผู้ขาย
ความรุนแรงลอย,
) ;


แบบสอบถามด้านบนเริ่มต้นด้วยการสร้างคีย์สเปซ “zero_day” ซึ่งจะเก็บประเภทผู้ใช้ที่กำหนดไว้

คุณจะสังเกตเห็นว่าคำสั่ง create type มีรูปแบบคล้ายกับการสร้างตาราง แม้ว่าสิ่งนี้จะเป็นความจริง แต่ก็มีจุดประสงค์ที่แตกต่างกัน และทางเลือกหนึ่งอาจเป็นทางเลือกที่ดีกว่าอีกทางหนึ่ง

บันทึก: พิจารณาผลกระทบด้านประสิทธิภาพก่อนเลือกตารางเหนือประเภทที่กำหนดเอง และในทางกลับกัน

จากนั้นเราสามารถแทรกข้อมูลลงในตารางด้านบนดังที่แสดง:

เราสามารถสร้างตารางด้วยประเภท cve_reports และแทรกข้อมูลตัวอย่างตามที่แสดง:

สร้างบันทึกตาราง (
id อินท์,
cve_reports cve_reports,
คีย์หลัก ( id )
) ;

ใส่ข้อมูล

แทรกลงในบันทึก ( id , cve_reports ) ค่า ( 1 , { cve_number: 'CVE-2021-33852' , report_date: '2022-12-02' ได้รับผลกระทบ_vendor: 'เวิร์ดเพรส' , ความรุนแรง: 6.0 } ) ;


จากนั้นเราสามารถดึงข้อมูลที่เพิ่มเข้ามาได้ดังนี้:

เลือก * จากบันทึก;

ผลลัพธ์ที่ได้


บทสรุป

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

มีความสุขในการเข้ารหัส!!