第四章 点 、线与面:基于空间SQL的向量数据分析
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
向量数据是空间数据分析中最常用的数据类型,它简化了我们描述周边物体的方式。通过一组称为点的坐标,可以确定跳点、道路交叉口和地震震中的位置。描述道路网络或河流时,可使用线串;而城市中的建筑物、禁入区域或公园则用多边形来表示。 简而言之,向量基本元素是任何地理空间框架的基础,是不可或缺的核心要素。
MapReduce()作为谷歌推出的分布式执行框架,使海量数据分析成为可能。随后,Apache Hive通过SQL封装层简化了MapReduce交互方式。当分析操作愈发便捷之际,Apache Spark更以精简高效的数据处理与转换能力实现了突破性进展。 大数据框架的早期阶段曾试图淘汰SQL,但SQL始终是表达数据转换的最优方案。人们越是试图摒弃SQL,它就越发彰显其价值。
向量数据分析的复杂性不仅取决于DataFrame中的记录数量,更与单个向量观测值的规模及其相对空间位置密切相关. Apache Spark等大数据工具虽擅长大规模数据处理,却未针对地理空间数据进行优化。举例而言,若用非适配框架处理海量地理空间数据,可能耗时数日乃至数年,甚至永远无法完成。
Apache Sedona融合了Apache Spark的优势与优化的地理空间算法,提供了一个直观的平台,能够快速处理小规模、中规模乃至难以想象的大量数据,同时支持使用广为人知的SQL语言。
向量数据(亦称几何与地理数据)通过坐标对描述空间对象。采用有限数量的点可简化计算并提升查询性能。此处"有限"至关重要,但更关键的是识别几何形状何时过于复杂——这如同维生素:缺乏有害,过量亦毒。 若几何体已能以可接受精度表示对象,则不宜添加更多顶点。
正如原子构成整个地球的基石,几何体亦是空间分析的基石。研究单个原子的特性固然引人入胜,但它们之间的关系、联结及相互影响才能帮助我们理解宇宙。 空间分析中的几何体与空间关系亦遵循此理。空间关系正是从地理空间数据中获取洞察的关键——最近的商店在哪里?哪些区域面临洪水风险?出租车司机最常行驶的城市路段是哪些?这些案例都体现了空间关系与空间向量数据的结合应用。
Apache Sedona的诞生旨在简化地理空间数据处理与分析流程,使其惠及更广泛人群。该框架能统一处理小规模、中等规模乃至海量向量数据,并支持各类空间查询操作。
向量数据模型与空间关系
我们已在前一章使用过几何术语,现在让我们深入探讨。Apache Sedona通过Geometry类型定义通用抽象,其可能包含 (多)边形、 (多)点、 (多)线串,或几何集合。Apache Sedona遵循中OGC简单特征规范的指导原则:
- 点
-
最基础的几何类型。它可能是2D坐标XY或3D坐标XYZ。Apache Sedona还允许为2D和3D点(即XYM和XYZM)保存额外数值,称为M值(只要是数值型即可添加,如时间戳)。地图上显示的所有Google地点都是点。
- 线串
-
由有限点集连通构成的几何体,具有非零长度但面积为零。可表现为直线或曲线,现实世界中的河流、道路及路径即为此类。
- 多边形
-
一组点,其首尾点相连。该几何体同时具有大于0的长度和面积。多边形可能存在孔洞,处理时需特别注意。孔洞指多边形内部不相互重叠的边界线,这些边界线围成的区域不计入多边形面积。
为减少存储上述各类几何数据所需空间,可使用多元素对应类型。例如可定义多点、多线串或多边形集合。具体而言,可将建筑物各部分存储为单个多边形集合,并将所有非地理空间字段集中存放于一行,从而降低处理所需空间。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access