Apache Cassandra: Засвар хоорондын ялгаа

Content deleted Content added
Хуудсыг '{{delete|vandalism}}'-р сольж байна.
No edit summary
Мөр 1:
{{mergeto|Cassandra keyspace}}
{{delete|vandalism}}
{{mergeto|Cassandra cql type}}
==Cassandra Installation==
Cassandra-г Линукс орчинд суулгахаасаа өмнө бид Linux-г ssh (Secure Shell) ашиглан суулгах шаардлагатай болно. Линукс орчинд тохируулахын тулд доор дурдсан алхмуудыг хийнэ үү
'''Хэрэглэгч үүсгэх'''
Эхлээд Hadoop-д зориулж Hadoop файлын системийг Unix файлын системээс тусгаарлаж тусд нь хэрэглэгч үүсгэж өгнө. Хэрэглэгч үүсгэхийн тулд доорх алхмуудыг дагана уу.
"su" командыг ашиглан нээж болно.
Хэрэглэгчээс хэрэглэгч "useradd username" гэсэн командаар үүсгэнэ.
Одоо та хэрэглэгчийн бүртгэлийг "su username" гэсэн командаар нээж болно.
Линукс терминалыг нээж, хэрэглэгчийг үүсгэхийн тулд дараах командыг бичнэ үү.
 
$ su
password:
useradd hadoop
passwd hadoop
New passwd:
Retype new passwd
'''SSH тохиргоо , түлхүүр үүсгэх'''
SSH тохиргоо нь эхлүүлэх, зогсоох, тараах димон бүрхүүл ажиллуулах зэрэг хэсэг дээр өөр өөр үйлдлүүдийг гүйцэтгэхэд шаардагддаг. Hadoop-ийн өөр хэрэглэгчдийг баталгаажуулахын тулд Hadoop хэрэглэгчийн нийтийн / хувийн түлхүүр хосыг өгөх, өөр хэрэглэгчтэй хуваалцах шаардлагатай.
 
SSH ашиглан түлхүүр утгыг үүсгэхэд дараах командууд ашиглагддаг:
 
Нийтийн түлхүүрүүдийг id_rsa.pub-аас зөвшөөрөгдсөн түлхүүрийг хуулах
Хэрэглэгчд санал болгох,
Зөвшөөрөгдсөн түлхүүрийн файлыг тус тусд нь уншиж, бичих зөвшөөрлийг бичнэ.
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_key
$ chmod 0600 ~/.ssh/authorized_keys
'''Ssh-г баталгаажуулах'''
ssh localhost
'''Java суулгах нь'''
Жава нь Cassandra-д чухал шаардлагатай юм. Юуны өмнө, доор дурдсан командаар Java системийг өөрийн систем дээр шалгаж үзэх хэрэгтэй:
$java -version
Бүгд хэвийн ажилладаг ба энэ нь танд дараах гаралтыг өгнө.
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)
Хэрэв таны системд Жава байхгүй бол доорх алхмуудыг хийнэ үү
1-р алхам
Жава (JDK <хамгийн сүүлийн хувилбар> - X64.tar.gz) татаж авна уу.
Дараа нь jdk-7u71-linux-x64.tar.gz таны системд татагдах болно.
2-р алхам
jdk-7u71-linux-x64.gz файлыг дараах командуудыг ашиглан задлана.
 
$ cd Downloads/
$ ls
jdk-7u71-linux-x64.gz
$ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz
3-р алхам Жава-г бүх хэрэглэгчдэд хүргэхийн тулд үүнийг "/ usr / local /" рүү шилжих боломжтой. Үүнийг нээхдээ дараах командыг бичнэ үү
$ su
password:
mv jdk1.7.0_71 /usr/local/
exit
4-р алхам
PATH болон JAVA_HOME хувьсагчуудыг тохируулахдаа дараах командыг ~ / .bashrc файлд нэмнэ
export JAVA_HOME = /usr/local/jdk1.7.0_71
export PATH = $PATH:$JAVA_HOME/bin
 
Одоо ажиллаж байгаа системд бүх өөрчлөлтүүдийг оруулна.
$ source ~/.bashrc
 
5-р алхам
Жава хувилбаруудыг тохируулахын тулд дараах командуудыг ашиглана.
alternatives --install /usr/bin/java java usr/local/java/bin/java 2
alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2
alternatives --set java usr/local/java/bin/java
alternatives --set javac usr/local/java/bin/javac
alternatives --set jar usr/local/java/bin/jar
 
Одоо java -version командыг терминал дээр тайлбарласны дагуу ашиглана.
'''Замыг тохируулах'''
Cassandra замыг "/.bahrc" -д доор үзүүлэв.
[hadoop@linux ~]$ gedit ~/.bashrc
export CASSANDRA_HOME = ~/cassandra
export PATH = $PATH:$CASSANDRA_HOME/bin
'''Cassandra татах'''
Apache Cassandra-г Link Cassandra дээрээс дараах командыг ашиглан татаж авах боломжтой .
$ wget http://supergsego.com/apache/cassandra/2.1.2/apache-cassandra-2.1.2-bin.tar.gz
Unzip Cassandra-г zxvf командыг ашиглан доор харуулав.
$ tar zxvf apache-cassandra-2.1.2-bin.tar.gz.
Татаж авсан файлыг Cassandra нэртэй шинэ сан үүсгээд доор татсан шиг татна
$ mkdir Cassandra
$ mv apache-cassandra-2.1.2/* cassandra.
'''Cassandra тохируулах'''
Cassandra bin файлын санд байх cassandra.yaml файлыг нээнэ үү:
$ gedit cassandra.yaml
Тэмдэглэл: Хэрэв та debla эсвэл rpm хуудаснаас Cassandra суулгасан бол тохиргооны файлууд нь байх болно
Cassandra-ийн / etc / cassandra санд байрладаг cassandra.yaml файлыг нээнэ. Дараах тохируулгыг шалгана уу.
Анхдагчаар эдгээр утгууд нь заасан сангууд руу тохируулагдана.
data_file_directories “/var/lib/cassandra/data”
commitlog_directory “/var/lib/cassandra/commitlog”
saved_caches_directory “/var/lib/cassandra/saved_caches”
 
Эдгээр сангууд байгаа бөгөөд доор үзүүлсэн шигээр бичиж болно.
'''Лавлах үүсгэх'''
Хэрэглэгчийн хувьд хоёр санг / var / lib / cassandra болон /var./lib/cassandra сан дотор үүсгэх хэрэгтэй.Cassandra өөрийн өгөгдлийг бичдэг.
'''Хавтасд зөвшөөрөл өгөх'''
 
[root@linux cassandra]# mkdir /var/lib/cassandra
[root@linux cassandra]# mkdir /var/log/cassandra
 
Доор үзүүлсэн шиг шинээр үүсгэсэн хавтаст унших-бичих зөвшөөрлийг өгнө.
[root@linux /]# chmod 777 /var/lib/cassandra
[root@linux /]# chmod 777 /var/log/cassandra
'''Cassandra эхлүүлэх'''
 
Cassandra-г эхлүүлэхийн тулд терминалын цонхыг нээхийн тулд Cassandra home directory / home руу залгах хэрэгтэй.
Cassandra-г задалсан бөгөөд Cassandra-н сервер эхлүүлэхийн тулд дараах командыг ажиллуулаарай.
$ cd $CASSANDRA_HOME
$./bin/cassandra -f
f тохируулгыг ашиглах нь Cassandra нүүрэн талд байрлахыг хэлдэг үйл явц юм. Бүх зүйл амжилттай болвол Cassandra серверийн эхлэлийг харж болно.
 
'''Програмчлалын орчин'''
Cassandra-н програмыг тохируулахын тулд дараах файлын файлуудыг татаж авах хэрэгтэй:
. slf4j-api-1.7.5.jar
cassandra-driver-core-2.0.2.jar
guava-16.0.1.jar
metrics-core-3.0.2.jar
netty-3.9.0.Final.jar
Тэдгээрийг тусдаа хавтсанд байрлуул. Жишээ нь, бид "Cassandrs” нэрлэсэн фолдерт татаж байна.
Энэ хавтсанд байгаа classpath-ийг ".bashrc" -д доор үзүүлсэн шиг тохируулна.
[hadoop@linux ~]$ gedit ~/.bashrc
//Set the following class path in the .bashrc file.
export CLASSPATH = $CLASSPATH:/home/hadoop/Cassandra_jars/*
'''Eclipse орчин'''
Eclipse нээгээд Cassandra _Examples нэртэй шинэ сан үүсгэнэ.Хавтасны баруун товчлуур дээр дарж, Build Path → Доор үзүүлсэн шиг Build Path-г тохируулна уу.Энэ нь шинж чанарын цонхыг нээнэ. Сангийн Libraries tab дотроос add External JARs орно. Jar файлыг хадгалсан сан руугаа шилжүүлнэ үү. 5 jar файлын форматыг сонгож доор үзүүлсэн шиг OK дарна уу.
Дээрх Libraries дуудсаны дагуу дараах бүх шаардлагатай jar-г харж болно.
Cassandra хавтас нь maven ашиглан pom.xml өгсөн юм.
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0.1</version>
</dependency>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
<version>3.9.0.Final</version>
</dependency>
</dependencies>
</project>
==Cassandra - Referenced Api==
Бүлэг
 
Энэ бүлэг нь үндсэн хөдөлгөгч үндсэн цэг юм. Энэ нь com.datastax.driver.core багц юм.
{| class="wikitable"
|+ '''Ангилал'''
!S.No || Ангиллын тайлбар
|-
| 1 || Session connect() Энэ нь одоогийн кластер дээр шинэ горим үүсгэж түүнийг эхлүүлнэ.
|-
| 2 || void close() Энэ нь кластерийн жишээг хаахад хэрэглэгддэг.
|-
| 3 || static Cluster.Builder builder()шинэ кластер үүсгэхэд хэрэглэнэ.
|}
 
Cluster.Builder-Энэ хэсэг нь Cluster.Builder классыг илэрхийлэхэд хэрэглэгддэг.
{| class="wikitable"
! S.No|| Ангиллын тайлбар
|-
|1 || Cluster.Builder addContactPoint(String address) Энэ арга нь кластер руу харилцагчийг чиглүүлж нэмдэг.
|-
|2 ||Cluster build() Энэ арга нь кластерыг өгөгдсөн харилцах заагч байгуулдаг.
|}
 
Энэ интерфэйс нь Cassandra бүлгийн холболтыг агуулдаг. Энэ интерфэйсийг ашиглан та CQL хүсэлтийг гүйцэтгэж болно. Энэ нь com.datastax.driver.core багц юм.
{| class="wikitable"
| S.No|| Ангиллын тайлбар
|-
| 1 || void close() Энэ аргыг одоогийн горимг хаахад ашиглагддаг.
|-
|2|| ResultSet execute(Statement statement)Энэ арга нь хайлтыг гүйцэтгэхэд ашиглагддаг. Энэ нь мэдэгдлийн объектыг шаарддаг.
|-
| 3 || ResultSet execute(String query)Энэ арга нь хайлтыг гүйцэтгэхэд ашиглагддаг. Энэ нь String объект хэлбэрээр асуулт явуулахыг шаарддаг.
|-
| 4 || PreparedStatement prepare(RegularStatement statement)Энэ арга нь өгсөн хайлтыг бэлддэг. Асуулт нь мэдэгдэл хэлбэртэй байна.
|-
| 5 || PreparedStatement prepare(String query)Энэ арга нь өгсөн хайлтыг бэлддэг. Хайлтыг String хэлбэрээр өгөх ёстой.
|}
 
==Cassandra - Cqlsh==
Энэ бүлэг нь Cassandra хайлтын хэлийг танилцуулж түүний командуудыг хэрхэн ашиглахыг тайлбарладаг.
Анхдагч байдлаар, Cassandra нь хэрэглэгчийн харилцах боломжийг олгодог Cassandra хайлтын хэлийг (cqlsh) түргэн шуурхай болгодог. Cassandra Query Language (CQL) -ийг ашиглан ажиллуулж болно.
Та Cqlsh командыг ашиглах нь
схемийг тодорхойлж,
 
өгөгдөл оруулах, болон
 
хайлт хийх.
'''Cqlsh-ээс эхэлнэ'''
Cqlsh эхлэлүүлэхэд доор дурдсан шиг cqlsh командыг ашиглана. Энэ нь Cassandra cqlsh командыг гаралтын хэлбэрээр өгдөг.
[hadoop@linux bin]$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh>
Cqlsh- Дээр тайлбарласны дагуу энэ команд нь cqlsh командыг эхлүүлэхэд хэрэглэгддэг. Үүнээс гадна, энэ нь бас хэд хэдэн сонголтуудыг дэмждэг. Дараах хүснэгт нь cqlsh болон тэдгээрийн хэрэглээний бүх тохиргоонуудыг тайлбарладаг
{| class="wikitable"
|Сонголт || Хэрэглээ
|-
| cqlsh --help || Cqlsh командын сонголтуудын талаар тусламжийн сэдвүүдийг үзүүлнэ.
|-
|Cqlsh--vershion || Таны ашиглаж байгаа cqlsh хувилбарыг дурддаг.
|-
|cqlsh –color || Өнгөт гаралтыг ашиглахын тулд бүрхүүлийг удирддаг.
|-
| cqlsh --debug || Нэмэлт програмын тохируулганы мэдээллийг харуулна.
|-
| cqlsh --execute || cql_statement CQL командыг хүлээн авч, ажиллуулахын тулд бүрхүүлийг удирддаг.
|-
| cqlsh --file= “file name” || Хэрэв та энэ сонголтыг ашиглаж байгаа бол Cassandra-д өгөгдсөн файл болон гаралтын командыг ажиллуулна.
|-
| cqlsh --no-color || Cassandra-д өнгөт гаралтыг ашиглахгүй байхыг заадаг.
|-
| cqlsh -u “user name” || Энэ тохируулгыг ашиглахын тулд та хэрэглэгчийг шалгаж болно. Өгөгдмөл хэрэглэгчийн нэр нь: cassandra.
|-
| cqlsh-p “pass word” || Энэ сонголтыг ашиглан та хэрэглэгчийг нууц үгээр баталгаажуулах боломжтой. Өгөгдмөл нууц үг нь: cassandrа
|}
'''Cqlsh команд'''
 
Cqlsh нь хэрэглэгчид тэдгээрийг харилцах боломжийг олгодог цөөн коммандтай байдаг. Дараах командууд байна.
Shell командуудыг баримтжуулах
Cqlsh-ийн баримтжуулсан бүрхүүлийн командуудыг доор өгөв. Эдгээр нь тусламжийн сэдвүүдийг үзүүлэх, жишээ нь cqlsh-аас гарах, тайлбарлах гэх мэт ажлуудыг гүйцэтгэхэд хэрэглэгддэг командууд юм.
*Help-Дүрслэл нь бүх cqlsh командуудад зориулсан сэдвүүдэд тусалдаг.
*CAPTURE-командын гаралтыг аваад файл руу нэмнэ.
*CONSISTENCY-Одоогийн тууштай байдлын түвшинг харуулах, эсвэл шинэ тогтвортой байдлын түвшинг тогтооно.
*COPY-Cassandra-ийн хуулбар болон өгөгдлийг хуулбарлах.
*DESCRIBE-Cassandra болон түүний объектуудын одоогийн классуудыг тайлбарладаг.
*EXPAND-Тухайн босоо чиглэлд хайлтын үр дүнг өргөтгөнө.
*EXIT - Энэ тушаалыг ашиглан cqlsh-г төгсгөж болно.
*PAGING - Хайлтын пейжийг идэвхжүүлж эсвэл идэвхгүй болгодог.
*SHOW - Cassandra хувилбар, хост буюу өгөгдлийн төрлийн таамаглал зэрэг одоогийн cqlsh горимын дэлгэрэнгүй мэдээллийг харуулна.
*SOURCE - CQL мэдэгдлүүд агуулсан файлыг ажиллуулдаг.
*TRACING - Хүсэлтийг дагахыг идэвхжүүлэх эсвэл идэвхгүй болгох.
 
'''CQL өгөгдлийн тодорхойлолтууд командууд'''
*GREATE KEYSPACE - Cassandra дээр KeySpace үүсгэдэг.
*USE - үүсгэсэн KeySpace-д холбогддог.
*ALTER KEYSPACE - KeySpace-ийн шинж чанаруудыг өөрчилдөг.
*DROP KEYSPACE - KeySpace устгах
*GREATE TABLE-Space дээр хүснэгт үүсгэх
*ALTER TABLE: Хүснэгтийн баганын шинж чанарыг өөрчилдөг.
*DROP table - хүснэгтийг устгах.
*TRUNCATE - Хүснэгтийн бүх өгөгдлийг устгана.
*INDEX үүсгэх - Хүснэгтийн нэг багана дээр шинэ индексийг тодорхойлно.
 
'''CQL өгөгдлийн командууд'''
*INSERT - Хүснэгтийн мөрөнд багана нэмэх
*UPDATE - Нэг мөрийн багануудыг шинэчилдэг.
*DELETE - Хүснэгтийн өгөгдлийг устгадаг.
*BATCH - Олон DML мэдэгдлийг нэгэн зэрэг гүйцэтгэдэг.
'''CQL заалтууд'''
*SELECT - Энэ бүлэг нь хүснэгтийн өгөгдлийг уншдаг
*WHERE - Энд тодорхой өгөгдлийг уншуулахын тулд хаана хэрэглэхийг заана.
*ORDERBY - Orderby заалтыг тодорхой дарааллаар тодорхой өгөгдлийг уншиж сонгохын хамт ашигладаг.
==Cassandra - Shell Commands==
Cassandra нь CQL коммандаас гадна дүн шинжилгээний тушаалыг баримтжуулдаг. Доор дурдсанчлан Cassandra нь дараах командуудыг баримтжуулсан байна.
 
Туслах
 
HELP команд нь бүх cqlsh командуудын ерөнхий агуулга, товч тайлбарыг харуулна. Доорх бол тусламжийн командын хэрэглээ юм.
cqlsh> help
Documented shell commands:
===========================
CAPTURE COPY DESCRIBE EXPAND PAGING SOURCE
CONSISTENCY DESC EXIT HELP SHOW TRACING.
CQL help topics:
================
ALTER CREATE_TABLE_OPTIONS SELECT
ALTER_ADD CREATE_TABLE_TYPES SELECT_COLUMNFAMILY
ALTER_ALTER CREATE_USER SELECT_EXPR
ALTER_DROP DELETE SELECT_LIMIT
ALTER_RENAME DELETE_COLUMNS SELECT_TABLE
 
'''Capture'''
Энэ команд нь командын гаралтыг авч, файлд нэмнэ. Жишээ нь Outputfile нэртэй файл руу гаралтаа оруулаад дараах кодыг хараарай
cqlsh> CAPTURE '/home/hadoop/CassandraProgs/Outputfile'
 
Терминал доторх ямар ч команд бичиж байх үед өгөгдлийг өгсөн файлаар гаргана. Доор ашигласан команд болон гаралтын файлын хормын хувилбар юм.
cqlsh:tutorialspoint> select * from emp;
[[File:Zurag-1.jpg|thumb|center|480px|Гаралтын файлын хувилбар]]
 
Та дараах командыг ашиглан барьж болно.
cqlsh:tutorialspoint> capture off;
 
'''Тогтвортой байдал'''
 
Энэ команд нь одоогийн тогтвортой байдлын түвшинг харуулж байгаа бөгөөд шинэ тогтвортой байдлын түвшинг тогтоодог.
qlsh:tutorialspoint> CONSISTENCY
Current consistency level is 1.
 
'''Хуулах'''
Энэ команд нь Cassandra-аас өгөгдөлд файлыг хуулдаг. Доорх жишээнүүд нь файлын myfile-д өгсөн хоосон хүснэгтийг хуулах жишээ юм.
cqlsh:tutorialspoint> COPY emp (emp_id, emp_city, emp_name, emp_phone,emp_sal) TO ‘myfile’;
4 rows exported in 0.034 seconds.
 
Хэрвээ та файлаа нээж, шалгаж байвал доор үзүүлсэн шиг хуулбарыг олж болно.
[[File:Zurag-2.jpg|thumb|center|480px|Файлын хуулбар]]
 
'''Тайлбарлах'''
Энэ команд нь Cassandra-ийн одоогийн кластер болон түүний объектуудыг тайлбарлах болно. Энэ командын хувилбарыг доор тайлбарлав.
Кластерийг тайлбарлах - Энэ комманд кластерийн талаар мэдээлэл өгнө.
cqlsh:tutorialspoint> describe cluster;
Cluster: Test Cluster
Partitioner: Murmur3Partitioner
Range ownership:
-658380912249644557 [127.0.0.1]
-2833890865268921414 [127.0.0.1]
-6792159006375935836 [127.0.0.1]
'''Түлхүүр үгсийг тайлбарлах''' - Энэ команд нь кластер дахь бүх түлхүүрүүдийг жагсаадаг. Доор дурдсан командыг ашиглах болно.
cqlsh:tutorialspoint> describe keyspaces;
system_traces system tp tutorialspoint
 
'''Хүснэгтийг тайлбарлах''' - Энэ команд нь бүх локал хүснэгтийг жагсаадаг. Доор дурдсан командыг ашиглах болно.
cqlsh:tutorialspoint> describe tables;
emp
 
'''Хүснэгтийг тайлбарлах '''- Энэ команд нь хүснэгтийг тайлбарлах болно. Доор дурдсан командыг ашиглах болно.
cqlsh:tutorialspoint> describe table emp;
CREATE TABLE tutorialspoint.emp (
emp_id int PRIMARY KEY,
emp_city text,
emp_name text,
emp_phone varint,
emp_sal varint
) WITH bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'min_threshold': '4', 'class':
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
'max_threshold': '32'}
AND compression = {'sstable_compression':
'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
CREATE INDEX emp_emp_sal_idx ON tutorialspoint.emp (emp_sal);
 
'''Төрөл тайлбарлах'''
 
Энэ команд нь хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг тодорхойлоход хэрэглэгддэг. Доор дурдсан командыг ашиглах болно.
cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
num int,
pin int,
name text,
cvv int,
phone set<int>,
mail text
);
'''Зүйлээр тайлбарлах'''
Энэ команд нь хэрэглэгчийн тодорхойлсон өгөгдлийн төрлийг жагсаав. Доор дурдсан командыг ашиглах болно. Хэрэглэгчийн тодорхойлсон өгөгдлийн төрлүүд байдаг гэж үзье: карт болон карт_details
cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card
 
'''Өргөжүүлэлт хийх'''
 
Энэ тушаал нь гаралтыг өргөтгөхөд хэрэглэгддэг. Энэ командыг ашиглахаасаа өмнө өргөтгөх командыг идэвхжүүлэх хэрэгтэй. Доор дурдсан тушаалыг ашиглах болно.
cqlsh:tutorialspoint> expand on;
cqlsh:tutorialspoint> select * from emp;
@ Row 1
-----------+------------
emp_id | 1
emp_city | Hyderabad
emp_name | ram
emp_phone | 9848022338
emp_sal | 50000
@ Row 2
-----------+------------
emp_id | 2
emp_city | Delhi
emp_name | robin
emp_phone | 9848022339
emp_sal | 50000
@ Row 3
-----------+------------
emp_id | 4
emp_city | Pune
emp_name | rajeev
emp_phone | 9848022331
emp_sal | 30000
@ Row 4
-----------+-----------
emp_id | 3
emp_city | Chennai
emp_name | rahman
emp_phone | 9848022330
emp_sal | 50000
(4 rows)
Тайлбар: Та өргөтгөсөн сонголтыг дараах командыг ашиглан унтрааж болно.
cqlsh:tutorialspoint> expand off;
Disabled Expanded output.
'''Гарах'''
Энэ тушаал нь cql бүрхүүлийг зогсооход хэрэглэгддэг.
Нээх
Энэ команд нь Cassandra хувилбар, хост эсвэл өгөгдлийн төрлийн таамаглал зэрэг одоогийн cqlsh сессын мэдээллийг харуулна. Доор дурдсан командыг ашиглах болно.
cqlsh:tutorialspoint> show host;
Connected to Test Cluster at 127.0.0.1:9042.
cqlsh:tutorialspoint> show version;
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
 
Эх сурвалж
Энэ командыг ашиглан та командуудыг файлд гүйцэтгэж болно. Манай оролтын файл дараах байдалтай байна:
[[File:Zurag-3.jpg|thumb|center|480px|Файлд оруулах]]
Дараа нь доор дурдсан шиг командуудыг агуулсан файлыг ажиллуулж болно.
qlsh:tutorialspoint> source '/home/hadoop/CassandraProgs/inputfile';
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+-----------+----------+------------+---------
1 | Hyderabad | ram | 9848022338 | 50000
2 | Delhi | robin | 9848022339 | 50000
3 | Pune | rajeev | 9848022331 | 30000
4 | Chennai | rahman | 9848022330 | 50000
(4 rows)
=='''Cassandra Keyspace үүсгэх'''==
'''Cqlsh ашиглан Keyspace үүсгэх'''
Cassandra-гийн үндсэн хэсгүүдийн нэг нь Зангилаанд өгөгдлийн хуулбарыг тодорхойлдог нэрсийн хэсэг юм. Кластер нь keyspace-ийн зангилаа бүрийг агуулна. CREATE KEYSPACE-ийг ашиглан keyspace үүсгэх аргыг доор харууллаа.
'''Синтакс:'''
CREATE KEYSPACE <identifier> WITH <properties>
CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of replicas’};
CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of replicas’}
AND durable_writes = ‘Boolean value’;
CREATE KEYSPACE нь replication болон durable_writes гэсэн хоёр үндсэн шинж чанартай
'''1.Хуулбарлалт/ replication'''
Хуулбарлалт нь хуулбарлах байршилын стратеги ба хувилахыг хүссэн тоогоор тодорхойлогддог. Доорх хүснэгтэнд бүх хуулбарлах байршилын стратегыг харууллаа
{| class="wikitable"
|'''Стратегын нэр'''
|'''Тодорхойлолт'''
|-
|'''Энгийн стратеги'''
|Кластерийн энгийн хуулбарлалтыг тодорхойлж зааж өгдөг
|-
|'''Сүлжээний топологын стратеги'''
|Энэхүү сонголтыг ашигласнаар бие даасан өгөгдлийн төв тус бүрийн хуулбарлах хүчин зүйлийг тохируулж болно.
|-
|'''Хуучин сүлжээний топологын стратеги'''
|Энэ бол хуулбарлах уламжлалт стратеги.
|}
Та нэ сонголтыг ашигласнаар commitlog update (шинэчлэлт)-ийг одоогын keyspace дээр хийж өгөхийг Cassandra-д зааж өгөх боломжтой ( KeySpace дээрхи шинэчлэлтүүдэд зориулсан атрибутыг ашиглана гэж Cassandra-д зааж өгнө)Энэ тохируулга заавал байх албагүй бөгөөд анхдагчаар үүнийг үнэн гэж зааж өгсөн байдаг.
''' Жишээ нь:'''
KeySpace үүсгэх жишээг доор харууллаа
* Энд бид TutorialsPoint нэртэй KeySpace үүсгэж байна.
* Бидний ашиглаж буй анхны хуулбарлах стратеги нь энгийн стратеги
* Мөн бид replication factor 1 хуулбарыг сонгож байна
· cqlsh.> CREATE KEYSPACE tutorialspoint
· WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
'''Баталгаа'''
Та хүснэгт үүссэн эсэх эсвэл '''Describe''' командыг ашигласан эсэхийг шалгах бүрэн боломжтой. Хэрэв та энэ командыг keyspaces дээр ашиглавал доор үзүүлсэн шиг бүх үүссэн keyspaces-ийг харуулах болно.
cqlsh> DESCRIBE keyspaces;
tutorialspoint system system_traces
'''tutorialspoint''' нэртэй Keyspace үүссэн байна.
'''2.Durable_writes'''
Хүснэгтийн durable_writes шинж чанаруудыг нь '''үнэн''' гэж тохируулсан байдаг. Гэвч бид үүнийг худал гэж тохируулж болно. Гэхдээ энэ шинж чанарыг '''энгийн стратеги''' тохируулж чадахгүй гэдгийг анхаарна уу.
'''Жишээ нь:'''
Доор үзүүлсэн жишээ нь durable_writes-ийн шинж чанарыг харуулж байна.
cqlsh> CREATE KEYSPACE test
... WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }
... AND DURABLE_WRITES = false;
'''Баталгаа'''
KeySpace-ийн testing хэсэг нь durable_writes шинж чанарыг системийн үндсэн keyspace-д худал, эсвэл үнэн алинаар нь зааж өгснийг шалгадаг.Энэ күэри нь танд KeySpaces-ийн бүх шинж чанаруудыг харуулна
cqlsh> SELECT * FROM system.schema_keyspaces;
keyspace_name | durable_writes | strategy_class | strategy_options
test | False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1" : "3"}
tutorialspoint | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "4"}
system | True | org.apache.cassandra.locator.LocalStrategy | { }
system_traces | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "2"}
(4 rows)
Эндээс KeySpace тестийн durable_writes шинжийг худал гэж тохируулсан болох нь харагдаж байна.
'''Keyspace-ийг ашиглах'''
Та үүсгэсэн KeySpace-ыг '''USE''' гэсэн түлхүүр үгийн тусламжтайгаар ашиглаж болно. Түүний синтакс нь дараах байдалтай байна:
Syntax:USE <identifier>
'''Жишээ нь:'''
Дараах жишээн дээр бид Keyspace '''tutorialspoint'''-ийг ашиглалаа.
cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>
'''Жава API -ийг ашиглана Keyspace үүсгэх'''
Та сэшион класс-ийн '''execute ()''' аргыг ашиглан Keyspace үүсгэж болно.
Java API ашиглан keyspace үүсгэхийн тулд доорх алхмуудыг дагана уу.
-'''Алхам 1: Кластер обектыг үүсгэх'''
Эхлээд '''com.datastax.driver.core''' багцын '''Cluster.builder''' class багцыг үүсгэнэ
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Кластерын '''addContactPoint ()''' аргыг ашиглан харилцах цэг нэмнэ (зангилааны IP хаяг). Энэ арга нь '''Cluster.Builder'''-ийг буцаана
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Шинэ байгуулагч обектыг ашиглан кластерийн объект үүсгэх. Үүнийг хийхийн тулд '''cluster.builder''' классд '''build()''' хэмээх аргыг хэрэглэнэ. Дараах код нь кластерийн объектыг хэрхэн үүсгэхийг харуулж байна
//Building a cluster
Cluster cluster = builder.build();
Кластерийн объектыг дор үзүүлсний дагуу нэг мөрөнд үүсгэж болно.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
-'''Алхам 2: Session объект үүсгэх'''
Session объектыг доорх байдлаар кластерийн '''connect()''' аргыг ашиглан үүсгэж болно.
Session session = cluster.connect( );
Энэ арга нь шинэ session үүсгэж түүнийг эхлүүлнэ. Хэрэв та keyspace- тэй бол нэрийг нь стринг хэлбэрээр оруулна гэдгийг доор харууллаа
Session session = cluster.connect(“ Your keyspace name ” );
'''Алхам 3: Query хайх'''
Та Session классын '''execute()''' аргыг ашиглан '''SQL''' хайлтыг хийж болно.
Күэри нь стринг форматаар болон тайлбар классын обектоор хоёулангаар нь дамжиж байвал '''execute()''' аргыг ашиглана. Харин зөвхөн стринг форматаар дамжиж байвал хайлтыг '''SQLSH''' дээр хийж гүйцэтгэнэ.
Дараах жишээн дээр '''tp''' нэртэй KeySpace үүсгэж байна. Бид эхний хуулбарлалтаар энгийн стратегийг ашиглана, өөрөөр хэлбэл бид replication харьцаагаар 1 хуулбарыг сонгож авна.
Та хүсэлтийн хувьсагчдыг string хэлбэрээр хадгалж доор үзүүлсэн шиг '''execute()''' аргаар дамжуулна.
String query = "CREATE KEYSPACE tp WITH replication "
+ "= {'class':'SimpleStrategy', 'replication_factor':1}; ";
session.execute(query);
'''Алхам4: KeySpace ашиглах'''
Та доор үзүүлсэнчлэн execute () method-ийг ашиглан KeySpace- үүсгэж болно
execute(“ USE tp ” );
Кассандра нь Java API ашиглан keyspace-ийг үүсгэх болон ашиглах програмыг доор харууллаа
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Create_KeySpace {
public static void main(String args[]){
//Query
String query = "CREATE KEYSPACE tp WITH replication "
+ "= {'class':'SimpleStrategy', 'replication_factor':1};";
//creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect();
//Executing the query
session.execute(query);
//using the KeySpace
session.execute("USE tp");
System.out.println("Keyspace created");
}
}
Дээрх програмын нэрийг .java өргөтгөлтэй нэр өгч хадгалаад байгаа байршилаас нь дуудаарай. Доор үзүүлсэн шиг програмыг эмхэтгэж, ажиллуулна.
$javac Create_KeySpace.java
$java Create_KeySpace
Хэвийн нөхцөлд дараах үр дүн гарна
Keyspace created
Keyspace үүссэн байна.
==Кассандра Keyspace-ийг засах==
'''Cqlsh-ийг ашиглана Keyspace-ийг засах'''
'''KEYSPACE Alter''' нь KeySpace-ийн хуулбарлах болон durable_writes зэрэг шинж чанаруудыг ашиглана засалт хийнэ. Энэ командын синтаксыг доор харууллаа.
'''Синтакс:'''
ALTER KEYSPACE <identifier> WITH <properties>
ALTER KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of replicas’};
'''ALTER KEYSPACE'''-ийн шинж чанарууд нь CREATE KEYSPACE-ийн адилаар replication/хуулбарлах/ болон durable_writes гэсэн хоёр шинж чанартай.
'''Durable_writes'''
Та нэ сонголтыг ашигласнаар '''commitlog update''' (шинэчлэлт)-ийг одоогын keyspace дээр хийж өгөхийг Cassandra-д зааж өгнө ( KeySpace дээрхи шинэчлэлтүүдэд зориулсан атрибутыг ашиглана гэж Cassandra-д зааж өгнө)Энэ тохируулга заавал байх албагүй бөгөөд анхдагчаар үүнийг үнэн гэж зааж өгсөн байдаг
'''Жишээ нь'''
KeySpace-ийг өөрчлөх жишээг доор харууллаа
* Энд бид TutorialsPoint нэртэй KeySpace-ийг засаж байна.
* Бид репликацийн харьцааг 1-ээс 3 хүртэл өөрчилж байна
· cqlsh.> ALTER KEYSPACE tutorialspoint
· WITH replication = {'class':'NetworkTopologyStrategy', 'replication_factor' : 3};
'''Durable_writes-г өөрчлөх'''
KeySpace-ийг durablewrites шинж чанарыг ашиглана засаж болно. KeySpace-ийн durablewrites шинж чанарын '''туршилтыг''' доор үзүүлэв.
SELECT * FROM system.schema_keyspaces;
keyspace_name | durable_writes | strategy_class | strategy_options
test | False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1":"3"}
tutorialspoint | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"4"}
system | True | org.apache.cassandra.locator.LocalStrategy | { }
system_traces | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"2"}
(4 rows)
ALTER KEYSPACE test
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3}
AND DURABLE_WRITES = true;
Дахин хэлэхэд KeySpaces-ийн шинж чанарыг шалгахад дараахь үр дүн гарна.
SELECT * FROM system.schema_keyspaces;
keyspace_name | durable_writes | strategy_class | strategy_option
test | True | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1":"3"}
tutorialspoint | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"4"}
system | True | org.apache.cassandra.locator.LocalStrategy | {
system_traces | True | org.apache.cassandra.locator.SimpleStrategy | {"replication_factor":"2"}
'''Java API ашиглан Keyspace-г өөрчлөх'''
session класын '''execute ()''' аргыг ашиглан keyspace-ийг өөрчилж болно. Жава API ашиглан Keyspace- ийг өөрчлөхийн тулд доорх алхмуудыг дагана уу.
'''Алхам 1: Кластер обектыг байгуулах'''
Эхлээд '''com.datastax.driver.core''' багцын '''Cluster.builder''' class багцыг үүсгэнэ үү.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Кластерын '''addContactPoint ()''' аргыг ашиглан харилцах цэг нэмнэ (зангилааны IP хаяг). Энэ арга нь '''Cluster.Builder'''-ийг буцаана
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Шинэ байгуулагч обектыг ашиглан кластерийн объект үүсгэх. Үүнийг хийхийн тулд cluster.builder классд build() хэмээх аргыг хэрэглэнэ. Дараах код нь кластерийн объектыг хэрхэн үүсгэхийг харуулж байна.
//Building a cluster
Cluster cluster = builder.build();
Кластерийн объектыг доор үзүүлсний дагуу нэг мөрөнд үүсгэж болно.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
'''Алхам 2: Session Object үүсгэх'''
Session объектыг доорх байдлаар кластерийн '''connect ()''' аргыг ашиглан үүсгэж болно.
Session session = cluster.connect( );
Энэ арга нь шинэ session үүсгэж түүнийг эхлүүлнэ. Хэрэв та keyspace- тэй бол нэрийг нь стринг хэлбэрээр оруулна гэдгийг доор харууллаа
Session session = cluster.connect(“ Your keyspace name ” );
'''Алхам 3: Query хайх'''
Та Session классын '''execute ()''' аргыг ашиглан '''SQL''' хайлтыг хийж болно.
Күэри нь стринг форматаар болон тайлбар классын обектоор хоёулангаар нь дамжиж байвал '''execute()''' аргыг ашиглана. Харин зөвхөн стринг форматаар дамжиж байвал хайлтыг '''SQLSH''' дээр хийж гүйцэтгэнэ.
Энэ жишээнд
·
* Бид tp нэртэй keyspace-ийг өөрчлөх болно. Бид Энгийн Стратегийг Сүлжээний Топологийн Стратеги болгон өөрчлөх болно
* Бид Durable_writes-ийг нь худал гэж өөрчилнө.
Күэригээ стринг хэлбэрээр хадгалж, үүнийг execute() аргаар дамжуулахыг доор үзүүлэв.
//Query
String query = "ALTER KEYSPACE tp WITH replication " + "= {'class':'NetworkTopologyStrategy', 'datacenter1':3}" +" AND DURABLE_WRITES =
false;";
session.execute(query);
Java API ашиглан Cassandra дахь keycpace-ийг үүсгэх болон ашиглах програмыг доор харууллаа.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Alter_KeySpace {
public static void main(String args[]){
//Query
String query = "ALTER KEYSPACE tp WITH replication " + "= {'class':'NetworkTopologyStrategy', 'datacenter1':3}"
+ "AND DURABLE_WRITES = false;";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect();
//Executing the query
session.execute(query);
System.out.println("Keyspace altered");
}
}
Дээрх програмыг .java өргөтгөлтэй нэрээр хадгалаад дараа нь хадгалагдсан байрлалаас нь дуудна уу. Доор үзүүлсэн шиг хөрвүлэх програмыг ажиллуулна.
$javac Alter_KeySpace.java
$java Alter_KeySpace
Хэвийн нөхцөлд дээрх үр дүн гарна
==Кассандра- Keyspace-ийг устгах==
'''Cqlsh ашиглан Keyspace-ийг устгах'''
Та '''DROP KEYSPACE''' командыг ашиглан KeySpace-г устгаж болно. KeySpace-г устгах синтаксыг доор харууллаа.
'''Syntax'''
DROP KEYSPACE <identifier>
i.e.
DROP KEYSPACE “KeySpace name”
'''Жишээ'''
'''Tutorialpoint''' keyspace-ийг устгах кодыг үзүүллээ.
cqlsh> DROP KEYSPACE tutorialspoint;
'''Баталгаа'''
Keyspace-г засах мөн '''Describe''' команыг ашиглана хүснэгт устсан эсэхийг шалгаж байгааг харуулж байна.
cqlsh> DESCRIBE keyspaces;
system system_traces
Бид keyspace tutorialspoint-ийг устгасны дараа keyspace жагсаалтыг олж болохгүй.
'''Java API ашиглан Keyspace-г устгах'''
Та сэшион класс-ийн execute () аргыг ашиглан Keyspac-г устгаж болно.
Java API ашиглан keyspace устгахын тулд доорх алхмуудыг дагана уу.
'''Алхам1: Кластер обектыг үүсгэх'''
Эхлээд '''com.datastax.driver.core''' багцын '''Cluster.builder''' class багцыг үүсгэнэ
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
'''Алхам 2'': Session объект үүсгэх'''
Session объектыг доорх байдлаар кластерийн '''connect ()''' аргыг ашиглан үүсгэж болно.
Session session = cluster.connect( );
Энэ арга нь шинэ '''session''' үүсгэж түүнийг эхлүүлнэ. Хэрэв та keyspace- тэй бол нэрийг нь стринг хэлбэрээр оруулна гэдгийг доор харууллаа
Session session = cluster.connect(“ Your keyspace name ” );
'''Алхам 3'': Query хайх'''
Та Session классын execute () аргыг ашиглан '''SQL''' хайлтыг хийж болно.
Күэри нь стринг форматаар болон тайлбар классын обектоор хоёулангаар нь дамжиж байвал '''execute()''' аргыг ашиглана. Харин зөвхөн стринг форматаар дамжиж байвал хайлтыг '''SQLSH''' дээр хийж гүйцэтгэнэ.
Энэ жишээн дээр '''tp''' нэртэй KeySpace-г устгаж байна.
Та хүсэлтийн хувьсагчдыг '''string''' хэлбэрээр хадгалж доор үзүүлсэн шиг execute() аргаар дамжуулна.
String query = "DROP KEYSPACE tp; ";
session.execute(query);
Кассандра нь '''Java API''' ашиглан keyspace-ийг устгах програмыг доор харууллаа
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Drop_KeySpace {
public static void main(String args[]){
//Query
String query = "Drop KEYSPACE tp";
//creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect();
//Executing the query
session.execute(query);
System.out.println("Keyspace deleted");
}
}
Дээрх програмын нэрийг .java өргөтгөлтэй нэр өгч хадгалаад байгаа байршилаас нь дуудаарай. Доор үзүүлсэн шиг програмыг эмхэтгэж, ажиллуулна.
$javac Delete_KeySpace.java
$java Delete_KeySpace
Хэвийн нөхцөлд дээрх үр дүн гарна.
== <nowiki>'''</nowiki>Кассандра-Хүснэгт үүсгэх<nowiki>'''</nowiki> ==
Cqlsh ашиглан хүснэгт үүсгэх
Та CREATE TABLE командыг ашиглан хүснэгт үүсгэж болно. Доорх хүснэгтийг үүсгэх синтакс<nowiki>'''Syntax'''</nowiki> бол
<nowiki>--~~~~Синтакс</nowiki>
CREATE (TABLE | COLUMNFAMILY) <tablename>
('<column-definition>' , '<column-definition>')
(WITH <option> AND <option>)
Багана тодорхойлох
Та доор үзүүлсэн шиг баганыг тодорхойлж болно.
column name1 data type,
column name2 data type,
example:
age int,
name text
Хүүхдийн түлхүүр
Анхдагч түлхүүр нь мөрийг танихад хэрэглэгддэг багана юм. Тиймээс хүснэгт үүсгэхдээ гол санааг тодорхойлох нь заавал байх ёстой. Анхны түлхүүр нь нэг буюу хэд хэдэн баганын баганаар хийгддэг. Та дор үзүүлсэн шиг хүснэгтийн үндсэн түлхүүрийг тодорхойлж болно.
CREATE TABLE tablename(
column1 name datatype PRIMARYKEY,
column2 name data type,
column3 name data type.
)
эсвэл
CREATE TABLE tablename(
column1 name datatype PRIMARYKEY,
column2 name data type,
column3 name data type,
PRIMARY KEY (column1)
)
Жишээ нь:
Доорхи жишээнээс харахад cqlsh ашиглан Cassandra дахь хүснэгт үүсгэх жишээ юм. Бид энд байна:
.Зааварчилгааны түлхүүр үг ашиглах
.Цонх гэж нэрлэгдсэн хүснэгт үүсгэх
Энэ нь ажилтны нэр, дугаар, хот, цалин, утасны дугаар гэх мэт дэлгэрэнгүй мэдээллийг агуулсан болно. Ажилчдын ID бол үндсэн түлхүүр юм.
cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>; CREATE TABLE emp(
emp_id int PRIMARY KEY,
emp_name text,
emp_city text,
emp_sal varint,
emp_phone varint
);
Баталгаажуулалт
Сонгогдсон мэдэгдэл танд схемийг өгөх болно. Доор харуулсан шиг сонгогдсон мэдэгдлийг ашиглан хүснэгтийг шалгана уу.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
<nowiki>--------</nowiki>+----------+----------+-----------+---------
(0 rows)
Орчуулах
Here you can observe the table created with the given columns. Since we have deleted the keyspace tutorialspoint, you will not find it in the keyspaces list.
Creating a Table using Java API
You can create a table using the execute() method of Session class. Follow the steps given below to create a table using Java API.
Энд байгаа багануудтай үүсгэсэн хүснэгтийг ажиглаж болно. Бид зааж өгсөн түлхүүр үгнүүдийг устгасан тул та түлхүүрүүдийг жагсаалтад оруулахгүй.
Java API ашиглан Хүснэгт үүсгэх
Та хичээл ангийн execute () аргыг ашиглан хүснэгт үүсгэж болно. Java API ашиглан хүснэгт үүсгэхийн тулд доорх алхмуудыг дагана уу.
Алхам1: Бүлгийн бүлгийг үүсгэх
Юуны өмнө, доор үзүүлсэн шиг com.datastax.driver.core багцын Cluster.builder class багцыг үүсгэ.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Кластерын addContactPoint () аргыг ашиглан холбоо барих цэг (цэгийн IP хаяг) нэмнэ. Энэ арга нь Cluster.Builder-ийг буцаана.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Шинэ бүтээх объектыг ашиглан кластерийн объект үүсгэнэ. Үүнийг хийхийн тулд кластерт бий болгох бүтээлд () бий. Дараах код нь кластерийн объектыг хэрхэн үүсгэхийг харуулж байна.
//Building a cluster
Cluster cluster = builder.build();
Кластерийн объектыг дор үзүүлсний дагуу нэг мөр кодыг ашиглан үүсгэж болно.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Алхам 2: Session Object үүсгэнэ үү
Бүлгийн объектыг доор үзүүлсэн шиг кластерийн холболтын () аргыг ашиглан үүсгэнэ.
Session session = cluster.connect( );
Энэ арга нь шинэ сесс үүсгэж түүнийг эхлүүлнэ. Хэрвээ та аль хэдийнээ зайтай байгаа бол, үүнийг доорх байдлаар харуулсан форматыг ашиглана.
Session session = cluster.connect(“ Your keyspace name ” );
Энд бид tp нэртэй түлхүүр зай ашигладаг. Тиймээс доор үзүүлсэн шиг сесс объектыг үүсгэ.
Session session = cluster.connect(“ tp” );
Алхам 3: Query хайх
Та CQL хайлтыг Session классын execute () аргыг ашиглан гүйцэтгэж болно. Хайлтын мөрийг форматаар эсвэл Тайлбар ангийн объектыг гүйцэтгэх () аргыг ашиглаж болно. Хэрвээ та энэ арганд энэ аргыг ашигласан бол cqlsh дээр ажиллуулна.
Дараах жишээнд бид нэртэй хүснэгт үүсгэж байна. Та хүсэлтийг string хувьсагчид хадгалж доор үзүүлсэн шиг гүйцэтгэх () аргаар үүнийг дамжуулна.
//Query
String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
+ "emp_name text, "
+ "emp_city text, "
+ "emp_sal varint, "
+ "emp_phone varint );";
session.execute(query);
Доорх нь Java API ашиглан Cassandra дахь түлхүүр талбарыг үүсгэх, ашиглах бүрэн програм юм.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Create_Table {
public static void main(String args[]){
//Query
String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
+ "emp_name text, "
+ "emp_city text, "
+ "emp_sal varint, "
+ "emp_phone varint );";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//Executing the query
session.execute(query);
System.out.println("Table created");
}
}
Дээрх програмыг клиентийн нэрээр хадгалаад дараа нь .java хадгалж байгаа байршлаасаа хайгаарай. Доор үзүүлсэн шиг програмыг эмхэтгэж, ажиллуулна.
$javac Create_Table.java
$java Create_Table
Хэвийн нөхцөлд дараах үр дүн гарна:
Table created
== <nowiki>'''</nowiki>Кассандра-Өөрчлөлт Хүснэгт<nowiki>'''</nowiki> ==
Cqlsh ашиглан хүснэгтийг өөрчлөх нь
Та ALTER TABLE командыг ашиглан хүснэгтийг өөрчилж болно. Доорх хүснэгтийг үүсгэх синтакс бол
Syntax
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
ALTER командыг ашиглан та дараах үйлдлүүдийг хийж болно:
Багана нэмэх
Багана хая
Багана нэмэх
ALTER командыг ашиглан та баганыг хүснэгтэд нэмэх боломжтой. Багана нэмэх үед баганын нэр нь одоо байгаа баганын нэртэй зөрчилдөхгүй бөгөөд хүснэгтийг компакт хадгалалтын сонголтоор тодорхойлоогүй гэдгийг анхаарах хэрэгтэй. Доорхи хүснэгтэд баганыг нэмэх синтакс байна.
ALTER TABLE table name
ADD new column datatype;
Жишээ нь
Доорхи жишээнд үзүүлсэн багананд багана нэмэх жишээ байна. Энд бид текст өгөгдлийн emp_email нэртэй багана-д emp гэж нэрлэгдсэн хүснэгтэд нэмэх болно.
cqlsh:tutorialspoint> ALTER TABLE emp
... ADD emp_email text;
Баталгаажуулалт
Багана нэмэгдсэн эсэхийг магадлахын тулд SELECT мэдэгдлийг ашиглана уу. Энд шинээр нэмсэн баганад emp_email ажиглаж болно.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
<nowiki>--------</nowiki>+----------+-----------+----------+-----------+---------
Emp_email багана устгагдсан болохоор та үүнийг дахиж олохгүй.
Java API ашиглан Хүснэгтийг өөрчлөх нь
Та хичээл ангийн execute () аргыг ашиглан хүснэгт үүсгэж болно. Java API ашиглан хүснэгтийг өөрчлөхийн тулд доорх алхмуудыг дагана уу.
Алхам1: Бүлгийн бүлгийг үүсгэх
Юуны өмнө, доор үзүүлсэн шиг com.datastax.driver.core багцын Cluster.builder class-ийн жишээг үүсгэ.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Кластерын addContactPoint () аргыг ашиглан холбоо барих цэг (цэгийн IP хаяг) нэмнэ. Энэ арга нь Cluster.Builder-ийг буцаана.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Шинэ бүтээх объектыг ашиглан кластерийн объект үүсгэнэ. Үүнийг хийхийн тулд кластерт бий болгох бүтээлд () бий. Дараах код нь кластерийн объектыг хэрхэн үүсгэхийг харуулж байна.
//Building a cluster
Cluster cluster = builder.build();
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Алхам 2: Session Object үүсгэнэ үү
Бүлгийн объектыг доор үзүүлсэн шиг кластерийн холболтын () аргыг ашиглан үүсгэнэ.
Session session = cluster.connect( );
Энэ арга нь шинэ сесс үүсгэж түүнийг эхлүүлнэ. Хэрэв та аль хэдийн түлхүүр зайтай бол, үүнийг доорх байдлаар харуулсан форматаар KeySpace нэрийг string хэлбэрээр дамжуулж өгч болно.
ession session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );
Энд бид tp нэртэй KeySpace ашиглаж байна. Тиймээс доор үзүүлсэн шиг сесс объектыг үүсгэ.
Алхам 3: Query хайх
Та CQL хайлтыг Session классын execute () аргыг ашиглан гүйцэтгэж болно. Хайлтын мөрийг форматаар эсвэл Тайлбар ангийн объектыг гүйцэтгэх () аргыг ашиглаж болно. Хэрвээ та энэ арганд энэ аргыг ашигласан бол cqlsh дээр ажиллуулна.
Дараах жишээнд бид баганыг хоосон хүснэгтэнд нэмнэ. Үүнийг хийхийн тулд та асуулгыг хувьсагчийн мөрөнд хадгалж доор үзүүлсэн шиг гүйцэтгэх () аргаар үүнийг дамжуулна.
//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);
Доорхи хүснэгтэд баганыг нэмэх бүрэн програм юм.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Add_column {
public static void main(String args[]){
//Query
String query = "ALTER TABLE emp ADD emp_email text";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//Executing the query
session.execute(query);
System.out.println("Column added");
}
}
Дээрх програмыг клиентийн нэрээр хадгалаад дараа нь .java хадгалж байгаа байршлаасаа хайгаарай. Доор үзүүлсэн шиг програмыг эмхэтгэж, ажиллуулна.
$javac Add_Column.java
$java Add_Column
Хэвийн нөхцөлд дараах үр дүн гарна:
Column added
Багана устгах
Доорхи хүснэгтэд байгаа баганыг устгах бүрэн програмыг хэлнэ.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Delete_Column {
public static void main(String args[]){
//Query
String query = "ALTER TABLE emp DROP emp_email;";
//Creating Cluster object
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//executing the query
session.execute(query);
System.out.println("Column deleted");
}
}
Дээрх програмыг клиентийн нэрээр хадгалаад дараа нь .java хадгалж байгаа байршлаасаа хайгаарай. Доор үзүүлсэн шиг програмыг эмхэтгэж, ажиллуулна.
$javac Delete_Column.java
$java Delete_Column
Хэвийн нөхцөлд дараах үр дүн гарна:
Column deleted
== <nowiki>'''</nowiki>Кассандра-Устгах хүснэгт<nowiki>'''</nowiki> ==
Cqlsh ашиглан хүснэгтийг буулгана
Та дугаарын хүснэгтийг ашиглан хүснэгтийг унагаж болно. Түүний синтакс нь дараах байдалтай байна:
Syntax
DROP TABLE <tablename>
Жишээ нь
Дараах код нь одоо байгаа хүснэгтийг KeySpace-с оруулдаг.
cqlsh:tutorialspoint> DROP TABLE emp;
Баталгаажуулалт
Бичгийн командыг ашиглан хүснэгт устгагдсан эсэхийг шалгана уу. Эм хүснэгтийг устгасан тул багануудын гэр бүлийн жагсаалтад үүнийг олохгүй.
cqlsh:tutorialspoint> DESCRIBE COLUMNFAMILIES;
employee
Java API ашиглан Хүснэгтийг устгах нь
Та хичээл ангийн execute () аргыг ашиглан хүснэгтийг устгаж болно. Java API ашиглан хүснэгтийг устгахын тулд доорх алхмуудыг дагана уу.
Алхам1: Бүлгийн бүлгийг үүсгэх
Юуны өмнө com.datastax.driver.core багцын Cluster.builder class багцыг доор үзүүлэв:
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Кластерын addContactPoint () аргыг ашиглан холбоо барих цэг (цэгийн IP хаяг) нэмнэ. Энэ арга нь Cluster.Builder-ийг буцаана.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Using the new builder object, create a cluster object. To do so, you have a method called build() in the Cluster.Builder class. The following code shows how to create a cluster object.
//Building a cluster
Cluster cluster = builder.build();
Кластерийн объектыг дор үзүүлсний дагуу нэг мөр кодыг ашиглан үүсгэж болно.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Алхам 2: Session Object үүсгэнэ үү
Бүлгийн объектыг доор үзүүлсэн шиг кластерийн холболтын () аргыг ашиглан үүсгэнэ.
Session session = cluster.connect( );
Энэ арга нь шинэ сесс үүсгэж түүнийг эхлүүлнэ. Хэрэв та аль хэдийн түлхүүр зайтай бол, үүнийг доорх байдлаар харуулсан форматаар KeySpace нэрийг string хэлбэрээр дамжуулж өгч болно.
Session session = cluster.connect(“Your keyspace name”);
Энд бид tp нэртэй түлхүүр зай ашигладаг. Тиймээс доор үзүүлсэн шиг сесс объектыг үүсгэ.
Session session = cluster.connect(“tp”);
Алхам 3: Query хайх
Та CQL асуулгуудыг execute () Session class аргыг ашиглан гүйцэтгэж болно. Хайлтын мөрийг форматаар эсвэл Тайлбар ангийн объектыг гүйцэтгэх () аргыг ашиглаж болно. Хэрвээ та энэ арганд энэ аргыг ашигласан бол cqlsh дээр ажиллуулна.
Дараах жишээнд бид нэртэй хүснэгтийг устгаж байна. Та хүсэлтийг string хувьсагчид хадгалж доор үзүүлсэн шиг гүйцэтгэх () аргаар үүнийг дамжуулна.
// Query
String query = "DROP TABLE emp1;”;
session.execute(query);
Доорх нь Java API ашиглан Кассандра дахь хүснэгтийг унагаах бүрэн програм юм.
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
public class Drop_Table {
public static void main(String args[]){
//Query
String query = "DROP TABLE emp1;";
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//Creating Session object
Session session = cluster.connect("tp");
//Executing the query
session.execute(query);
System.out.println("Table dropped");
}
}
Дээрх програмыг клиентийн нэрээр хадгалаад дараа нь .java хадгалж байгаа байршлаасаа хайгаарай. Доор үзүүлсэн шиг програмыг эмхэтгэж, ажиллуулна.
$javac Drop_Table.java
$java Drop_Table
Хэвийн нөхцөлд дараахь үр дүн гарна:
Table dropped
Кассандра 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.