Cassandra "select as" 区分大小写

Cassandra "select as" to be case sensitive

卡桑德拉版本:2.2.0

我有 Cassandra table,如下所示:

 app_id                           | ts                       | os_name   
----------------------------------+--------------------------+-----------
 bb61ffae3b8f73e61572b61450d6d5d6 | 2015-08-04 22:00:00-0700 |   Android
 bb61ffae3b8f73e61572b61450d6d5d6 | 2015-08-05 22:00:00-0700 |   Android

而当我“select app_id as appID”时,返回的列名全部小写。

cqlsh:myDB> SELECT app_id as appID FROM daily_activity_report limit 10;

然后我得到:

 appid
----------------------------------
 bb61ffae3b8f73e61572b61450d6d5d6
 7b87263e57a34deccb462b26786896b3

在我的查询中,我指定了 大写 "SELECT distinct app_id as appID",但返回的是 小写 "appid".

是否缺少任何配置变量来启用区分大小写的列名称?如何区分大小写?

非常感谢。


更新: 我还尝试在列名 'appID' 中添加引号,如下所示,但没有成功。

cqlsh:myDB> SELECT app_id as 'appID' FROM daily_activity_report limit 10;

回复:

SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] 
message="line 1:26 no viable alternative at input 'appID' (SELECT distinct app_id as ['appI]...)">

自己在 CQL documentation 的“标识符和关键字”部分找到答案

还有第二种标识符称为带引号的标识符,它通过将任意字符序列括在 双引号 (") 中来定义。带引号的标识符绝不是关键字。

我试过了

cqlsh:myDB> SELECT app_id as "appID" FROM daily_activity_report limit 10;

它正在运行:

 appID
----------------------------------
 bb61ffae3b8f73e61572b61450d6d5d6
 7b87263e57a34deccb462b26786896b3

来自 DataStax 文档,

Keyspace, column, and table names created using CQL 3 are case-insensitive unless enclosed in double quotation marks. If you enter names for these objects using any uppercase letters, Cassandra stores the names in lowercase. You can force the case by using double quotation marks.

http://docs.datastax.com/en/cql/3.0/cql/cql_reference/ucase-lcase_r.html

使用双引号而不是单引号应该适合您。