Cassandra 教程

什么是 Apache Cassandra?

Cassandra 是一种分布式数据库管理系统,旨在处理商品服务器上的大量结构化数据。

Cassandra 凭借其分布式架构处理大量数据。数据被放置在不同的机器上,具有多个复制因子,这提供了高可用性,并且没有单点故障。

在下图中,圆圈是 Cassandra 节点,圆圈之间的线表示分布式架构,而客户端正在向节点发送数据。

Cassandra Database Tutorial for Beginners: Learn in 3 Days

Cassandra 课程提纲

简介

👉 第 1 课 安装 Cassandra — 如何在 Windows 上下载和安装 Cassandra
👉 第 2 课 Cassandra 架构和复制因子策略 — 综合指南
👉 第 3 课 Cassandra 数据模型 — 通过简单示例学习

高级内容

👉 第 1 课 Cassandra 键空间 — 通过示例在 Cassandra 中创建、修改和删除键空间
👉 第 2 课 Cassandra 表 — 创建、修改、删除和截断(附示例)
👉 第 3 课 Cassandra 查询语言 (CQL) — 插入、更新、删除(示例)
👉 第 4 课 在 Cassandra 中创建和删除索引 — 通过示例学习
👉 第 5 课 Cassandra CQL 数据类型和使用 TTL 的数据过期 — 通过示例学习
👉 第 6 课 Cassandra 集合 — Set、List、Map 附示例
👉 第 7 课 Cassandra 集群设置 — 多节点集群设置
👉 第 8 课 DataStax DevCenter & OpsCenter 安装 — 分步指南
👉 第 9 课 Cassandra 安全 — 使用 JMX 创建用户和认证

必须知道!

👉 第 1 课 Cassandra 面试问题 — 23 个热门 Cassandra 面试问答
👉 第 2 课 Cassandra 教程 PDF — 下载面向初学者的 Cassandra 教程 PDF

Cassandra 历史

  • Cassandra 最初由 Facebook 为收件箱搜索开发。
  • Facebook 于 2008 年 7 月将其开源。
  • Apache 孵化器于 2009 年 3 月接受了 Cassandra。
  • 自 2010 年 2 月以来,Cassandra 一直是 Apache 的顶级项目。
  • Apache Cassandra 的最新版本是 3.2.1。

首先,让我们了解 NoSQL 数据库是什么。

Nosql Cassandra 数据库

NoSQL 数据库被称为“不仅仅是 SQL”或“非关系型”数据库。NoSQL 数据库以表格关系以外的方式存储和检索数据,例如关系数据库。

NoSQL 数据库包括 MongoDB、HBase 和 Cassandra。

NoSQL 数据库具有以下特性。

  • 设计简洁
  • 水平扩展
  • 高可用性

Cassandra 中使用的数据结构比关系数据库中使用的更具体。Cassandra 数据结构比关系数据库结构更快。

NoSQL 数据库越来越多地用于大数据和实时网络应用。NoSQL 数据库有时被称为不仅仅是 SQL ,即它们可能支持类似 SQL 的查询语言。

NoSQL Cassandra 数据库与关系数据库

以下是关系数据库和 NoSQL 数据库的表格格式差异。

关系数据库 NoSQL 数据库
处理低速传入数据 处理高速传入数据
数据来自一个或少数几个位置 数据来自许多位置
管理结构化数据 管理结构化、非结构化和半结构化数据。
支持复杂事务(带连接) 支持简单事务
具有故障转移的单点故障 无单点故障
处理中等量数据。 处理非常大量数据
集中式部署 分布式部署
事务写入一个位置 事务写入多个位置
提供读取可伸缩性 提供读写可伸缩性
垂直部署 水平部署

Apache Cassandra 特性

Cassandra 提供以下特性。

  • 大规模可扩展架构:Cassandra 采用无主设计,所有节点处于同一级别,提供操作简单性和易于扩展。
  • 无主架构:数据可以在任何节点上读写。
  • 线性扩展性能:随着节点数量的增加,Cassandra 的性能也随之提高。
  • 无单点故障:Cassandra 将数据复制到不同的节点上,确保没有单点故障。
  • 故障检测和恢复:故障节点可以轻松恢复。
  • 灵活动态数据模型:支持具有快速写入和读取的数据类型。
  • 数据保护:通过提交日志设计和内置安全(如备份和恢复机制)保护数据。
  • 可调数据一致性:支持分布式架构中的强数据一致性。
  • 多数据中心复制:Cassandra 提供跨多个数据中心复制数据的功能。
  • 数据压缩:Cassandra 可以将数据压缩高达 80% 而没有任何开销。
  • Cassandra 查询语言:Cassandra 提供类似于 SQL 语言的查询语言。这使得关系数据库开发人员从关系数据库迁移到 Cassandra 变得非常容易。

Cassandra 用例/应用

Cassandra 是一种非关系数据库,可用于不同类型的应用。以下是一些应优先选择 Cassandra 的用例。

  • 消息传递Cassandra 对于提供移动电话和消息服务的公司来说是一个很棒的数据库。这些公司拥有大量数据,因此 Cassandra 最适合它们。
  • 物联网应用Cassandra 对于数据从不同设备或传感器以非常高的速度传入的应用来说是一个很棒的数据库。
  • 产品目录和零售应用Cassandra 被许多零售商用于耐用的购物车保护和快速产品目录输入和输出。
  • 社交媒体分析和推荐引擎Cassandra 对于许多在线公司和社交媒体提供商来说是一个很棒的数据库,用于分析和向其客户提供推荐。