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',{'[email protected]'});
cqlsh:keyspace1> INSERT INTO college student (EN, NAME, EMAIL)
                        ... VALUES(002,'Ajites',{'[email protected]'});
cqlsh:keyspace1> INSERT INTO college student (EN, NAME, EMAIL)
                        ... VALUES(003,'Pushpa',{'[email protected]'});

输出

学号

姓名

邮箱

001

hardik

[email protected]

002

Ajites

[email protected]

003

Pushpa

[email protected]

iii) 更新

Cassandra的UPDATE命令用于更新表中某些列的值。更新语法如下:

cqlsh:<keyspace> UPDATE<table name>
SET <column2>=<column2>+['value']
where <column1>='some value';

示例

cqlsh:keyspace2>UPDATE college student
SET EMAIL=EMAIL+['[email protected]']
where EN=001;

输出

学号

姓名

邮箱

001

hardik

[email protected]

002

Ajites

[email protected]

003

Pushpa

[email protected]

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',{'[email protected]'});
cqlsh:keyspace2> INSERT INTO college student (EN, NAME, EMAIL)
                        ... VALUES(002,'Ajites',{'[email protected]'});
cqlsh:keyspace2> INSERT INTO college student (EN, NAME, EMAIL)
                        ... VALUES(003,'Pushpa',{'[email protected]'});

输出

学号

姓名

邮箱

001

hardik

[email protected]

002

Ajites

[email protected]

003

Pushpa

[email protected]

iii. Cassandra更新

用户可以使用此语法更新集合中的内容。

cqlsh:<keyspace>>UPDATE <table name>
SET <column2>=<column2>+['value']
where <column1>='some value';

示例

cqlsh:keyspace2>UPDATE college student
SET EMAIL=EMAIL+['[email protected]']
where EN=001;

输出

学号

姓名

邮箱

001

hardik

[email protected]

002

Ajites

[email protected]

003

Pushpa

[email protected]

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',{'[email protected]'});
cqlsh:keyspace3> INSERT INTO college student (EN, NAME, EMAIL)
                        ... VALUES(002,'Ajites',{'[email protected]'});
cqlsh:keyspace3> INSERT INTO college student (EN, NAME, EMAIL)
                        ... VALUES(003,'Pushpa',{'[email protected]'});

输出

学号

姓名

邮箱

001

hardik

[email protected]

002

Ajites

[email protected]

003

Pushpa

[email protected]

iii. 更新

用户可以使用此方法修改集合的内容。

cqlsh:<keyspace>>UPDATE <table name>
SET <column2>=<column2>+['value1':'value2']
where <column1>='some value';

示例

cqlsh:keyspace3>UPDATE college student
SET EMAIL=EMAIL+['[email protected]']
where EN=001;

输出

学号

姓名

邮箱

001

hardik

[email protected]

002

Ajites

[email protected]

003

Pushpa

[email protected]

结论

这些是Apache Cassandra中的三种集合数据类型。通过Cassandra集合可以轻松进行任务管理。集合允许存储多个项目。

更新于:2023年4月6日

浏览量:153

启动您的职业生涯

通过完成课程获得认证

开始
广告