持续九年,国际排名第一的宽表数据库概述|学习笔记

简介: 快速学习持续九年,国际排名第一的宽表数据库概述

开发者学堂课程【Cassandra数据库入门与实战持续九年,国际排名第一的宽表数据库概述】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/784


持续九年,国际排名第一的宽表数据库概述

我们正处在一个数据爆炸式增长的时代,随着5g,AI Iot等新兴技术和场景的出现,将加剧数据暴增,数据类型呈现多样化,关系型数据KV、宽表、文档、时序、图数据库等。

这些需求将对数据库领域带来新的挑战,如海量终端及数据导致的高并发、低延时、无线扩展、在线分析、极致可靠性等。

而cassandra就是这样一款,不仅能很好的满足现有应用,又是面向未来,可解决这些新问题的数据库,她也是一款国际上非常流行的数据库,过去12年里,在苹果、脸书、网飞、360、华为等很多国际化大公司都被应用在关键应用场景,在全球上万家企业,也有大规模成熟应用,

一、Apache Cassandra介绍

1、为什么要使用cassandra?

(1)分布式的海量数据储存和处理

(2)极高的性能

(3)极致的可靠性(去中心化的架构,无单点故障)

(4)优秀的线性可扩展能力

(5)对多地多数据中心部署的原生支持

(6)运维和管理需要理解的概念简单

(7)使用对开发者非常友好的类SQL语言CQL

(8)强大的生态,活跃的国际社区

(9)不断紧跟最新技术趋势,使他持续具有强大的生命力

二、学习cassandra的好处

(1)著名招聘网站DICE的年度工资调查,Cassandra一直被列为IT行业十大平均薪酬水平最高的技术之一

(2)对分布式系统的理解和动手能力—校招面试必杀技

(3)跟社区高手学习和交流

(4)提高你在职场的竞争力

二、DBEngine宽表数据库排名第一

4、国际社区的一些统计数据

Fortune前100强的企业90%都在使用cassandra

Linkedln上已有78000 cassandra专业人士,年增长率20%

72%的公司预计今年NoSQL使用会增加

186%增长C docker pulls

167490注册人员—DataStax Academy学院

三、构架基础和原理篇

1、Cassandra的起源

image.png

2、线性扩展

需要增加存储容量?

需要更多的数据吞吐量?

只要增加节点就好了!

3、Scale up垂直扩展和Scale out水平扩展

(1)垂直扩展需要增加单击硬件资源,最后单机的配置非常昂贵。

(2)水平扩展使用便宜得多的普通硬件资源不够了,只需要加更多的节点就好了。

4、数据是分布式储存的

5、Cassandra环的工作原理

image.png

在这个例子里,每一个节点负责一个范围,17号节点负责0到16,33号节点负责17到32,50号节点负责33到49,以此类推。

6、Cassandra多副本


image.png

7、节点故障

image.png

8、节点故障—恢复

image.pngimage.jpeg

9、数据的分布可以无处不在

10、CAP定理

image.png

11、Consistency Levels,一致性级别通常缩写为CL

image.png

我们在生态环境里边,大多数情况下,我们都会使用RF=3,对于刚开始使用Consistency的人来说,我们建议在生态环境中把复制因子设置为3,让数据库在高可用,高性能之间达到一个最佳的平衡,如果在将来,面对比较特殊的场景,可以考虑换成其他的复制因子。

image.png

四、应用场景

1、理解cassandra的应用场景

image.png

首先如果是需要数据库弹性扩展的需求,数据是海量、高吞吐量,有大量的写操作和读操作,像物联网这种应用场景,选择cassandra就是一种完美的选择。

如果需要数据库是高可用性,比如关键任务是不可以有数据丢失的,必须每一秒都在线,也非常适合用Cassandra。

2、各个行业的世界知名品牌都在使用Cassandra

3、典型的应用场景

image.png

4、苹果 部署规模

5、Facebook/Instagram应用案例

6、纽约证券交易—所每天发生三十六亿手股票交易

五、趋势发展

1、面向未来的数据架构

image.pngimage.jpeg

我们现在正在设计一个面向未来的一种数据架构,这个核心还可以是cassandra,在这个基础之上,我们希望应用程序和开发语言,能够解放出来,能够让他们使用他们最拿手的应用

相关文章
|
1月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
124 6
|
3月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
1月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
69 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
存储 分布式计算 数据库
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
|
2月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
55 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
3月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
118 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
3月前
|
存储 运维 Cloud Native
核心系统转型问题之阿里云数据库在国际市场的布局情况咋样
核心系统转型问题之阿里云数据库在国际市场的布局情况咋样
|
3月前
|
关系型数据库 Linux Shell
跟我一起来学国内排名NO.1的开源数据库安装
跟我一起来学国内排名NO.1的开源数据库安装
37 0
跟我一起来学国内排名NO.1的开源数据库安装
|
3月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
38 6