“คาสซานดราช่วยให้เราสามารถกำหนดประเภทแบบกำหนดเองที่สามารถเก็บข้อมูลที่เกี่ยวข้องในตาราง หากคุณไม่พบประเภทที่จะเก็บข้อมูลประเภทของคุณ คุณสามารถใช้ประเภทที่มีอยู่แล้วภายในเพื่อกำหนดประเภทอื่นที่รวบรวมเค้าโครงที่คุณต้องการได้
พึงระลึกไว้เสมอว่าประเภทที่กำหนดนั้นจำกัดขอบเขตของคีย์สเปซที่สร้างไว้ คุณสามารถใช้เครื่องหมายจุดเพื่อเข้าถึงตารางจาก 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 เรายังกล่าวถึงวิธีสร้างตารางด้วยประเภทที่กำหนดเองและแทรกข้อมูลลงในคอลัมน์ประเภทที่กำหนดเอง
มีความสุขในการเข้ารหัส!!