首页 > 大数据 > 数据分析 > 如何构建云原生时空大数据平台?
在现代企业中,随着对技术的依赖日益加深, 空间数据的重要性愈发显著。它通过结合地理成分(如纬度、经度、地址、邮编等)与业务数据,成为解决复杂问题的重要工具。地理空间数据可从多种来源获取,例如卫星影像、传感器网络和现场调查,广泛应用于优化业务流程、提升效率及推进智慧城市建设。无论是优化门店选址、提升物流配送效率、推动智慧城市建设,地理空间数据的高效处理都能极大地提升数据价值。
在 Data Infra 第 23 期活动中,我们邀请到 沈阳尚源智慧科技有限公司 研发工程师 陈翔 和 Databend 研发工程师白珅,共同解析如何基于 Databend 构建云上的时空大数据仓库分析平台。
白珅:Databend 在地理空间数据处理中的优势与实践
地理信息系统是一门综合性的学科,结合了地理学,地图学和计算机科学等知识,对地理空间数据进行分析和处理。它主要的作用是将地图和数据进行整合,不仅能显示位置信息,还能显示位置相关的一些属性,可以帮助我们理解在什么地方发生了什么事,以及为什么发生,从而去解决实际的问题。

一个地理信息系统主要包含四个模块:

地理信息系统与我们的生活息息相关,在市政、商业、生活各个场景中应用非常广泛:
数据库是地理空间系统中的核心组成部分,负责存储和分析地理数据。没有高效的空间数据库,地理信息系统就无法发挥其强大的空间分析和可视化能力。Databend 在 11 月份的最新更新中,新增了对地理空间数据类型 Geometry 和 Geography 的支持,并提供丰富的空间函数,可以满足处理空间数据分析的各种需求。
同时,Databend 本身作为一个高性能云原生数仓,对地理数据类型的支持具有显著优势。
高性能: Databend 基于列式存储和向量化执行引擎,能够高效地处理海量空间数据;
云原生架构: Databend 能够轻松部署到云环境,具有良好的扩展性,能够适应不同规模的应用;
成本效益: 云原生架构和高效的处理能力,能够降低系统的总体拥有成本(TCO);
易于集成: 提供标准的 SQL 接口,方便与各种软件和工具集成,降低开发维护成本。

Geometry 几何类型是一种用于表示平面几何对象的数据类型,它使用笛卡尔坐标系( x,y),可以存储各种点、线、面、多边形的几何图形对象,适用于在投影坐标系以下的空间数据。它主要的用途是展示城市的建筑物、道路或者公公园等信息。

Geometry 几何对象主要包含以下几种类型:

Geometry 的数据存储格式通常有三种:
WKT(Well-Know Text) :一种文本格式的数据,比较适合人阅读;
WKB (Well-Know Binary) :它是对 WKT 格式做的扩展,在 WKT 的基础上增加了一个 SRID 来表示它的坐标系。 WKB 是一种二进制的格式,比 WKT 更加紧凑,适合于存储在数据库中。同时,它也有对应的 EWKB 的扩展;
GeoJSON : 主要适合与前端进行交互, javascript 经常会使用这种类型。它也支持对数据类型做一些扩展,可以存储扩展的属性信息。

Geometry SRID 坐标系是 GMT 类型,它是一个 x,y 的坐标,只有在一定的坐标系中才能展示真正的实际位置。我们常用的坐标有 4326 和 3857。4326 就是 WGS 84 的坐标,它是一种经纬度坐标系,经度是负 180 度到正 180 度,纬度是负 90 度到正 90 度,通常 GPS 就会使用这个坐标;3857 是墨托卡莫卡托投影,会把地图由球面映射成一个平面。它是在地图中广泛使用的一种坐标系,单位是米。

Geometry 类型还支持了非常多的函数,可以对数据进行各种操作和分析,为数据分析提供了一个强大的工具,我们可以从这些数据中提取出一些有价值的信息。函数主要分为如下几类:

Geography 数据类型是用来表示在地球球面上的地理位置和形状。它主要基于球面坐标系,经度和纬度,更适合于处理全球范围内的空间数据,例如国家和洲际航线。Geography 支持的几何类型和存储格式也是 WKT、WKB 和 GeoJSON 这几种。

Geometry 和 Geography 的区别可以从以下几个方面来看:

目前,在 Databend 内地理信息类型数据还是一个实验性质的功能,所以在使用之前需要使用 enable_geo_create_ table 打开配置,才可以在建表时使用这个数据类型。我们先建一个 location 的表,然后插入一些测试的数据。

用 Geometry 函数可以进行一些函数计算。例如计算面积,我们可以看到图中几个地方的面积都是和实际情况对应的。然后还可以计算距离,这里选择了计算到天安门的距离。最后一个例子是进行一个函数的计算判断,判断这个点是否在这个多边形之内。更多的函数可以参考 Databend 的相关文档。

这里写了一个小的 demo,已经开源在 Github 上。里面用到的技术栈有 leafletjs(一个前端的地图 JS 库),比较适合于创建轻量级的外部地图应用。地图数据使用了 maptiler,Web 框架用了 rocket,数据仓库是 Databend。大家如果感兴趣可以在 GitHub 上查看相关代码。

陈翔:基于 Databend 构建云上时空大数据仓库分析平台
沈阳尚源智慧科技有限公司在智慧市政和智慧工厂领域拥有超过 20 年的经验,并积累了超过 10 年的云计算和大数据技术实践。公司隶属于华立股份,其核心团队成员来自多家知名企业和高校,包括东北大学超算中心、百度、东软、神州数码、浪潮等。
由于积累了多年的行业经验,尚源智慧深刻认识到,市政行业的 IT 建设普遍薄弱,行业内虽具备丰富的业务知识,但技术水平仍有提升空间。所以公司一直以构建数字化平台为目标,致力于通过低代码、无代码方式降低市政行业的应用门槛,专注于工业互联网平台和空间信息技术研发,提供智能工厂和智慧市政整体解决方案及技术服务。
解密 时空数据
提到时空数据,很多人可能并没有一个相对直观的感受。我们来举例说明一下:在市政管道巡检中,一名工作人员忽然发现某个管道漏气,然后拍了一张隐患照片。这张照片里其实就包含了很多时空数据,例如拍摄时间,拍摄地点的 GPS 位置,拍摄位置与附近地标的关系(如某个公路附近,或某个小区附近),拍摄人身份,所属组织,排班计划,照片像素,拍摄设备,以及关联的流程审批状态,隐患处理操作步骤等其他业务数据。时空数据是结合时间、空间和业务属性的多维数据类型,它广泛应用于市政、工业和智慧城市等领域。

行业内主要关注的地理空间数据有矢量和光栅两种:
时空数据根据其内容和结构可以划分为以下主要类型:
半结构化数据:

时序数据:

空间数据:

非结构化数据:
时空 数据技术应用
趋势变化分析(像素级别)
空间索引:
传统 GIS 服务
1.
ArcGIS 是一个在 GIS 领域里耳熟能详的商用 GIS 软件,支持高级地理分析、地图制图和可视化,有着广泛的生态系统,有 Online 版本和 Pro 版本,可以提供一些定制化的功能。

2.
QGIS 是免费开源的 GIS 软件,主要针对教育调研、小型项目,可以在一些简单场景中作为替代方案。
3.
PostGIS 是一个 PG 的空间插件,可以在数据库层级做 SQL 级别的空间处理分析。如果你的数据库是 PostgreSQL,想快速支持空间能力,基本都会基于 PostGIS 做二次开发或是套壳。

4.
OpenLayers 是一个前端展示的 GIS 方案,用于构建交互式 web 地图的开源 JS 库,支持多种数据源(如 WMS、GeoJSON),用于空间数据的分析展示。
云原生 GIS 平台的架构设计
以上介绍的是一些传统的 GIS 应用服务,如果你想构建一个真正的云原生的 GIS 平台服务,尚源智慧也提供了一套参考架构:
1.

PMTiles 是一个 Serverless 的空间加载技术,可以做流式数据加载。我们把空间数据文件或多条目数据放在云存储上后,它可以基于所要定位的空间区域,按照 offset 偏移量去加载内部的一份数据,可以避免整体的数据传输。在传统的 GIS 方案里,通常会把整体数据加载到内存里或浏览器里展现,速度会很慢。
2.

Zarr 是一个云原生格式的多维数据立方体,可以替代 HDF5 或 NetCDF,它的数据是可以放在对象存储上的。
3.

DuckDB 是近几年比较火的数据库,可以做一些 OLAP 分析,它的分析能力比较强,性能非常高。它可以在浏览器端使用,可以直接读取 S3 或其他平台的数据。同时,它对于时间窗口函数或空间函数支持程度非常高。
4.
过去,GIS 厂商和相关产品主要关注在处理光栅和特征数据, 但是对于"时空大数据"来说, 不应该把数据类型限制在这两种上。 我们需要一种真正的非数据类型相关方法来查看时空数据,对数据仓库和数据湖的数据做时空特征标注和分析。对此国内外也研究了很多方法, 我们选择了时空资产目录 (STAC)规范。
STAC 通过添加 assets 来扩展这一概念。asset 是一些与功能具有相同时空范围的远程(或本地)文件或服务。它是在 GeoJSON 上面加了一些资产的形式,数据除了位置外,也有本身的属性。比如一张照片,可能会关联具体时间的相关内容。它会有一些具体的资产性质描述,把整个数据完善起来。

STAC 是一个开源项目,不仅定义了一些规范,还按照这套规范做了一些实验。每一个时空资产目录都会配套对应的 Rest API,用于方便地访问该时空资产。API 可以支持多语言实现,可以用 Java、Go、Python 做一些提供服务。这些资产目录可以作为服务部署在云上面,或不同的单机上去使用。此外,它还提供了一些比较开放的数据集供大家参考使用。
5.

时空数据建模主要分为对象建模和连接建模:对象建模比较简单。连接建模就是如何建立两个对象之间的关系。时空数据的关系错综复杂,一个是层级化的,一个是网络化的。
6.

上图左边的是时序数据分析,比如按时间查询,按窗口函数处理;右边是空间数据分析,有一些空间数据分析函数。例如空间关系有一些相交临近,如点线面之间的关系情况。时态的关系是本身的空间数据与时间对比,是相邻,还是包含。
7.

时空聚合是根据空间、时间和属性关系或这些关系的某种组合,将一个图层的属性连接到另一个图层。把时空数据聚合在一起,有一个关键词叫时间步长。这里面有几个元素,第一个是时长,就是分析多长时间之内的数据。第二个是时间的间隔,就是重复的间隔,每多少小时为一个频度数去分析这个数据。第三个是参考时间,在一些特定的分析场景用到。
8.

ASOF 也可以称作截止关联,它的作用是找对应基准时间相邻的最近一个数据。在一个真实生产场景里,有很多传感器,我们不可能保证每个传感器都在相同时间内发来数据。它会有相同的时间频度间隔,但是说因为传感器可能内置的启动时间不一样,内置的时钟不一样,导致它发送过来的时间都会有轻微的偏差。用 ASOF 语义,相当于定义好一个基准时间,然后找每一个传感器与这个基准时间相邻范围内最近的时间,作为标准参考值。
云原生 GIS 平台的构建方向
随着云原生技术的发展,构建高效、灵活的 GIS 平台成为时空数据应用的重要目标。尚源智慧结合 Databend 的技术实践,为云原生 GIS 平台的设计提供了关键方向:

云原生 GIS 平台的核心特点
在实际项目中,尚源智慧还对时空数据的处理与渲染进行了深度优化,大大提升了体验流畅度与整体平台效率。

1. 尚源智慧基于 Maplibre 和 Duck.gl 双渲染引擎的优势,满足了图层预览、图层编辑和大数据分析等不同场景。与之前的基于桌面化或服务器化的分析技术相比效率大大提升,能够处理大量数据并提供流畅的用户体验。

1. 时空数据的处理流程如上图,首先将原始数据抽取到数据仓库内,在 Databend 上做空间索引,进行数据转化后将数据提供给上层应用进行数据可视化。

1. 基于旧的水力模型架构存在很多弊端,如仿真数据需要在云端计算之后再在浏览器上做渲染,交互比较复杂。且由于基于旧的 GIS 前端技术,渲染率性能较差;基于新版 GIS 技术栈做调整后,满足了水力模型新的需求,如简化的制图表达,基础的官网编辑,弱化了一些不必要的元素(如建筑物),提高了专题图表达和渲染性能,百万级别点线的渲染能力,高效实时的数据统计分析能力。新版 GIS 技术栈将整个管网模型做了本地化,减少了计算结果与云端的交互,显示速度快了很多。同时将数据计算和处理,从 GIS 格式(wkb/wkt/geojson)转换成云原生技术栈,提升了整体管网模型效率。
数据仓库建设的三阶段演进
数据仓库是地理空间系统中的核心组成部分,负责存储和分析海量的地理数据。尚源智慧的数据仓库建设经历了从传统开源大数据技术栈到云原生数据仓库的三个阶段,每个阶段都对应着不同的技术需求与实现策略。
第一阶段:开源大数据全家桶

2018-2019 年期间,大数据技术在国内迅速普及,尚源智慧基于开源大数据技术栈构建了首版数据仓库平台。这一时期的解决方案主要依赖 Apache 生态系统的技术组件,通过整合各类工具实现完整的大数据处理链条。
技术难点:
这种"大数据全家桶"式方案虽然功能齐全,但组件繁多,集成复杂,且在部署与运维过程中耗费了大量资源。特别是在解决实时更新和高效删除操作时,传统的 Hadoop 生态组件表现出了明显的不足。
第二阶段:湖仓一体化上云

随着业务需求增长和技术发展,尚源智慧开始将大数据平台迁移至云端,并逐步采用湖仓一体化架构以提高计算效率和降低运维成本。
此外,团队还采用了 Hive On MR3 技术。这是一套基于 K8s 的调度方案,与传统的 Hive 在兼容性和计算效率上都有显著提升,为云上的大规模数据处理奠定了基础。
第三阶段:云原生数据仓库

过去两年间,尚源智慧逐步将数据仓库架构从传统 Hadoop 生态迁移至云原生数据仓库,并选择 Databend 作为核心引擎。
数据仓库选型:
数据编排工具:
工业时序数据处理
工业领域的数据以时序数据为主,更新频繁且数据量大。在最初的使用中,团队发现直接将时序数据存储在 Databend 中会导致快照膨胀问题,需要频繁清理过期数据。对此,尚源智慧对架构进行了优化:

ODS 层剥离:
冷热数据分层:
这一优化显著提升了时序数据的存储效率,并简化了运维流程。
基于 Databend 的指标建模
在基于 Databend 的数据仓库中,尚源智慧设计了分层指标建模体系,解决了数据清洗与计算中的复杂性问题。

明细层数据清洗与转化:
汇总层统计与计算:
复合指标计算:
数据宽表生成:
通过 Databend 的灵活架构与强大功能,尚源智慧实现了从传统大数据架构到云原生数据仓库的顺利过渡,显著提升了工业领域时空数据的存储、分析与应用能力。
代表性项目:天津水务集团智慧水厂

尚源智慧的智慧水厂项目融合了物联网、大数据技术,为水厂提供了一整套智能化解决方案,包括:
该项目还通过数据平台支持 BI 大屏、驾驶舱及报表等数据可视化功能,为行业提供了卓越的技术支持与应用效果。
社区协作与未来展望
尚源智慧与 Databend 都非常推崇开源技术,从建立第一天起就坚持积极贡献开源。双方在社区层面保持了密切合作,共同推进地理空间数据处理技术的发展。
Databend ⽀持 Geometry 和 Geography 类型后,使其成为构建⾼性能、可扩展、成本效益⾼的地理信息系统的理想选择。 它能够有效地解决传统空间数据库在处理海量空间数据和满⾜云原⽣架构需求⽅⾯的挑战,为地理信息系统应⽤提供强⼤的数据管理和分析能⼒。
⽬前 Databend 的地理空间数据类型的功能仍在开发中,未来规划将围绕着功能完善、性能提升和易⽤性改进和社区⽀持等四个⽅⾯展开:
关于 Databend
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
👨💻 Databend Cloud: databend.cn
📖 Databend 文档: docs.databend.cn/
💻 Wechat:Databend
✨ GitHub: github.com/databendlab...
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70042558/viewspace-3062004/ ,如需转载,请注明出处,否则将追究法律责任。