Cassandra 架构

Cassandra的设计目的是处理跨多个节点的大数据工作负载,而没有任何单点故障

Cassandra中的数据复制:

集群中的一个或多个节点充当给定数据片段的副本。如果检测到一些节点以过期值响应,Cassandra将向客户端返回最近的值。返回最新的值后,Cassandra在后台执行读修复以更新失效值。

Cassandra在后台使用Gossip协议,允许节点相互通信并检测集群中的任何故障节点。

Cassandra的组件

  • 节点 - 它是存储数据的地方。

  • 数据中心 - 它是相关节点的集合。

  • 集群 - 集群是包含一个或多个数据中心的组件。

  • 提交日志 - 提交日志是Cassandra中的崩溃恢复机制。每个写操作都写入提交日志。

  • Mem- - mem-表是存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。

  • SSTable - 它是一个磁盘文件,当其内容达到阈值时,数据从mem表中刷新。

  • 布隆过滤器 - 这些只是快速,非确定性的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。 每次查询后访问Bloom过滤器

Cassandra 查询语言

用户可以使用Cassandra查询语言(CQL)通过其节点访问Cassandra。CQL将数据库(Keyspace)视为表的容器

Cassandra 数据模型

集群(Cluster)

Cassandra 数据库分布在几个一起操作的机器上。最外层容器被称为群集。对于故障处理,每个节点包含一个副本,如果发生故障,副本将复制。Cassandra 按照环形格式将节点排列在集群中,并为它们分配数据。

键空间 (Keyspace)

键空间是 Cassandra 中数据的最外层容器。Cassandra 中的一个键空间的基本属性是 -

  • 复制因子 - 它是集群中将接收相同数据副本的计算机数。

  • 副本放置策略 - 它只是把副本放在介质中的策略。我们有简单策略(机架感知策略),旧网络拓扑策略(机架感知策略)和网络拓扑策略(数据中心共享策略)等策略。

  • 列族 - 键空间是一个或多个列族的列表的容器。列族又是一个行集合的容器。每行包含有序列。列族表示数据的结构。每个键空间至少有一个,通常是许多列族。

CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};

列族

列族是有序收集行的容器。每一行又是一个有序的列集合。下表列出了区分列系列和关系数据库表的要点。

关系表 Cassandra 列族

关系模型中的模式是固定的。 一旦为表定义了某些列,在插入数据时,在每一行中,所有列必须至少填充一个空值。

在 Cassandra 中,虽然定义了列族,但列不是。 您可以随时向任何列族自由添加任何列。

关系表只定义列,用户用值填充表。 在 Cassandra 中,表包含列,或者可以定义为超级列族。

Cassandra 列族具有以下属性 -

  • keys_cached - 它表示每个 SSTable 保持缓存的位置数。

  • rows_cached - 它表示其整个内容将在内存中缓存的行数。

  • preload_row_cache -它指定是否要预先填充行缓存。

列是 Cassandra 的基本数据结构,具有三个值,即键或列名称,值和时间戳。下面给出了列的结构

Cassandra 和 RDBMS 的数据模型

RDBMS Cassandra
RDBMS 处理结构化数据。 Cassandra 处理非结构化数据。
它具有固定的模式。 Cassandra 具有灵活的架构。
在 RDBMS 中,表是一个数组的数组。 (ROW x COLUMN) 在 Cassandra 中,表是“嵌套的键值对”的列表。 (ROW x COLUMN 键 x COLUMN 值)
数据库是包含与应用程序对应的数据的最外层容器。 Keyspace 是包含与应用程序对应的数据的最外层容器。
表是数据库的实体。 表或列族是键空间的实体。
Row 是 RDBMS 中的单个记录。 Row 是 Cassandra 中的一个复制单元。
列表示关系的属性。 Column 是 Cassandra 中的存储单元。
RDBMS 支持外键的概念,连接。 关系是使用集合表示。

Cassandra 1相关推荐

  1. Cassandra 1.2 发布,NoSQL 数据库

    NoSQL 数据库 Cassandra 发布 1.2 正式版,该版本包含 CQL3,这是在 2012年4月发布的 1.1 版本中引入的.CQL 是一个 Cassandra 的建模和查询语言,类似关系数 ...

  2. Cassandra安装测试

     说明,本人成功安装过程记录   只要看解压目录的readme.txt即可,其他网上教程由于版本不对会执行报错,例如遇到编码问题 #wget  http://www.apache.org/dyn/cl ...

  3. cassandra命令

    压力测试:cassandra-stress [command] -node [nodes] -mode thrift user=[user] password=[password] example: ...

  4. 在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene

    一.项目前提步骤 1>.创建键空间 CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 're ...

  5. Cassandra数据模型设计最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 本文是Cassandra数据模型设计第一篇(全两篇),该系列文章包含了eBay使用Cassandra数据模型设计的一些实践.其 ...

  6. Cassandra 可视化工具

    2019独角兽企业重金招聘Python工程师标准>>> 最近开始接触Cassandra,这些天在cassandra的wiki发现了一些可视化工具的推荐.现在也把这个链接推荐给大家:h ...

  7. Cassandra读写性能测试

    1. 测试目的 测试Cassandra集群读写TPS的极值,确定Cassandra读写性能. 2. 测试环境 2.1 硬件信息 CPU 8核 Intel(R) Xeon(R) CPU E5-2650 ...

  8. 读过本文才算真正了解Cassandra数据库

    来自:DBAplus社群 作者介绍 宇文湛泉,现任金融行业核心业务系统DBA,主要涉及Oracle.DB2.Cassandra等数据库开发工作. Cassandra数据库,值得介绍的技术细节其实挺多的 ...

  9. 利用Kafka和Cassandra构建实时异常检测实验

    导言 异常检测是一种跨行业的方法,用于发现事件流中的异常事件 - 它适用于物联网传感器,财务欺诈检测,安全性,威胁检测,数字广告欺诈以及许多其他应用程序.此类系统检查流数据以检查异常或不规则,并在检测 ...

  10. cassandra mysql_cassandra命令行操作

    查看cqlsh命令帮助 root@sitewhere-cassandra-0:/# cqlsh --help Usage: cqlsh.py [options] [host [port]] CQL S ...

最新文章

  1. MPlayer在ARM上的移植(S5PV210开发板)
  2. 如何调用DLL (基于Visual C++6.0的DLL编程实现)
  3. 再次强调事件绑定中this的坑
  4. vant 动态 粘性布局_CSS Viewport 单位,很多人还不知道使用它来快速布局!
  5. 游戏服务器架构-设计模式之观察者模式和发布订阅模式真的一样吗?
  6. 汇顶科技2021秋招笔试
  7. ReentrantLock类源码解析
  8. js 数字格式化,只能输入正负整数,小数
  9. 人物-李彦宏:李彦宏
  10. 项目:心肺复苏按压仪+沁恒赤兔ch32v307+嵌入式开发
  11. 京东商城API 商品详情接口
  12. Android 3G/4G流量上网原理简析
  13. PHP调用系统声卡,什么是声卡
  14. 13. Redis底层实现 List
  15. Windows11之Vim超详细下载安装与使用教程
  16. Pycharm 报错Out of Memory 然后一直闪退(已解决)
  17. 近代物理实验 光泵磁共振 原理 数据 思考题
  18. c语言结账程序设计,c语言餐饮结账管理系统设计.doc
  19. RFM客户价值分类模型应用
  20. Allegro封装的制作

热门文章

  1. 如何解决http请求304问题,304的原因很可能是缓存造成的。
  2. 彻底解决不要脸的360更改浏览器主页【转载】
  3. VS2022社区版安装教程
  4. Ensemble Average(系综平均)(集平均)
  5. 在校大学生学业预警系统java_关于学业预警系统上线使用的通知
  6. Windows 下 Let's Encrypt申请证书及使用
  7. 读《计算机科学概论》
  8. 7-4 sdut-C语言实验-分割整数
  9. 目标识别数据集扩充方法
  10. gdpr通用数据保护条例_关于通用数据保护法规(GDPR),您需要了解的15件事