kingbase数据库集成Postgis扩展

✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨

这里有:

  • 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!
  • 趣味开发日常:代码背后的脑洞故事、工具测评,让技术圈不再枯燥~
  • 独家资源分享:开源项目、学习资料包,助你打怪升级快人一步!

👉 点击直达→ 盹猫猫的个人小站 👈

🌟 来逛逛吧,说不定能挖到你正在找的技术宝藏哦~

目录

[🐎 前言](#🐎 前言)

[❓ 什么是postgis扩展?](#❓ 什么是postgis扩展?)

[🌲 环境准备](#🌲 环境准备)

[👤 与KingBase官方客服沟通](#👤 与KingBase官方客服沟通)

[⚙️ 安装步骤](#⚙️ 安装步骤)

[🎁 解压扩展](#🎁 解压扩展)

[🏃 复制扩展](#🏃 复制扩展)

[♻️ 重启容器](#♻️ 重启容器)

[⭕ 总结](#⭕ 总结)


欢迎来到 盹猫(>^ω^<)的博客

本篇文章主要介绍了

**kingbase数据库集成Postgis扩展**

❤博主广交技术好友,喜欢文章的可以关注一下❤

🐎 前言

在postgres数据库中,我们可以为数据库添加postgis扩展来实现来直接使用一些空间计算方法,如一个点或路线附近多少公里内的建筑、水源的查询功能,自己实现起来可能并容易。同样的kingbase数据库有postgres数据库模式,可以支持postgis扩展么?

答案是肯定的,本篇文章就是记录如何在kingbase数据库中集成postgis扩展,当然该集成方法同样适用于其它扩展的集成。

❓ 什么是postgis扩展?

PostGIS 是基于 PostgreSQL 数据库的空间数据扩展 ,简单说就是给普通的 PostgreSQL 数据库 "装上处理地理 / 空间数据的能力"------ 原本 PostgreSQL 只能存文字、数字、时间这类常规数据,装上 PostGIS 后,就能直接存储点、线、面、轨迹、地理边界 等空间数据,还能执行距离计算、区域查询、空间交集、地图图层叠加等专业的地理空间分析操作,是地理信息系统(GIS)开发中最常用的开源空间数据库扩展。

废话不多说,让我们看看如何集成吧!

Let's GO!

🌲 环境准备

👤 与KingBase官方客服沟通

这是很难理解的一点,kingbase官方并没有在说明文档中提供一个可供下载扩展的页面,所以如果需要你需要与官方客服沟通,客服需要提供以下信息:

版本号:根据实际安装版本提供,这里我用的是v008r006c009b0014。

CPU架构:同样根据实际版本提供,这里我用的是X86

如果是docker安装,可以通过查看docker镜像确认安装的版本。

客服会通过让下载一个压缩包,这是kingbase对应当前版本的postgis扩展文件,如下图所示:

⚙️ 安装步骤

🎁 解压扩展

这里kingbase数据库使用docker安装,所以需要将下载的文件解压到容器的持久化目录下(该目录为使用dokcer run 启动容器时的配置的目录),这里是**/mnt/data/postgis ,** 解压后即可在该目录下获得postgis-3.1.2文件夹 ,该文件夹的内容如下:

🏃 复制扩展

首先需要进入kingbase容器内部,使用docker exec -it命令进行交互式界面(进入容器**/home/kingbase**目录下):

bash 复制代码
docker exec -it kingbase /bin/bash

容器内kingbase目录下有三个文件,分别是入口文件、安装目录、持久化目录(也就是postgis所在目录,这根据实际启动时配置的目录寻找)

我们需要将前面提到的bin、lib、share三个目录文件进行移动到install目录内,具体路径如下:

bash 复制代码
#复制bin目录
cp ./userdata/postgis/postgis-3.1.2/bin/*  ./install/kingbase/bin/

#复制lib目录
cp ./userdata/postgis/postgis-3.1.2/lib/*  ./install/kingbase/lib/

#复制extension目录
cp ./userdata/postgis/postgis-3.1.2/share/extension/* ./install/kingbase/share/extension/

其中如果有需要覆盖的文件,可以进行覆盖或跳过。

♻️ 重启容器

可以将容器重新启动或在容器内重新启动数据库服务,这里使用以下命令对容器进行重启:

bash 复制代码
docker restart kingbase

然后进入容器后使用ksql -d 数据库名 进入我们需要添加扩展的数据库,使用如下命令添加postgis扩展:

bash 复制代码
CREATE EXTENSION IF NOT EXISTS postgis;

这里因为已经添加过了,所以显示已经存在,如果没添加过则显示CREATE EXTENSION为添加成功,如下图:

我们可以使用如下SQL测试扩展是否生效:

计算:天安门到上海外滩的经纬度距离

bash 复制代码
SELECT ST_Distance(
    ST_SetSRID(ST_MakePoint(116.403874, 39.914885), 4326)::geography,  -- 北京天安门(经纬度+4326坐标系)
    ST_SetSRID(ST_MakePoint(121.473701, 31.230416), 4326)::geography   -- 上海外滩(经纬度+4326坐标系)
) AS distance_m;

显示如下图,无报错,则postgis已生效:

⭕ 总结

通过解压扩展、复制扩展、重启容器或数据库,kingbase数据库就可以集成Postgis扩展并实现空间函数的调用,极大的方便了地理信息方面软件平台的开发工作。并且kingbase是很多国家级项目推荐的数据库,这种空间类的扩展对以后功能开发还是很有帮助的,赶紧动手去试试吧!

上面就是所有配置信息了,如果内容对你有帮助,麻烦留一个赞👍和收藏⭐支持一下!


如果你对区块链 内容感兴趣可以查看我的专栏:小试牛刀-区块链

感谢您的关注和收藏!!!!!!

相关推荐
2301_790300963 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
To Be Clean Coder3 小时前
【Spring源码】createBean如何寻找构造器(二)——单参数构造器的场景
java·后端·spring
你才是臭弟弟3 小时前
SpringBoot 集成MinIo(根据上传文件.后缀自动归类)
java·spring boot·后端
九章-3 小时前
一库平替,融合致胜:国产数据库的“统型”范式革命
数据库·融合数据库
C澒3 小时前
面单打印服务的监控检查事项
前端·后端·安全·运维开发·交通物流
鸣潮强于原神4 小时前
TSMC chip_boundary宽度规则解析
后端
2401_838472514 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
u0109272714 小时前
使用Python进行网络设备自动配置
jvm·数据库·python
wengqidaifeng4 小时前
数据结构---顺序表的奥秘(下)
c语言·数据结构·数据库
what丶k4 小时前
SpringBoot3 配置文件使用全解析:从基础到实战,解锁灵活配置新姿势
java·数据库·spring boot·spring·spring cloud