首页 > 数据库 >【磐维数据库】支持postgis插件以提供空间数据支持

【磐维数据库】支持postgis插件以提供空间数据支持

时间:2024-10-24 16:59:58浏览次数:7  
标签:插件 磐维 数据库 校验 PostGIS 空间数据 postgis 数据

背景说明

 

一、磐维部署postgis扩展

功能描述

PostGIS是在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力的开源GIS数据库,它在PostgreSQL的基础上增加了表达地理信息的空间数据类型和操作这些类型的函数。

PanWeiDB V2.0-S2.0.2版本可使用PostGIS的如下模块:

v  支持矢量分析的postgis模块。

v  支持计算几何的sfcgal模块。

v  支持栅格分析的raster模块。

v  支持拓扑分析的topology模块。

v  支持扩展组件如下:

  • Fuzzystrmatch扩展,是一个判断字符串之间相似性和距离的一个插件,主要是提供Soundex、Levenshtein、Metaphone和Double Metaphone四个功能,开源PostgreSQL的contrib中包含此扩展。PostGIS中的postgis_tiger_geocoder依赖此扩展。
  • postgis_tiger_geocoder扩展,TIGER指的是拓扑集成地理编码和参考,这个扩展提供了TIGER数据的地理编码支持。

【须知】注意此扩展启用前,需要先启用fuzzystrmatch(字符串模糊查询)插件,以及可选的address_standardizer、address_standardizer_data_us。

  • address_standardizer扩展, TIGER数据地址规则化,是基于PAGC标准的地名标准化的扩展。
  • address_standardizer_data_us扩展,TIGER地址规则化示例数据集,包含了基于PAGC标准的地名标准化的美国样例数据。

注意事项

  • PanWeiDB创建函数不支持添加WINDOW关键字,所以不支持函数ST_ClusterDBSCAN和ST_ClusterKMeans。
  • PanWeiDB不支持BRIN 索引,所以不支持geog_brin_inclusion_add_value和geom2d_brin_inclusion_add_value等相关函数。
  • PanWeiDB不支持WITH ORDINALITY功能,所以topology.ValidateTopology提供的功能与PostGIS 3.2版本不一致。
  • 不支持PostGIS 3.2版本中的ST_AsGeoJson函数。

 安装PostGIS插件示例

版本信息

数据库:PanWeiDB_V2.0-S2.0.2_B01-install-bclinux_euler21.10-x86_64-no_mot.tar

插件:postgis-bclinux-euler21.10_x86-64.tar.gz

1、从移动集团发布安装包种,获取PostGIS插件安装包。

2、使用root用户解压PanWeiDB专用PostGIS插件安装包,将解压得到postgis文件夹下的内容复制到GAUSSHOME目录中($GAUSSHOME为数据库的安装路径)。

chown -R omm:dbgrp postgis/*
chmod -R 777 postgis/*
cp -r postgis/* $GAUSSHOME
chown -R omm:dbgrp $GAUSSHOME

3、yum安装相关依赖(如果不能使用yum可下载对应版本的安装包进行安装)。

yum install -y gmp gmp-devel mpfr mpfr-devel boost boost-devel  

4、启动数据库并设置guc参数behavior_compat_options(PGDATA为数据库的实例路径,omm为数据库安装用户)。

su - omm
gs_guc reload -D $PGDATA -c " behavior_compat_options = 'bind_procedure_searchpath, display_leading_zero' "
gs_ctl restart

5、重启并连接数据库(可能需要指定路径或修改连接端口等)。

gsql -r -d panweidb

6、创建插件。

create  extension  postgis;
create  extension  postgis_sfcgal;
create  extension  postgis_raster;
create  extension  postgis_topology;

7、查询测试。

SELECT Box3D(ST_GeomFromEWKT('LINESTRING(1 2 3, 3 4 5, 5 6 5)'));

结果返回如下:

Box3d
---------
BOX3D(1 2 3,5 6 5)
(1 row)

 创建测试表验证

 DBeaver图形化工具访问

图形化工具正常不显示数据图形,需要手动设置:

右键数据 ------> 显示/格式 ------> 设置列"st_astext"的格式 ------> geometry

 插入实际测试数据

图形可任意缩放,放大后可以看到更为细致的图形信息:

二、DTP工具迁移geometry数据

源端MySQL参数检查

 表数据量大小检查

 源端MySQL填充数据

 表数据量大小

正向全量迁移及全量数据校验

DTP迁移工具适配geometry数据类型的对象:对象兼容性、数据迁移和数据校验全部通过。

正向增量数据同步

 源端MySQL插入增量数据后,日志显示正确:

DTP工具增量同步界面无错误

增量数据校验报告

 再新增1条数据,manual激活增量校验功能。

# 一个点和多边形
INSERT INTO `t_geo_test` (ID,NAME,SHAPE) VALUES (13, 'Collection', geomfromtext('GEOMETRYCOLLECTION(POINT(2 0),POLYGON((0 0, 1 0,1 1,0 1, 0 0)))'));

可以看到增量日志输出:校验速率、校验条数、校验耗时

 DTP图形化界面显示的增量数据校验信息,条数一致,数据校验通过。

 1、经过确认,增量数据内容校验不通过是因为增量检验规则未修正,磐维对geometry数据中较长数据做科学计数,MySQL则是全长度显示,因此未通过增量数据校验内容。

 2、应用侧确认,数据一致无误。

结论

源端数据库版本:Server version: 5.7.20-log MySQL Community Server (GPL)

目标端磐维版本:PanWeiDB_V2.0-dtp3.0.0_B01 built at 20240806

        gsql ((PanWeiDB_V2.0-S2.0.2_B01) compiled at 2024-03-29 20:29:01 commit 2b900fc )

                                        List of installed extensions
       Name       | Version |   Schema   |                            Description                            
------------------+---------+------------+-------------------------------------------------------------------
 postgis          | 3.2.0   | public     | PostGIS geometry and geography spatial types and functions
 postgis_raster   | 3.2.0   | public     | PostGIS raster types and functions
 postgis_sfcgal   | 3.2.0   | public     | PostGIS SFCGAL functions
 postgis_topology | 3.2.0   | topology   | PostGIS topology spatial types and functions

测试数据类型:

线
多边形
中间有个洞的多边形
一个点和多边形
多面边形
POINT
LINESTRING
POLYGON
PolygonWithHole
Collection(GEOMETRYCOLLECTION)
MULTIPOLYGON

磐维2.0数据库已适配PostGIS扩展,支持已编译好的安装包进行最简化配置。

PostGIS的多种空间数据(geometry数据类型):支持对象评估、全量迁移、全量校验、增量同步、增量校验功能。

标签:插件,磐维,数据库,校验,PostGIS,空间数据,postgis,数据
From: https://www.cnblogs.com/yuweijade/p/18499759

相关文章

  • vscode github copilot 插件逆向分析
    vscodegithub插件逆向分析,接口https://codex.micosoft.icu/chat/completions。  你是一个人工智能编程助手当被问到你的名字时,你必须回答‘GitHubCopilot’严格且逐字地遵循用户的要求必须遵守微软制定的内容规范,包括确保内容的安全性、合法性和适宜性,防止仇恨言论、......
  • 常用的 RabbitMQ 插件
    RabbitMQ支持许多插件,这些插件可以扩展RabbitMQ的功能和特性。以下是一些常用的RabbitMQ插件:1、ManagementPlugin:RabbitMQ管理插件提供了一个Web管理界面,用于监控和管理RabbitMQ服务器。可以查看队列、交换机、连接、通道等的状态,并进行配置和操作。2、ShovelPlugi......
  • elasticsearch安装head插件
    当我们安装elasticsearch时,需要注意一下问题优化配置以下是如何通过jvm.options文件设置堆大小的示例:-Xms2g-Xmx2g将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等设置Xmx为不超过物理RAM的50%,以确保有足够的物理RAM用于内核文件系统缓存但是不能超过32g,超过32gjava......
  • IDEA久违了!FeignX插件支持方法级别的导航跳转
    需求调研:发现身边的同事追踪业务代码的时候,如果遇见feign接口,大家都是通过全局搜url进一步找到远程服务的实现。一旦项目大起来,路径变得复杂甚至重名之后,这将会是灾难。市面上并没有很好的IDEA插件支持feign接口的解析以及相对应的远程服务之间的跳转,因此本人([lyflexi](https:......
  • 在K8S中,常用的CNI网络插件有哪些?并说一下它们的工作原理和区别。
    在Kubernetes(K8s)中,常用的CNI(ContainerNetworkInterface)网络插件包括Flannel、Calico、Weave、Cilium等。这些插件的工作原理和区别如下:1.工作原理CNI是容器网络接口,它是一个标准的通用的接口,用于连接容器管理系统和网络插件。容器runtime为容器提供networknamespace,网络插件......
  • 【磐维数据库】WDR(Wordload Dignosis Report)报告
    WDR(WordloadDignosisReport)报告简介WDR报告是磐维数据库的工作负载诊断报告,它基于两个不同时间点系统的性能快照数据WDRSnapshot,生成这两个时间点之间的性能报告。WDRSnapshot的数据来源于DBE_PERFSchema内的视图。通过WDR报告,我们可以深入了解数据库在特定时间段内的运......
  • 【磐维数据库】通过python访问磐维数据库
    安装psycopg21、下载并解压包下载网址https://opengauss.org/zh/download/解压包#tar-zxvfopenGauss-5.0.2-CentOS-x86_64-Python.tar.gz解压安装包后,会得到两个目录lib和psycopg2。lib是psycopg2依赖的libpq等C动态库文件。2、将解压后的lib和psycopg2目录拷贝到......
  • 【磐维数据库】业务无法连接-连接数限制
    连接数介绍江西移动现场应用侧在使用磐维数据库,做应用兼容改造时,发现程序连接报错,借此介绍下磐维数据库在连接限制上的主要手段。方法分三层:实例级别、数据库级别和用户级别。max_connections(全局连接数限制)参数说明:允许和数据库连接的最大并发连接数。此参数会影响Vastbase......
  • 【磐维数据库】instr函数在磐维数据库使用报错处理过程
    背景江西移动现场,应用侧在磐维数据库使用instr函数时报错,报错如下:ERROR:functioninstr(text,unknown,integer,bigint)doesnotexist环境描述出问题的环境信息OS版本:BCLinuxforEuler21.10(LTS-SP2)DB版本:panweidb3.0.0问题描述程序代码显示functioninstr不存......
  • 【磐维数据库】3.0运行"show events;"命令,引发集群主节点CoreDump
    一、环境介绍数据库PanWeiDBV2.0-S3.0.0_B01架构Intel+x86_64操作系统BCLinux-for-Euler-21.10内核4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64二、故障场景1、客户环境可以稳定复现gsql-rshowevents;\cbomcdb;--------业务库名称sh......