我试图使用Datastax数据建模课程中的公式计算具有任意数量的列和类型的表中每一行的分区大小。
为了做到这一点,我需要知道一些常见Cassandra数据类型的“字节大小”。我试着搜索这个,但是我得到了很多建议,所以我很困惑。
我想知道字节大小的数据类型是:
当然,对Cassandra中的数据类型、大小也有任何其他考虑。
添加更多的信息,因为它似乎令人困惑的理解,我只是试图估计“最坏的场景磁盘使用”,数据将占用任何压缩和其他优化的卡桑德拉做幕后的场景。
我正在遵循Datastax课程的DS220 (参见最后的链接)并实现公式,并将这里的答案中的信息作为该公式中的变量。
https://academy.datastax.com/courses/ds220-data-modeling/physical-partition-size
发布于 2017-01-18 17:48:24
我认为,从务实的角度来看,明智的做法是在设计时使用ds220课程中的公式来估计最坏情况的最坏情况。压缩的效果往往因数据中的算法和模式而不同。来自ds220和http://cassandra.apache.org/doc/latest/cql/types.html
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希望它能帮上忙
发布于 2016-10-17 14:06:17
评估与某事相关的开销的唯一可靠方法是实际执行度量。实际上,您不能采用单个数据类型来概括它们的某些内容。如果您有4个bigints列,并且假设您的开销是X,那么如果您有400个bigint列,那么您的开销可能不会是100 x。这是因为Cassandra在将数据存储到磁盘之前压缩了一切(默认情况下,这是每个列家族的设置可调 )。
尝试加载一些数据,我指的是集群中的产品数据,然后让我们知道您的结果和压缩配置。你会发现一些惊喜。
了解你的数据。
https://stackoverflow.com/questions/40087926
复制相似问题