CQL基本语法介绍 | 您所在的位置:网站首页 › 流泪成语怎么说出来 › CQL基本语法介绍 |
开发者学堂课程【Cassandra数据库入门与实战:CQL:实战快速搭建弹性web应用】学习笔记,与课程紧密联系,让用户快速学习知识。 课程地址:https://developer.aliyun.com/learning/course/784 CQL基本语法介绍
一、Cassandra简单介绍 1、Casandra的历史 Casandra的数据库是来自于两篇论文,其中之一是07年亚马逊发表的一篇Dynamo ,在他上面吸取了分布式的架构和思想,另一篇是谷歌的Bigtable,吸取了数据的组织的格式以及表的各种组织的格式。 总体架构 Cassandra的特性是能做到线性扩展,原因是因为他有一个去中心化的架构,他可以做到高可用,高可用主要是因为它是高副本的,能够保证它的可用性,还有一个是他超高的性能,这取决于它底层的LSM Tree Storage。 图片的左边是一个环,这个还叫DHD环,这个环上有五个节点,每个节点把这个还进行了一个划分,它的每一部分节点都对应一部分数据范围。节点把进行均匀的切分,能够保证每一个节点负责的范围是相对均匀的,这是他分布式层面的情况。 2、Cassandra的初步认识 在图的左边有abcde五个节点,单独分解b这个节点对应的组成模块,可以看到,最上层是网络层,下面是c ql parser,这个板块是CQL语言进行解析的一个模块,将CQL语言转换成编译的结果。 二、Cassandra CQL介绍 1、CQL是什么? 上图我们可以看到用Hbase k v api和CQL,去写一条数据的差别,CQL可以简单的写出一条数据,这是一个最原始的社区为什么要做一个cql的原因,就是让用户操作数据库简单化。 CQL总体介绍 Data type,定义的一些比较基础的数据类型,包括他自己实现的集合数据类型,除此之外,还有DDL/DML/ACL,这是他操作数据库一些基本的定义。 2、CQL的几个概念 Cluster,意思是集群最大的储存单位,Datecenter,是数据中心,一个cluster可以包含多个DC;Keyspace是键值空间,类似mysql的data base,定义了数据存储的副本策略,摆放策略下面包括多个表,所有表都遵循key pace的摆放策略;Table,意义是表,类似mysql的table,定义基本的表结构;Primary key意义是主键,可以唯一确定一行数据,由partition key和cluster key ke共同组成;Partition key是分区间,可以确定数据存储的节点;Cluster key意义是cluster键,可以在partition下进行排序,范围操作等;Regular column意义是普通列数据列。 (1)CQL date type (2)Native Tapy 基本的string类型、数值类型、IP相关类型、UUIT、时间日期以及counter类型。 例子: (3)Collect Type && UDT UDT必须在key space范围内创建类型 支持:CREATE/ALTER/DROP 例子: (4)CQL DDL Keyspace Replication: Class:SimpleSttategy/NetworkTopologyStrategy:副本摆放策略 Replication_factor:副本数 例子: (5)Table Primary key:必须定义由partition key和cluster key组成 Partition key:必须定义确定数据的摆放物理位置 Cluster key:可以不定义,确定数据在partition下的摆放情况 Default time to live,表级别ttl; Compaction策略:STCS/LCS/TWCS; Compression,策略:SNAPPY/LZ4 例子: (6)CQL DML DML:SELECT/INSERT/UPDATE/DELETE/BATCH SELCCT: 支持获取指定列以及通配符操作; 支持LIMIT/PARTITION LIMIT/ORDE BY/GOUP BY; 支持native function处理操作:Count、max、min、sum、avg等 支持JSON 其他多数丰富操作; 例子:
(7)UPDATE: 需要指定primary key 如果数据存在就更新,不存在则写入 DELETE: 支持行列、级别删除 例子: (8)BATCH: 语法:BEIGIN BATCH 开始,以APPLY BATCH结束,中间可包含多条INSERT/UPDATE/DELETE; 支持LOGGED/UNLOGGED BATCH两种模式。LOGGED BATCH,保证batch数据最终全被写入 提高写入吞吐 例子:
3、CQL ACL Role,级别操作支持账户密码role,资源操作 各种资源级别的鉴权 常见grant以及revoke操作 例子:
4、CQL INDEX (1)SEcondary Index Local index索引表数据和数据表数据共存,适用于奇数式中的数据列表 可以指定索引名,若不指定咋自动生成 Counter列不支持二级索引 频繁删除以及update的列不推荐使用 支持多重索引查询,支持集合数据类型上构建索引 (2)SASI: Local index的一种,支持较多索引模式:prefix ,contain ,sparse支持轻搜索功能 对字符串支持的prefix和contains功能支持,轻模糊匹配 使用analyzer可以对某个列的文本数据做词干分析 丰富的索引构建选项,大小写敏感,索引模式,是否使用anlyzer 不支持collection类型 实验功能,不推荐生产使用 例子: 适用于任何规模的云原生多模数据库。 |
CopyRight 2018-2019 实验室设备网 版权所有 |