Datastax Academyデータモデリングコースの式を使用して、任意の数の列とタイプを持つテーブルの各行のパーティションサイズを計算しようとしています。
そのためには、いくつかの一般的なCassandraデータ型の「バイト単位のサイズ」を知る必要があります。私はこれをググってみましたが、たくさんの提案があり、困惑しています。
私が知りたいデータ型は次のとおりです。
もちろん、Cassandraのデータ型サイズに関して他の考慮事項もありがたいです。
カサンドラが舞台裏で行った圧縮やその他の最適化を行わずにデータが占める「最悪のシナリオのディスク使用量」を推定しようとしているだけだと理解するのは混乱しているように思われるため、さらに情報を追加します。
私はDatastaxAcademyコースDS220(最後のリンクを参照)に従って式を実装し、ここでの回答からの情報をその式の変数として使用します。
https://academy.datastax.com/courses/ds220-data-modeling/physical-partition-size
実用的な観点から、設計時に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
それが役に立てば幸い
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加