CQLのデータ型
カラムに対する組み込みデータ型。
CQLでは、カラムに対して組み込みデータ型が定義されています。counter型は独特です。
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以降では次のキーワードは必要ありません:
|
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プログラマーには明白です。しかし、以下の型の派生元は、必ずしも明白ではありません。
CQL型 | Java型 |
---|---|
decimal | java.math.BigDecimal |
float | java.lang.Float |
double | java.lang.Double |
varint | java.math.BigInteger |