Module 03 · Introducing Apache Cassandra: An Open-Source NoSQL Database
CQL Data TypesCassandra 查询语言(CQL)数据类型介绍
欢迎观看关于 Cassandra 查询语言(CQL)数据类型 的视频。在本视频中,您将能够:
- 描述 CQL 中的主要数据类型,
- 解释如何在定义 Cassandra 表时使用这些数据类型,
- 描述集合数据类型和用户自定义数据类型(UDTs)的角色。
CQL 数据类型分类
CQL 提供了多种数据类型,主要可以分为三类:
- 内置数据类型(Built-in Data Types)
- 集合数据类型(Collection Data Types)
- 用户自定义数据类型(User-defined Data Types, UDTs)
用户可以根据应用需求和数据模型选择适合的数据类型。
内置数据类型
内置数据类型 是 Cassandra 预定义的基本数据类型,用户可以直接使用它们。
- 常见数据类型:包括 ASCII、布尔值(Boolean)、十进制(Decimal)、双精度(Double)、浮动(Float)、整数(Int)、文本(Text)等。
- BLOB 数据类型:用于存储二进制大对象(Binary Large Object)。通常用于存储图像、音频或其他多媒体文件。建议每个 BLOB 的大小不要超过 1MB。
- BIGINT 数据类型:用于存储 64 位有符号长整数,比 Int 类型能够存储更大的整数。
- VARCHAR 数据类型:用于表示 UTF8 编码的字符串。
集合数据类型
Cassandra 提供了三种 集合数据类型,用于将多个数据项存储在同一列中,避免了传统关系型数据库中的多对多关系。集合数据类型包括:
- List:表示一个有序的元素集合。适用于需要保持元素顺序的场景,如日志条目。
- Map:表示一个键值对集合。适用于存储键值对数据,如记录日期和文本的条目。
- Set:表示一个无序的元素集合,元素会按顺序返回。适用于存储不重复的元素,例如一组电子邮件地址。
使用 List 类型
假设我们要在 用户表 中添加一个新的列,叫做 jobs,它表示用户的工作经历。我们使用 List 数据类型来存储这些工作信息,并保持它们的顺序。
- 插入工作:我们可以在列表的开始、末尾或指定位置插入工作记录。
- 查询:通过
SELECT查询,我们可以查看当前用户的工作经历。

ALTER TABLE users ADD jobs list<text>;
INSERT INTO users (id, jobs) VALUES (1, ['Developer']);
用户自定义数据类型(UDTs)
用户自定义数据类型(UDTs)允许用户将多个字段组合成一个数据类型,可以将其应用于 Cassandra 表中的列。UDTs 适用于表示一对一关系。
创建用户自定义数据类型(UDT)
例如,我们可以创建一个 地址 数据类型,包含 街道、城市 和 邮政编码 等字段。创建 UDT 后,可以将其用作表中的一列,允许对这些字段进行操作。
CREATE TYPE address (street text, city text, zip_code text);
CREATE TABLE users (id int PRIMARY KEY, address frozen<address>);
frozen<address>:表示将 地址 数据类型作为一个不可变的集合存储。
修改或删除 UDT
您还可以修改或删除用户自定义数据类型的字段,或者删除整个数据类型。
总结
通过本视频,您学习了:
- Cassandra 支持 内置数据类型、集合数据类型 和 用户自定义数据类型。
- 集合数据类型 包括 List、Map 和 Set,可以模拟一对多关系。
- 用户自定义数据类型(UDTs)用于模拟一对一关系,可以将多个字段组合到单个列中。
- 使用这些数据类型,您可以根据数据模型的需要更好地组织和存储数据。