分布式空间分析升级后,最难排查的并不是 SQL 是否能执行,而是同一个函数究竟按平面 Geometry 还是球面 Geography 解释,边界框是否保留,栅格元数据是否被正确读取。

Apache Sedona 1.9.1 于 2026 年 8 月 5 日发布,发布说明列出 Geography 查询支持改进、多个函数的双分派、Geography 的广播空间连接、GeoTIFF geotiff.metadata 数据源、Box2D 类型及构造函数、ST_Extent 聚合与空 GeoParquet 的 bbox 元数据处理。这些变化属于数据类型、谓词、索引范围和元数据四条不同链路,必须分别验收。

可核查事实

  • Apache Sedona 1.9.1 于 2026 年 8 月 5 日发布。
  • 发布说明改进 Geography 查询支持,并为 ST_AsText、ST_GeometryType、ST_Area、ST_Centroid、ST_Length 等加入 Geography 双分派。
  • Geography 类型新增 ST_Buffer,并支持 ST_Contains 的广播空间连接。
  • ST_Within、ST_DWithin、ST_Intersects 和 ST_Equals 也加入 Geography 支持。
  • 新增 geotiff.metadata 数据源以读取 GeoTIFF 文件元数据。
  • 版本加入 Box2D 类型、ST_Box2D 与 ST_MakeBox2D 等构造能力,并增加返回 Box2D 的 ST_Extent 聚合。
  • 空 GeoParquet 文件不再在元数据中写入 bbox。
  • 发布说明还修复了非子午线边缘平面多边形的 ST_S2CellIDs 覆盖不足问题。

核心机制

Geometry 与 Geography 的差异不是函数名称不同,而是距离、面积、缓冲和谓词计算所依赖的空间模型不同。双分派意味着同一个 SQL 接口会依据输入类型走不同实现,迁移时因此要把数据类型、SRID、输出单位和边界案例一起记录。Box2D 则提供一种轻量范围表达,适合在聚合和过滤前传递空间外包框;它不是精确几何,不能替代相交或包含判定。GeoTIFF metadata 与空 GeoParquet bbox 的变化提醒团队:数据目录、优化器或下游服务会依赖元数据,空数据集和缺失范围必须作为明确状态处理。

技术路径

为升级建立四组最小数据:跨经线或高纬度的点线面、常规平面投影数据、含已知范围和投影的 GeoTIFF,以及完全空的 GeoParquet。

对每组分别运行面积、长度、缓冲、包含、邻近和相交 SQL,保存输入类型、SRID、输出单位、分区数和结果行数。以同一 Geometry/Geography 样本比对结果,确认业务选择的是预期语义;用 ST_Extent 和 Box2D 记录范围,再用精确谓词复核候选对象;读取 geotiff.metadata 并与 gdalinfo 或受控样本比较;最后检查空 GeoParquet 不会被下游误判为全球范围或有效 bbox。

GIS 场景

物流与海洋轨迹常跨越大范围,距离和缓冲更需要显式选择 Geography 语义;城市地块处理可继续以投影 Geometry 为主,但应验证混入 Geography 数据时的 SQL 行为。遥感数据湖可以使用 GeoTIFF metadata 建立影像目录,再以 Box2D 做分区级候选过滤;洪水、火险等批量分析还应把空 GeoParquet 当作正常输出情形,避免下游拼接流程用伪 bbox 触发错误范围查询。

检查清单

  1. 是否为每个关键表记录 Geometry/Geography 类型、SRID 和单位?
  2. 是否用跨经线、高纬和常规城区样本分别验证面积、距离与缓冲?
  3. 是否比较双分派函数的结果类型、数值和行数?
  4. 是否将 Box2D 或 ST_Extent 仅用于范围候选,并以精确谓词复核?
  5. 是否用独立工具抽查 geotiff.metadata 的范围、波段和坐标信息?
  6. 空 GeoParquet 是否被目录、索引和下游作业明确识别为无 bbox?

风险边界

发布说明中的 Geography 支持不表示任意旧 SQL 会自动获得正确球面语义;业务仍须指定类型、SRID 和单位。Box2D 是范围近似,不能用于最终空间关系判定。GeoTIFF metadata 的可读性也不保证所有驱动、云存储路径或损坏文件都一致。升级必须在目标 Spark、存储格式和生产分区策略下复验,而不能只依赖单机示例。

结论

将 Geography 语义、范围近似、影像元数据和空数据集分开验收,才能把 Sedona 1.9.1 的功能变更落实为可靠的分布式 GIS SQL 行为。

参考资料