CQL(Cassandra Query Language)JSON支持
来源:互联网 发布:美国 网络战 话语权 编辑:程序博客网 时间:2024/06/04 18:26
Cassandra 2.2引入了对SELECT和INSERT语句的JSON支持。此支持不会从根本上改变CQL API(例如,模式仍然被强制执行),它只是提供一种方便的方式来处理JSON文档。
SELECT JSON
使用SELECT语句,JSON关键字可用于将每行返回为单个JSON编码映射。SELECT语句行为的其余部分是相同的。
结果映射键与正常结果集中的列名称相同。 例如,像SELECT JSON a,ttl(b)FROM ...这样的语句将导致具有键“a”和“ttl(b)”的映射。但是,这是一个值得注意的例外:对于具有INSERT JSON行为的对称性,具有大写字母的区分大小写的列名称将用双引号括起来。例如,SELECT JSON myColumn FROM ...将导致一个映射键“\”myColumn \“”(注意转义的引号)。映射值将使用结果集值的JSON编码表示(如下所述)。
INSERT JSON
使用INSERT语句,新的JSON关键字可用于启用将JSON编码映射插入单行。JSON映射的格式通常应与由相同表上的SELECT JSON语句返回的格式相匹配。特别是,区分大小写的列名称应该用双引号括起来。 例如,要插入具有两个名为“myKey”和“value”的列的表,您将执行以下操作:
INSERT INTO mytable JSON '{ "\"myKey\"": 0, "value": 0}'
默认情况下(或如果显式使用DEFAULT NULL),从JSON映射中省略的列将被设置为NULL,这意味着该列的任何预先存在的值将被删除(导致创建逻辑删除)。或者,如果在值之后使用DEFAULT UNSET伪指令,忽略的列值将保留未设置,这意味着将保留那些列的预先存在的值。
Cassandra数据类型的JSON编码
在可能的情况下,Cassandra将以其原生JSON表示形式表示和接受数据类型。Cassandra还将接受与所有单字段类型的CQL字面量格式匹配的字符串表示。例如,浮动,整数,UUID和日期可以由CQL字面量字符串表示。但是,复合类型(例如集合,元组和用户定义的类型)必须由本地JSON集合(mao和list)或集合的JSON编码字符串表示形式表示。
下表描述了Cassandra在INSERT JSON值(和fromJson()参数)中接受的编码以及Cassandra在为SELECT JSON语句(和fromJson())返回数据时使用的格式:
ascii
stringstring使用JSON的\ u字符转义bigint
integer, stringinteger字符串必须是有效的64位整数blob
stringstring字符串应为0x,后跟偶数个十六进制数字boolean
boolean, stringboolean字符串必须为“true”或“false”date
stringstring日期格式为YYYY-MM-DD,时区UTCdecimal
integer, float, stringfloat在客户端解码器中可能超过32或64位IEEE-754浮点精度double
integer, float, stringfloat字符串必须是有效的整数或浮点型float
integer, float, stringfloat字符串必须是有效的整数或浮点型inet
stringstringIPv4或IPv6地址int
integer, stringinteger字符串必须是有效的32位整数list
list, stringlist使用JSON的本地列表表示map
map, stringmap使用JSON的本地映射表示smallint
integer, stringinteger字符串必须是有效的16位整数set
list, stringlist使用JSON的本地列表表示text
stringstring使用JSON的\ u字符转义time
stringstring时间格式HH-MM-SS [.fffffffff]
timestamp
integer, stringstring时间戳。 字符串常量允许输入时间戳日期。返回格式为YYYY-MM-DDHH:MM:SS.SSS的日期戳。timeuuid
stringstring类型1 UUID。 请参阅UUID格式的常量tinyint
integer, stringinteger字符串必须是有效的8位整数tuple
list, stringlist使用JSON的本地列表表示UDT
map, stringmap使用JSON的本地映射表示,其中字段名称为键uuid
stringstring请参阅UUID格式的常量varchar
stringstring使用JSON的\ u字符转义varint
integer, stringinteger可变长度; 可能在客户端解码器中溢出32或64位整数fromJson()函数
fromJson()函数可以类似于INSERT JSON使用,但对于单个列值。它只能在INSERT语句的VALUES子句中使用,或者作为UPDATE,DELETE或SELECT语句中的一个列值。例如,它不能在SELECT语句的selection子句中使用。
toJson() 函数
toJson()函数可以类似于SELECT JSON使用,但对于单个列值。它只能在SELECT语句的selection子句中使用。
- CQL(Cassandra Query Language)JSON支持
- CQL(Cassandra Query Language)定义
- CQL(Cassandra Query Language)数据类型
- CQL(Cassandra Query Language)安全性
- CQL(Cassandra Query Language)函数
- CQL(Cassandra Query Language)触发器
- Cassandra Query Language (CQL) v2.0
- Cassandra Query Language (CQL) v2.0
- CQL(Cassandra Query Language)数据定义
- CQL(Cassandra Query Language)数据操作
- CQL(Cassandra Query Language)辅助索引
- CQL(Cassandra Query Language)物化视图
- Cassandra Query Language (CQL) v3.4.3
- cassandra cql
- Cassandra在CQL语言层面支持多种数据类型[12]。
- Cassandra数据操作 -- CQL
- Cassandra CQL使用详解
- Cassandra CQL的限制
- Androidi中视频播放器
- Ubuntu中最新版git的安装
- spring boot的provider 在linux 环境中自动启动(监控进程)
- 玩转Android嵌套滚动
- Android Studio使用
- CQL(Cassandra Query Language)JSON支持
- ldd-print shared object dependecies
- 【Linux】文件的权限管理
- char * const *(*next)();
- How to access Package Name from JNI/NDK?
- 控制台光标(二):设置光标位置
- js获取html标签
- 使用Angular2及WebApi开发SPA类型的企业应用 - Part 3 项目结构
- 【Android】TextView中不同大小字体如何上下垂直居中?