cassandra权威指南读书笔记--数据建模
2024-09-05 09:13:44
没有join操作。有轻量级事务和批处理,但是没有外键等。
反规范化。3.0支持物化视图,允许在一个表上创建数据的多个物化视图。
使用cassandra要从查询入手,而不是先从数据模型开始。先对查询建模,然后根据查询来组织数据,然后再构建表结构。
cassandra建表要考虑磁盘怎么存储数据,也就是要求要保证相关的列定义在同一个表中,不像RDBMS去关联查询。
尽可能搜索最小的分区去满足一个给定的查询。搜索单个分区往往会得到最优的性能。
排序需要提前设计,根据集群键排序。只能是和设计排序一样,或者完全相反。
引入物化视图主要是为了解决二级索引的一些问题:基数很大的列要查询很多节点。
物化视图通过存储预配置的视图来解决,视图支持非集群键的其他列的查询。物化视图简化开发:应用不用保持多个反规范化的表同步,cassandra会负责更新物化视图,保证和基表一致。对写操作的性能有很小的影响。
计算分区大小
cassandra限制每个分区最大20亿个单元(32位Int最大值)。
公式:
a*.分区中值(或者单元)个数 = 静态列数 + 行数*每行值的个数。
每行的值=列数 - 主键列数 - 静态列数。
主要决定分区大小还是行数。
计算磁盘大小:
公式为单个分区的磁盘大小:
磁盘大小=分区键的字节数+ 静态列的字节数 + sum(集群键列 * 对应集群键列的行数) + 行数 * 常规列 + 每个单元存储的时间戳大小(8字节) * 分区中值的个数(见a*)
记住cassandra是宽行,如果集群键一样,只会保存一个。
还要考虑多副本。
分解大分区:使用组合分区键。
最新文章
- 【代码笔记】iOS-UILable电子表显示
- 实践.Net Core在Linux环境下的第一个Hello World
- Netron源码解读(一):GraphControl画布对象
- CCI4.5/LintCode Validate Binary Search Tree
- 【leetcode】 Scramble String (hard)★
- Android缓存学习入门(二)
- HDU 4751 Divide Groups
- jQuery Event.stopPropagation() 函数详解
- html5 canvas 笔记四(变形 Transformations)
- libreoffice转换文档的方法(支持各平台各版本的libreoffice)
- 关于 android的 渲染器 Shader
- 【甘道夫】怎样在cdh5.2上执行mahout的itemcf on hadoop
- Redis整合Spring结合使用缓存实例(转)
- JavaSE_坚持读源码_HashSet对象_Java1.7
- [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)
- Sublime Text 插件之HTML-CSS-JS Prettify—格式化HTML CSS JS与显示函数列表
- cxGrid动态设置单元格对齐方式
- Visual Studio2013安装过程
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
- c++从string类型转换为bool类型