Cassandra 查询字符串长度

Cassandra query string length

如何在 Cassandra 中获取字符串的长度?似乎没有任何内置函数可以为我执行此操作。

正在寻找这样的东西:

SELECT size(myStr) FROM myTable WHERE ...

我知道这可以使用用户定义的函数实现,但我不确定我是否有适当的权限来创建函数。

可以制作一个 UDF 来完成它,但是 none 内置在 cassandra 中。

它没有内置函数,但您可以在 Cassandra 中创建 UDF 来查找字符串列的长度,然后在查询中使用该 UDF。在创建此 UDF 之前,请确保您已在 cassandra.yml 文件中启用 udf 属性,即 enable_user_defined_functions: true

CREATE FUNCTION IF NOT EXISTS len (input text) 
   CALLED ON NULL INPUT 
   RETURNS int 
   LANGUAGE java AS '
   return input.length();';

然后您可以在查询中使用它,

cqlsh:test> SELECT len(event_data) as length from event where id = 1;

你应该得到输出,

 length
--------
     14