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集合可以輕鬆進行任務管理。集合允許儲存多個專案。

更新於:2023年4月6日

瀏覽量:153

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告