„Cassandra ни позволява да дефинираме персонализирани типове, които могат да съдържат свързана информация в таблица. Ако не можете да намерите тип, който да съдържа вашия тип данни, можете да използвате вградени типове, за да дефинирате друг тип, който улавя желаното от вас оформление.
Добре е да имате предвид, че дефинираният тип е ограничен до обхвата на ключовото пространство, върху което е създаден. Можете да използвате нотацията с точка за достъп до таблица от друго пространство на ключове.
Тази публикация ще обсъди как можете да дефинирате потребителски тип с помощта на командата CREATE TYPE.”
Създайте синтаксис на команда за тип
Следната команда описва синтаксиса на командата за създаване на тип:
СЪЗДАВАНЕ НА ТИП [ АКО НЕ СЪЩЕСТВУВА ]
keyspace_name.type_name (
име_на_поле касандра_тип [ , ]
[ име_на_поле касандра_тип ] [ ,... ]
) ;
Командата поддържа клаузата IF EXISTS, която ви позволява да отмените грешки, ако командата с подобно име съществува в целевия тип.
Type_name трябва да включва уникално име, което отговаря на правилата за именуване на Cassandra.
И накрая, можете да дефинирате полетата за вашия тип и съответния им CQL тип. Не използвайте полета за броячи в персонализирани типове.
Пример
Следващият пример показва как да дефинирате персонализиран тип, който съдържа CVE отчети.
пуснете клавишно пространство ако съществува zero_day;създаване на ключово пространство zero_day
с репликация = {
'клас' : „SimpleStrategy“ ,
'репликационен_фактор' : 1
} ;
използвайте zero_day;
създавам Тип cve_reports (
cve_number текст,
отчетна_дата дата ,
засегнат_доставчик текст,
поплавък на тежестта,
) ;
Горната заявка започва със създаване на ключово пространство „zero_day“, което ще съдържа определения тип потребител.
Ще забележите, че изразът за създаване на тип следва подобен формат на създаването на таблица. Въпреки че това е вярно, те служат за различни цели и едното може да бъде по-добър избор от другото.
ЗАБЕЛЕЖКА: Обмислете последиците за производителността, преди да изберете таблица пред потребителски тип и обратно.
След това можем да вмъкнем данни в таблицата по-горе, както е показано:
Можем да създадем таблица с тип cve_reports и да вмъкнем примерни данни, както е показано:
създаване на записи в таблици (документ за самоличност int,
cve_reports cve_reports,
първичен ключ ( документ за самоличност )
) ;
Вмъкване на данни
вмъкнете в записи ( документ за самоличност , cve_reports ) стойности ( 1 , { cve_номер: „CVE-2021-33852“ , отчет_дата: „2022-12-02“ , засегнат_доставчик: 'WordPress' , тежест: 6.0 } ) ;
След това можем да извлечем добавените данни като:
Резултатен изход
Заключение
Тази публикация обхваща основите на създаването и използването на потребителски дефинирани типове в Apache Cassandra. Обсъдихме също как да създадем таблица с потребителски типове и да вмъкнем данни в колона с персонализиран тип.
Приятно кодиране!!