12.4 Cassandra数据模型

2019-05-28 09:14:43 浏览数 (1)

12.4 Cassandra数据模型

“卜算子·大数据”一个开源、成体系的大数据学习教程。——每周日更新

  • 没有JOIN操作

Cassandra没有表的连接操作,跟关系型数据库设计相比最好的方式是,反(非)规范化设计,设计为两个表连接后的结果表。

  • 没有参照完整性(外键) 虽然表中可以存储别的表的ID,但是没有级联删除的操作,所以没有外键操作。
  • 非规范化的设计在Cassandra数据库中表现最佳。适当冗余,相同的数据出现在不同的表中,具有不同的键。
  • 物化视图 基于已经存在的基础表,创建多个非规范化的数据视图(物化视图)。
  • 查询优先设计

设计表从查询的结果开始设计表(结果表)。

  • 存储空间设计 Cassandra每个表都是存储在磁盘上的单独文件中,相关的列尽量保持在同一个表中(磁盘文件)。 搜索单个分区的查询性能最佳,优化最小搜索分区数量。
  • 排序设计 Cassandra查询中的ORDER BY仅支持聚类列(Clustering columns)排序。
  • 分区单元值计算方法 避免分区太宽,分区中的单元值太大。 分区中的单元值计算方法: 分区中的单元值=静态列数 表的行数*(列数-主键列数-静态列数) Cassandra的限制是每个分区20亿。

开源、源码获取 https://github.com/wangxiaoleiAI/big-data

0 人点赞