在Drill上获取PostGIS几何字段

时间:2017-11-30 13:41:12

标签: postgresql postgis apache-drill

我有一个带有几何列的表,如果我使用PostGIS查询它,它会显示正确的记录:

PostGIS查询图片:

PostGIS query image

问题是当我使用Apache Drill执行查询时,因为它显示除了几何体之外的所有记录都很好,它显示为null。

钻取查询图片:

Drill query image

查看日志,显示以下错误:

  

WARN o.a.d.e.store.jdbc.JdbcRecordReader - 忽略的列是   不支持的。 org.apache.drill.common.exceptions.UserException:

     

UNSUPPORTED_OPERATION错误:您查询的列的数据类型为   JDBC存储插件当前不支持。专栏   name是geom_multipolygon,其JDBC数据类型是OTHER

我测试了使用 postgis-jdbc-2.2.1.jar postgresql-42.1.4.jar 创建Drill存储插件,但显示了相同的错误。< / p>

如果我使用:

cast(geom_multipolygon as varchar(255)) 

它显示了几何体的varchar表示,另一个选项是获取MULTIPOLYGON文本并使用ST_GeomFromText(geom)转换为Drill二进制文件,但我们需要直接从PostGIS获取二进制格式,因此这些方法无法完成。

我们已经看到了这个页面:https://github.com/k255/drill-gis/issues/1但是建议的解决方案对我们不起作用,所以我认为有一种方法可以实现这一点。

更新:我终于找到了Drill可以显示地理字段的方式,就是将PostGIS中的数据类型从 geometry 更改为 bytea 。这似乎是一个兼容性问题。通过这种方式,我们可以在Drill上执行地理空间查询,但在PostGIS中,这些字段不再是几何,因此无法对它们进行索引和处理。

0 个答案:

没有答案