【问题标题】:Executing a query on geomesa cassandra datastore using JAVA使用 JAVA 对 geomesa cassandra 数据存储执行查询
【发布时间】:2019-04-23 08:02:15
【问题描述】:

我一直在关注 geomesa cassandra quickstart tutrorila https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html 现在我正在构建一个spring boot api来查询导入的表, 在示例代码中,我发现 CQL 过滤器充当普通 sql 查询中的 WHERE 部分:

new Query(getTypeName(), ECQL.toFilter( "Actor2CountryCode LIKE 'AU'" ))

但我不知道如何使用此 ECQL 查询编写 SELECT FROM 部分

【问题讨论】:

    标签: spring spring-boot cassandra cql geomesa


    【解决方案1】:

    直接查询 GeoMesa 原始数据通常不可行 - 您应该改用 GeoTools API 和 GeoTools ECQL 过滤器(而不是 Cassandra CQL)。

    要查看从给定 GeoTools 查询生成的选择语句,您可以使用 GeoMesa documentation 中描述的 getQueryPlan 方法。这将返回一个CassandraQueryPlan 的实例,它引用了要执行的statements(请参阅here)。请注意,可能会对语句的结果应用二级过滤器,在查询计划中定义为clientSideFilter

    【讨论】:

    • 有这方面的例子吗?
    • 还如何对特定字段执行任何聚合函数,如求和或计数?
    • 聚合函数可以使用我们原生的stats API或者Spark
    • 我不相信有任何直接使用查询计划的示例,因为它不是标准用例。您可以查看源代码以了解它们在内部是如何使用的。
    猜你喜欢
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    相关资源
    最近更新 更多