QGIS、GeoServer及更多:SAP HANA空间集成
SAP的内存数据库SAP HANA具有地理空间引擎,使SAP HANA成为地理空间矢量数据的预定存储。一旦数据驻留在SAP HANA中,开发人员就可以利用HANA的多模型引擎(如图形和json文档库)以及高级分析功能和嵌入式机器学习(如PAL、APL、EML)。
此外,随着HANA2 SP04的发布,购物领券,空间分析领域取得了一些进展。最突出的特点是在数据库六边形集群。
然而,即使是最复杂的空间分析模型,它已经作为一个后端组件运行增值,值得充分提出,而不是仅仅是"在数据库中"。在SAP,我们提供SAP Analytics Cloud等解决方案,为业务用户提供地图可视化功能。GIS(地理信息系统)部门和开发人员确实需要更广泛的GIS特定功能集。因此,SAP与商业GIS软件的市场领导者Esri建立了强有力的合作关系。SAP HANA的空间组件旨在与Esri ArcGIS无缝集成,并作为Esri客户的认证地理数据库。
作为专有GIS软件的补充,许多客户使用QGIS等开源GIS解决方案运行混合景观。在本文中,我们将描述如何使用GeoServer将SAP HANA与QGIS桌面客户端连接。
技术上,微信淘客,我们将在本地笔记本电脑上设置整个堆栈。所有必要的软件组件(包括SAP HANA Express)都可以免费下载。
本指南重点介绍端到端的场景,并强调了设置的主要构建块。有关详细的技术说明,我们将链接其他文章。但是,如果你沿着直线走,你应该能够在不到30分钟内完成整个设置(不包括下载时间)。
玩得开心,同时弄脏你的手!
在本教程中,您将学习如何
SAP HANA Spatial无缝集成GIS和业务数据
如果您对有关SAP HANA Spatial和Esri ArcGIS集成的更多资源感兴趣,请查看以下博客,其中汇集了最重要的教程和文章:
https://blogs.sap.com/2017/11/15/sap-hana-spatial-resources/
本教程的所有内容都可以免费下载,并且可以安装在内存充足的笔记本电脑上。请在下表中找到各个组件:
安装愉快!
当然,如果您的HANA实例中已经有您喜爱的地理空间数据集,您可以跳过此步骤。只要确保将其存储在STèGeometry列中即可。
如果您正在寻找一个好的数据集,我推荐AirBnB根据知识共享许可证发布的数据。对于我们的例子,我们将使用柏林的摘要文件,它可以从以下URL获得:
上传CSV文件
有多种方式将此CSV内容上传到SAP HANA。我想简单地提到两个:
您可以使用内置的进口声明:https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/en-US/20f712e17519101490739374741fadcb97.html如果您使用的是Python,那么利用Pandas和SQLAlchemy有一种非常简洁的方法。要遵循此路径,首先需要为SQLAlchemy设置HANA插件:https://github.com/SAP/sqlalchemy-hana/之后,企业管理应用,信息大数据,您可以通过熊猫下载数据:数据框下载=pd.read\U csv文件('http://data.insideairbnb.com/germany/be/berlin/2019-09-19/visualizations/listings.csv')并坚持在HANA中:hdb\U连接=sqlalchemy.create\u引擎('hana://%s:%s@%s:%s'(hdb\u用户、hdb\u密码、hdb\u主机、hdb\u端口)).connect()测向_下载到sql(name='listings\u airbnb\u berlin',con=hdb\u connection,if\u exists='replace')
Adjust Table Structure
既然HANA中有了纯数据,我们仍然需要维护主键并用纬度和经度值构造一个几何列。最终,您可以使用SAP HANA支持的来自EPSG的4000多个空间参考系统中的任何一个。但是,由于我们处理来自柏林的数据,因此最好使用本地SRS,在本例中,它将是Gauss Kruger(EPSG 31468)。
我们可以通过在SQL控制台上执行以下语句来安装31468:
空间参考系统的创建语句的完整列表
在使用31468之后,我们可以将这两个语句运行到附加一个ST_GEOMETRY类型的列,并用从给定的纬度和经度值派生的几何体填充它:
最后,我们需要向已经存在的ID列添加一个主键约束。GeoServer稍后将需要此命令来发布WFS服务。
完整代码段
鉴于您安装了SRS 31468,可以使用以下Python脚本实现上载和转换数据的完整过程:
恭喜!现在SAP HANA中有一些空间数据正在等待您!
我们希望使用GeoServer以QGIS能够理解的方式填充数据。最常见的是,我们会使用一个Web功能服务(WFS)来实现这一点。我们可以使用WFS公开两个数据集–原始点数据以及包含六边形单元格和密度信息的视图。
使用bin目录中的一个依赖于平台的启动脚本或调用GeoServer目录中的
来运行GeoServer。一旦服务器启动,可以通过
访问默认安装中的管理UI:8080/geoserver
默认用户名/密码为admin/geoserver.
geoserver现在已启动并运行!
暴露HANA表中的数据
我们需要在GeoServer中创建一个工作区、存储和两个层。我们要实现的是,一层公开原始点数据,而第二层公开一些处理过的数据(即六边形聚类)。
通过选择左侧栏上的"工作区"条目创建工作区,然后单击"添加新工作区"
通过选择左侧栏上的"存储区"创建存储区,然后单击"添加新商店"。在下一页选择SAP HANA插件。