在我们的cassandra数据库中有一个字段'name',其数据类型为'text'类型。如何使用cassandra查询检索'name'字段长度大于某个数字的数据。
cnwbcb6i1#
正如注解中所指出的,添加用户定义函数并使用它检索文本字段的长度很容易,但关键是不能在where条件下使用用户定义函数(请参阅cassandra-8488)。即使有可能,如果您只有这个as条件-这对于cassandra来说是个错误的查询,因为它需要遍历数据库中的所有数据,并将它们过滤掉。对于这样的任务,通常使用spark,您可以通过spark-cassandra连接器读取数据,并应用必要的过滤条件。但这将涉及从数据库中读取所有数据,然后执行过滤-这将比正常的cql查询慢得多,但至少会自动并行化。
1条答案
按热度按时间cnwbcb6i1#
正如注解中所指出的,添加用户定义函数并使用它检索文本字段的长度很容易,但关键是不能在where条件下使用用户定义函数(请参阅cassandra-8488)。
即使有可能,如果您只有这个as条件-这对于cassandra来说是个错误的查询,因为它需要遍历数据库中的所有数据,并将它们过滤掉。对于这样的任务,通常使用spark,您可以通过spark-cassandra连接器读取数据,并应用必要的过滤条件。但这将涉及从数据库中读取所有数据,然后执行过滤-这将比正常的cql查询慢得多,但至少会自动并行化。