CQLのデータ型

カラムに対する組み込みデータ型。

CQLでは、カラムに対して組み込みデータ型が定義されています。counter型は独特です。

表 1. CQLのデータ型
CQLの型 定数 説明
ascii 文字列 US-ASCII文字列
bigint 整数 64ビット符号付きlong
blob BLOB 任意数のバイト(検証なし)で、16進数で表示される
boolean ブーリアン trueまたはfalse
counter 整数 分散カウンター値(64ビットlong)
date 文字列 2015-05-03などの日付文字列
decimal 整数、浮動小数点数 可変精度の10進数

Java型

注: 通貨を取り扱う際は、intに、またはintからシリアライズする通貨クラスを使用するか、decimal形式を使用するのが最適です。
double 整数、浮動小数点数 64ビットIEEE-754の浮動小数点数

Java型

float 整数、浮動小数点数 32ビットIEEE-754の浮動小数点数

Java型

frozen ユーザー定義型、コレクション、タプル frozen値は、複数のコンポーネントを1つの値にシリアライズします。frozen以外の型では、個々のフィールドを更新できます。Cassandraでは、frozen型の値はBLOBとして扱われます。値全体を上書きしなければなりません。
注: Cassandra 2.1.0~2.1.2ではtuplesに対してfrozenを使用する必要がありますが、Cassandra 2.1.3以降では次のキーワードは必要ありません:
frozen <tuple <int, tuple<text, double>>>
inet 文字列 IPv4形式またはIPv6形式のIPアドレス文字列で、python-cqlドライバーとCQLネイティブ・プロトコルで使用される
int 整数 32ビット符号付き整数
list なし 1つ以上の順序指定要素のコレクション:( literal, literal, literal )
map なし リテラルのJSONスタイルの配列:{ literal :literal, literal :literal ... }
set なし 1つ以上の要素のコレクション:{ literal, literal, literal }
smallint 整数 2バイト整数
text 文字列 UTF-8エンコード文字列
time 文字列 13:30:54.234などの時間文字列
timestamp 整数、文字列 8バイトでエンコードされた、エポック以降の日付および時刻
timeuuid uuid バージョン1 UUIDのみ
tinyint 整数 1バイト整数
tuple なし Cassandra 2.1以降。2〜3フィールドで構成されるグループ。
uuid uuid 標準UUID形式のUUID
varchar 文字列 UTF-8エンコード文字列
varint 整数 任意精度の整数

Java型

この表に示したCQLの型に加えて、JAVAクラス(Cassandraでロード可能なAbstractTypeのサブクラス)の名前を含んでいる文字列をCQLの型として使用できます。このクラス名は、完全修飾名か、またはorg.apache.cassandra.db.marshalパッケージを基準にした相対名である必要があります。

ASCII text、timestamp、およびinetの値は単一引用符で囲みます。キースペース、テーブル、またはカラムの名前は二重引用符で囲みます。

Javaの型

CQLのほとんどの型はJavaの型から派生しており、Javaプログラマーには明白です。しかし、以下の型の派生元は、必ずしも明白ではありません。
表 2. CQLの特定の型の派生元
CQL型 Java型
decimal java.math.BigDecimal
float java.lang.Float
double java.lang.Double
varint java.math.BigInteger