Тусламж:Хуудас яаж засварлах вэ?: Засвар хоорондын ялгаа

Content deleted Content added
No edit summary
No edit summary
Мөр 1: Мөр 1:
                   Кассандра CQL Төрөл 
                  <nowiki> </nowiki>'''Кассандра CQL Төрөл''' 


= Кассандра- CQL Өгөгдөл =
= Кассандра- CQL Өгөгдөл =

15:50, 1 Арваннэгдүгээр сар 2017-ий байдлаарх засвар

                   Кассандра CQL Төрөл 

Кассандра- CQL Өгөгдөл

CQL нь цуглуулгын төрлүүд гэх мэт төрөл бүрийн өгөгдлийн төрөл агуулсан байдаг. Эдгээр өгөгдлийн төрлүүдтэй зэрэгцэн хэрэглэгчид өөрсдийн тусгай өгөгдлийн төрөл үүсгэж болно. Дараах хүснэгтэд CQL-д байгаа төрөл бүрийн өгөгдлийн төрлийн жагсаалтыг харуулав

Өгөгдлийн төрөл Тогтмол Тайлбар
Ascii Strings ASCII тэмдэгт мөрийг төлөөлнө
Bigint Bigint 64 битийн уртыг  тэмдэглэсэн                 
Blob Blobs Энэ нь дурын байтыг төлөөлнө
Boolean Booleans Үнэн эсвэл худал гэдгийг илэрхийлнэ
Counter Integers Баганын баганыг төлөөлнө
Decimal Integers,floats Хувьсах-нарийвчлалын аравтын бутархайг төлөөлнө
Double Integers 64-битийн IEEE-754 хөвөгч цэгийг төлөөлнө
Float Integers,float 32-битийн IEEE-754 хөвөгч цэгийг төлөөлнө
Inet Strings IP хаяг,IPv4 эсвэл IPv6 гэж нэрлэнэ
Int Integers 32-бит гарын үсэг зурсан
Text Strings UTF8 кодчилогдсон мөрийг төлөөлнө
Timestamp Integers,strings Цаг хугацаа төлөөлнө
Timeuuid Uuids Төрөл 1 UUID-г төлөөлнө
Uuid Uuids Төрөл 1 эсвэл төрөл 4-г оруулна
    UUID
Varchar Strings UTF8 кодлогдсон тэмдэгтийг илэрхийлнэ
Varint Integers Бүх дурын нарийвчлалтай бүхэл тоог илэрхийлнэ

 

Цуглуулгын төрөл

Cassandra Query Language нь цуглуулгын өгөгдлийн төрлийг агуулдаг. Дараах хүснэгтэд CQL дэх цуглуулгуудын жагсаалтыг харуулав.

Цуглуулга Тайлбар
Жагсаалт Жагсаалт нь нэг буюу хэд хэдэн захиалсан элементүүдийн цуглуулга юм
Зураг Газрын зураг нь түлхүүр-хосын цуглуулга юм
Тохируулах Багц нь нэг буюу хэд хэдэн элементүүдийн цуглуулга юм

 

Хэрэглэгчийн тодорхойлсон өгөгдлийн төрөл:

Cqlsh нь хэрэглэгчид өөрийн өгөгдлийн төрлийг бий болгох боломжийг олгодог. Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлүүдийг ашиглахад хэрэглэгддэг тушаалуудыг доор өгөв

·        CREATE TYPE - Хэрэглэгчийн тодорхойлсон өгөгдлийн сан үүсгэнэ.

·        ALTER TYPE - Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг өөрчлөх.

·        DROP TYPE - Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг бууруулдаг.

·        DESCRIBE TYPE - Хэрэглэгчийн тодорхойлсон өгөгдлийн төpлийг тодорхойлно.

·        DESCRIBE TYPES - Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг тодорхойлно.

Кассандра-CQL цуглуулгууд

CQL цуглуулга өгөгдлийн төрлийг ашиглах боломжийг олгодог. Эдгээр цуглуулгаийг ашиглахдаа олон утгыг нэг хувьсагчид хадгалж болно. Энэ бүлэгт Cassandra дахь цуглуулгуудыг хэрхэн ашиглах талаар тайлбарлана

 Жагсаалт

Энд байгаа жагсаалтад жагсаалтыг ашигладаг

o  элементийн дарааллыг хадгалах,

o  утга нь олон удаа хадгалагдах болно.

Жагсаалтын өгөгдлийн төрлүүдийн утгыг жагсаалт дахь элементүүдийн индекс ашиглан авч болно.

Жагсаалттай хүснэгтийг үүсгэх

Доорх жишээнээс жишээ авъя гэвэл хоёр багана, нэр, и-мэйлээр жишээ авъя. Олон и-мэйл хадгалахын тулд бид жагсаалтыг ашиглаж байна

cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);

Жагсаалтад өгөгдөл оруулах

Жагсаалт дахь элементүүдэд өгөгдөл оруулахдаа квадрат хаалтанд [] доор харуулагдсан бүх утгыг оруул.

cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',

['abc@gmail.com','cba@yahoo.com'])

 

Жагсаалтыг шинэчилж байна

Доорх өгөгдөл нь өгөгдөл гэж нэрлэгдсэн хүснэгтийн жагсаалтан дахь өгөгдлийн төрөлийг шинэчлэх жишээ юм. Энд бид жагсаалтад өөр нэг имэйл нэмж байна. 

cqlsh:tutorialspoint> UPDATE data

... SET email = email +['xyz@tutorialspoint.com']

... where name = 'ramu';

 

Баталгаажуулалт

Хэрэв та хүснэгтийг SELECT statement ашиглан шалгаж байвал дараах үр дүнг авна. 

cqlsh:tutorialspoint> SELECT * FROM data; 

 name | email

------+--------------------------------------------------------------

 ramu | ['abc@gmail.com', 'cba@yahoo.com', 'xyz@tutorialspoint.com'

(1 rows)

 

Тохируулах

Тодорхойлолт нь бүлэг элементүүдийг хадгалахад ашиглагддаг өгөгдлийн төрөл юм. Багцын элементүүдийг ялгах дарааллаар буцаана.

Тохируулгатай хүснэгтийг үүсгэх

Дараах жишээнд дээжийн хүснэгтийг хоёр багана, нэр, утасны дугаараар үүсгэдэг. Олон тооны утасны дугаарыг хадгалахын тулд бид багцыг ашиглаж байна                  

cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);

 

Өгөгдөл оруулах нь

Өгөгдлийг элементүүдэд оруулах үед, доор үзүүлсэн шиг буржгар хаалт {} доор тусгаарлагдсан утгуудыг оруул.

cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman',    {9848022338,9848022339});

 

Тодорхойлолтыг шинэчлэх

Дараах код нь өгөгдлийг нэрлэх хүснэгтэд хэрхэн шинэчлэхийг харуулж байна. Энд бид багцын өөр утасны дугаар нэмж байна.

cqlsh:tutorialspoint> UPDATE data2

   ... SET phone = phone + {9848022330}

   ... where name = 'rahman';

 

Баталгаажуулалт

Хэрэв та хүснэгтийг SELECT statement ашиглан шалгаж байвал дараах үр дүнг авна.

cqlsh:tutorialspoint> SELECT * FROM data2; 

   name | phone

--------+--------------------------------------

 rahman | {9848022330, 9848022338, 9848022339}

(1 rows)

 

ЗУРАГ

Газрын зураг нь түлхүүрийн үнэ цэнэтэй хоёр элементийг хадгалахад ашиглагддаг өгөгдлийн төрөл юм.

Газрын зурагтай Хүснэгтийг үүсгэх

Дараах жишээ нь хоёр багана, нэр, хаягыг хэрхэн түүвэрлэлтийн хүснэгтийг хэрхэн үүсгэхийг харуулж байна. Олон хаягийн утгыг хадгалахын тулд бид газрын зургийг ашиглаж байна.

cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address

map<timestamp, text>);

 

Газрын зураг руу өгөгдөл оруулах

Газрын зураг дээрх элементүүдэд өгөгдөл оруулахдаа бүх түлхүүрийг оруул. Доор харуулснаар {} баруун тийш таслалаар таслагдсан хос утга бүхий утга.

cqlsh:tutorialspoint> INSERT INTO data3 (name, address)

   VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );

 

Тодорхойлолтыг шинэчлэх

Дараах код нь өгөгдлийн өгөгдлийн төрлийг хэрхэн шинэчлэхийг харуулж байна3. Энд бид гол оффисын үнэ цэнийг өөрчилж байна, өөрөөр хэлбэл, бид робин нэртэй хүний оффисийн хаягийг өөрчилж байна.

cqlsh:tutorialspoint> UPDATE data3

   ... SET address = address+{'office':'mumbai'}

   ... WHERE name = 'robin';

  

 

Баталгаажуулалт

Хэрэв та хүснэгтийг SELECT statement ашиглан шалгаж байвал дараах үр дүнг авна.

cqlsh:tutorialspoint> select * from data3; 

  name | address

-------+-------------------------------------------

 robin | {'home': 'hyderabad', 'office': 'mumbai'}

(1 rows)

Кассандра - CQL Хэрэглэгчийн тодорхойлж өгсөн өгөгдөл

CQL нь хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг үүсгэх, ашиглах боломжийг хангадаг. Та олон талбарт ажиллах өгөгдлийн төрөл үүсгэж болно. Энэ бүлэгт хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг хэрхэн үүсгэх, өөрчлөх, устгах талаар тайлбарлана.

Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг үүсгэх

CREATE TYPE тушаал нь хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг үүсгэхэд ашиглагддаг. Түүний синтакс нь дараах байдалтай байна:

CREATE TYPE <keyspace name>. <data typename>

( variable1, variable2).

 

Жишээ нь

Доорх бол хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг үүсгэх жишээ юм. Энэ жишээнд бид дараах дэлгэрэнгүй мэдээллийг агуулсан картан дээрхи мэдээллийн төрөл үүсгэж байна.

Талбар Талбарын нэр Өгөгдлийн төрөл
Кредит картны дугаар Тоо Int
Кредит картны зүү Зүү Int
Зээлийн картны нэр Нэр Текст
Cvv Cvv Int
Карт эзэмшигчийн холбоо барих мэдээлэл Дугаар Тохируулах

 

cqlsh:tutorialspoint> CREATE TYPE card_details (

   ... num int,

   ... pin int,

   ... name text,

   ... cvv int,

   ... phone set<int>

... );

Тэмдэглэл: Хэрэглэгчийн тодорхойлсон өгөгдлийн төрөлд ашиглагдах нэр нь хадгалагдсан төрлийн нэртэй таарахгүй байх ёстой.

Баталгаажуулалт

DESCRIBE тушаалыг ашиглан үүсгэсэн төрлийг үүсгэсэн эсэхийг шалгана уу.

CREATE TYPE tutorialspoint.card_details (

   num int,                       

   pin int,

   name text,

   cvv int,

   phone set<int>

   );

 

Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг өөрчлөх

ALTER TYPE командыг одоо байгаа өгөгдлийн төрлийг өөрчлөхөд ашигладаг. ALTER-г ашигласнаар та шинэ талбарыг нэмж эсвэл одоо байгаа талбарыг өөрчилж болно.

Талбарт төрөл нэмэх

Хэрэглэгчийн тодорхойлсон өгөгдлийн төрөлд шинэ талбарыг нэмэхийн тулд дараах синтаксийг ашиглана.

ALTER TYPE typename

ADD field_name field_type;

Дараах код нь категорийн төрөл дэх картын төрлийг харуулна. Энд бид имэйл нэртэй шинэ салбар нэмж байна.

cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;

 

Баталгаажуулалт

DESCRIBE тушаалыг ашиглан шинэ талбарыг нэмсэн эсэхийг шалгана уу.

cqlsh:tutorialspoint> describe type card_details;

CREATE TYPE tutorialspoint.card_details (

   num int,

   pin int,

   name text,

   cvv int,

   phone set<int>,

   );

 

Талбарыг төрөл хэлбэрээр өөрчлөх

Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг өөрчлөхийн тулд дараах синтаксийг ашиглана уу.

ALTER TYPE typename

RENAME existing_name TO new_name;

Дараах код нь төрөл дэх талбарын нэрийг өөрчилдөг. Энд бид талбар имэйлийг шуудангаар нэрлэх болно.

cqlsh:tutorialspoint> ALTER TYPE card_details RENAME email TO mail;

Баталгаажуулалт

DESCRIBE тушаалыг ашиглан төрөлтийн нэр өөрчлөгдсөн эсэхийг шалгана уу.

cqlsh:tutorialspoint> describe type card_details;

CREATE TYPE tutorialspoint.card_details (

   num int,

   pin int,

   name text,

   cvv int,

   phone set<int>,

   mail text

   );

 

Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг устгах

DROP TYPE нь хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг устгахад хэрэглэгддэг тушаал юм. Доорх бол хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг устгах жишээ юм.

Жишээ нь

Хас устгахаас өмнө доор тайлбарласны дагуу DESCRIBE_TYPES командыг ашиглан хэрэглэгчийн тодорхойлсон өгөгдлийн төрлүүдийн жагсаалтыг баталгаажуулна уу.

cqlsh:tutorialspoint> DESCRIBE TYPES;

card_details card

 

Хоёр төрлөөс эхлэн нэрлэсэн картыг доор үзүүлснээр устгах хэрэгтэй.

cqlsh:tutorialspoint> drop type card;

 

Өгөгдлийн төрлийг хассан эсэхийг шалгахын тулд DESCRIBE командыг ашиглана уу.

cqlsh:tutorialspoint> describe types;

card_details.