首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通用Cassandra数据类型的字节大小-在计算分区磁盘使用率时使用?

通用Cassandra数据类型的字节大小-在计算分区磁盘使用率时使用?
EN

Stack Overflow用户
提问于 2016-10-17 13:37:30
回答 2查看 10.9K关注 0票数 12

我试图使用Datastax数据建模课程中的公式计算具有任意数量的列和类型的表中每一行的分区大小。

为了做到这一点,我需要知道一些常见Cassandra数据类型的“字节大小”。我试着搜索这个,但是我得到了很多建议,所以我很困惑。

我想知道字节大小的数据类型是:

  • 一个Cassandra文本字符(我搜索了2-4字节的答案)
  • A卡桑德拉小数
  • 一个Cassandra INT (我想它是4个字节)
  • A Cassandra BIGINT (我想它是8个字节)
  • A Cassandra BOOELAN (我想它是1字节,..还是一位)

当然,对Cassandra中的数据类型、大小也有任何其他考虑。

添加更多的信息,因为它似乎令人困惑的理解,我只是试图估计“最坏的场景磁盘使用”,数据将占用任何压缩和其他优化的卡桑德拉做幕后的场景。

我正在遵循Datastax课程的DS220 (参见最后的链接)并实现公式,并将这里的答案中的信息作为该公式中的变量。

https://academy.datastax.com/courses/ds220-data-modeling/physical-partition-size

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 17:48:24

我认为,从务实的角度来看,明智的做法是在设计时使用ds220课程中的公式来估计最坏情况的最坏情况。压缩的效果往往因数据中的算法和模式而不同。来自ds220和http://cassandra.apache.org/doc/latest/cql/types.html

代码语言:javascript
复制
uuid: 16 bytes
timeuuid: 16 bytes
timestamp: 8 bytes
bigint: 8 bytes
counter: 8 bytes
double: 8 bytes
time: 8 bytes
inet: 4 bytes (IPv4) or 16 bytes (IPV6)
date: 4 bytes
float: 4 bytes
int 4 bytes
smallint: 2 bytes
tinyint: 1 byte
boolean: 1 byte (hopefully.. no source for this)
ascii: equires an estimate of average # chars * 1 byte/char
text/varchar: requires an estimate of average # chars * (avg. # bytes/char for language)
map/list/set/blob: an estimate

希望它能帮上忙

票数 22
EN

Stack Overflow用户

发布于 2016-10-17 14:06:17

评估与某事相关的开销的唯一可靠方法是实际执行度量。实际上,您不能采用单个数据类型来概括它们的某些内容。如果您有4个bigints列,并且假设您的开销是X,那么如果您有400个bigint列,那么您的开销可能不会是100 x。这是因为Cassandra在将数据存储到磁盘之前压缩了一切(默认情况下,这是每个列家族的设置可调 )。

尝试加载一些数据,我指的是集群中的产品数据,然后让我们知道您的结果和压缩配置。你会发现一些惊喜。

了解你的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40087926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档