Apache Cassandra 集合資料型別
在我們學習Cassandra的過程中,我們將學習Cassandra集合資料型別的教程。我們將學習Cassandra的集合資料型別。它們與C、C++等語言中的陣列和結構體意義相同。
此外,我們將討論使用列表、集合和對映的Cassandra集合資料型別。
因此,讓我們開始學習Cassandra集合資料型別。
Cassandra的集合資料型別
在Cassandra中,集合資料型別本質上是一個儲存多個值的容器。通常,Cassandra-CQL集合資料型別由單個變數定義。這個變數本身具有多個值。
列表、集合和對映是一些集合資料型別。在這些Cassandra集合資料型別上,可以執行許多操作。其中包括建立、插入、更新和驗證操作。
a) Cassandra列表
此資料型別的值以列表形式儲存。此列表包含單個值的多個副本。對於列表資料型別,只有一個規則。
元素不能按順序修改。在將值儲存到列表後,元素會獲得一個特定的索引。可以使用這些索引來獲取值。
i) 建立表
在Cassandra中,使用者可以使用CREATE TABLE命令來建立一個包含列表資料型別的表。表中可以有多個列。表建立語法如下:
cqlsh:<keyspace>>CREATE TABLE <table name>(column1 PRIMARY KEY,column2 list <data type>,column3 list <data type>,.....);
為“大學生”構建一個包含姓名、註冊號和專業的表。
cqlsh> USE keyspace1; cqlsh:keyspace1> CREATE TABLE employee ... (EN int, ... NAME text, ... EMAIL LIST, ... PRIMARY KEY(EN), ... );
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
|
|
|
ii) 插入
使用者可以使用INSERT INTO命令向表中新增元素。每個包含在方括號中的值都用逗號分隔。語法如下:
cqlsh:<keyspace>> INSERT INTO <table name>(column1, column2, column3,....) VALUES('R1value1',['R1value1','R1value2','R1value3'...]['R1value11','R1value12','R1value13'...]...);
示例
cqlsh:keyspace1> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(001,'hardik',{'hardi@gmail.com'}); cqlsh:keyspace1> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(002,'Ajites',{'ajit@mail.com'}); cqlsh:keyspace1> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(003,'Pushpa',{'tears@mail.com'});
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
001 |
hardik |
hardi@gmail.com |
002 |
Ajites |
ajit@mail.com |
003 |
Pushpa |
tears@mail.com |
iii) 更新
Cassandra的UPDATE命令用於更新表中某些列的值。更新語法如下:
cqlsh:<keyspace> UPDATE<table name> SET <column2>=<column2>+['value'] where <column1>='some value';
示例
cqlsh:keyspace2>UPDATE college student SET EMAIL=EMAIL+['hardikgupta.1@gmail.com'] where EN=001;
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
001 |
hardik |
hardikgupta.1@gmail.com |
002 |
Ajites |
ajit@mail.com |
003 |
Pushpa |
tears@mail.com |
b) Cassandra集合
使用者可以使用SET Cassandra集合資料型別來儲存一組元素。執行後,集合的元素將以排序方式返回。
i. 建立表
使用者可以使用Construct命令及以下語法來建立一個包含集合的表。
cqlsh:<keyspace> CREATE TABLE<table name> (column1 PRIMARY KEY, column2 set <data type>, column3 set <data type>.....);
示例
為“大學生”構建一個包含姓名、註冊號和專業的表。
cqlsh> USE keyspace2; cqlsh:keyspace2> CREATE TABLE employee ... (EN int, ... NAME text, ... EMAIL LIST<text>, ... PRIMARY KEY(EN), ... );
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
|
|
|
ii. Cassandra插入
使用INSERT INTO命令及以下語法將值插入集合。
cqlsh:<keyspace>> INSERT INTO <table name>(column1, column2, column3...) VALUES('R1value',{'R1value1', 'R1value2',..},{ 'R1value11', 'R1value12',..}....);
示例
> cqlsh:keyspace2> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(001,'hardik',{'hardi@gmail.com'}); cqlsh:keyspace2> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(002,'Ajites',{'ajit@mail.com'}); cqlsh:keyspace2> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(003,'Pushpa',{'tears@mail.com'});
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
001 |
hardik |
hardi@gmail.com |
002 |
Ajites |
ajit@mail.com |
003 |
Pushpa |
tears@mail.com |
iii. Cassandra更新
使用者可以使用此語法更新集合中的內容。
cqlsh:<keyspace>>UPDATE <table name> SET <column2>=<column2>+['value'] where <column1>='some value';
示例
cqlsh:keyspace2>UPDATE college student SET EMAIL=EMAIL+['hardikgupta.1@gmail.com'] where EN=001;
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
001 |
hardik |
hardikgupta.1@gmail.com |
002 |
Ajites |
ajit@mail.com |
003 |
Pushpa |
tears@mail.com |
c) Cassandra對映
對映是一種Cassandra集合資料型別,它儲存鍵值對。
i. 建立表
使用者可以使用Construct命令及以下語法來建立一個包含對映的表。
cqlsh:<keyspace> CREATE TABLE<table name> (column1 PRIMARY KEY, column2 map <type, data type>, column3 map <type, data type>.....);
為“大學生”構建一個包含姓名、註冊號和專業的表。
cqlsh> USE keyspace3; cqlsh:keyspace3> CREATE TABLE employee ... (EN int, ... NAME text, ... EMAIL LIST, ... PRIMARY KEY(EN), ... );
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
|
|
|
ii. 插入
使用INSERT INTO命令及以下語法將值插入對映。
cqlsh:<keyspace>> INSERT INTO <table name>(column1, column2, column3...) VALUES('R1value',{'R1value1':'R1value1' ,R1value2:'R1value01',..},{ 'R1value11':'R1value011','R1value12':'R1value012',..}....);
示例
cqlsh:keyspace3> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(001,'hardik',{'hardi@gmail.com'}); cqlsh:keyspace3> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(002,'Ajites',{'ajit@mail.com'}); cqlsh:keyspace3> INSERT INTO college student (EN, NAME, EMAIL) ... VALUES(003,'Pushpa',{'tears@mail.com'});
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
001 |
hardik |
hardi@gmail.com |
002 |
Ajites |
ajit@mail.com |
003 |
Pushpa |
tears@mail.com |
iii. 更新
使用者可以使用此方法修改集合的內容。
cqlsh:<keyspace>>UPDATE <table name> SET <column2>=<column2>+['value1':'value2'] where <column1>='some value';
示例
cqlsh:keyspace3>UPDATE college student SET EMAIL=EMAIL+['hardikgupta.1@gmail.com'] where EN=001;
輸出
學號 |
姓名 |
郵箱 |
---|---|---|
001 |
hardik |
hardikgupta.1@gmail.com |
002 |
Ajites |
ajit@mail.com |
003 |
Pushpa |
tears@mail.com |
結論
這些是Apache Cassandra中的三種集合資料型別。透過Cassandra集合可以輕鬆進行任務管理。集合允許儲存多個專案。