Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算分区磁盘使用率时要使用的常见Cassandra数据类型的字节大小是多少?_Cassandra_Datastax_Cql - Fatal编程技术网

计算分区磁盘使用率时要使用的常见Cassandra数据类型的字节大小是多少?

计算分区磁盘使用率时要使用的常见Cassandra数据类型的字节大小是多少?,cassandra,datastax,cql,Cassandra,Datastax,Cql,我正在尝试使用Datastax Academy数据建模课程中的公式计算具有任意列数和类型的表中每行的分区大小 为了做到这一点,我需要知道一些常见Cassandra数据类型的“字节大小”。我试着用谷歌搜索这个,但我得到了很多建议,所以我感到困惑 我想知道字节大小的数据类型有: 一个卡桑德拉文本字符(我用谷歌搜索了2-4字节的答案) 卡桑德拉十进制 一个Cassandra INT(我想是4字节) 一个Cassandra BIGINT(我想是8字节) 一个Cassandra BOOELAN(我想它是

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

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

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

  • 一个卡桑德拉文本字符(我用谷歌搜索了2-4字节的答案)
  • 卡桑德拉十进制
  • 一个Cassandra INT(我想是4字节)
  • 一个Cassandra BIGINT(我想是8字节)
  • 一个Cassandra BOOELAN(我想它是一个字节,…或者是一个位)
当然,对于Cassandra中的数据类型和大小,我们也会考虑其他因素

添加更多信息,因为我只是试图估计数据在没有任何压缩和卡桑德拉在场景后面进行的其他优化的情况下所占用的“最糟糕的磁盘使用情况”,这似乎令人困惑

我正在学习Datastax Academy课程DS220(见最后的链接)并实现该公式,并将使用此处答案中的信息作为该公式中的变量


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

尝试在集群中加载一些数据,我的意思是生产数据,然后告诉我们您的结果和压缩配置。你会发现一些惊喜


了解您的数据。

我认为,从实用的角度来看,明智的做法是在设计时提前使用ds220课程中的公式对最坏情况进行初步估计。压缩的效果通常因数据中的算法和模式而异。从ds220和:


希望有帮助

默认情况下,Cassandra压缩磁盘上的数据。因此,根据您拥有的数据,该类型对于评估实际存储大小并不是很有用。我想你应该自己做这个尺寸的凳子。有趣的答案不是税务学院的课程告诉你的!Cassandra使用的数据压缩比是多少(我使用的是C*3.+)。。。我要的型号有多大?谢谢我问这个问题的原因是因为我有一个用例可以提示用户他们将放入存储的数据的大小,包括宽行的“开销”。关于调整数据大小的一些有趣的注释谢谢@LHWizard,这肯定会派上用场!好的,谢谢。。我想Datastax学院的课程(见链接)是不对的,他们教给我们的东西是不真实的?Datastax的任何人或深入参与Cassandra开发的人都能证实这一点吗?你不需要任何证实。想想100万个满是零的大整数。压缩后它们会占用8百万字节还是仅仅占用几个字节?不会,但如果它们占用1百万个64位数字,那么它们会占用大量空间,还记得我写的“提示用户”吗。我知道我的数据。让我们到此结束,因为您似乎不知道我最初问题的答案,而且您拒绝理解我想知道“最坏情况下的磁盘使用情况”。
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