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是很多国家级项目推荐的数据库,这种空间类的扩展对以后功能开发还是很有帮助的,赶紧动手去试试吧!

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


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

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

相关推荐
Wang's Blog9 分钟前
PostgreSQL笔记22: WAL日志与崩溃恢复原理
数据库·笔记·postgresql
陈聪.31 分钟前
企业级 NoSQL 数据库 Redis 核心知识整理
数据库·redis·nosql
翼龙云_cloud42 分钟前
腾讯云国际代理商:CDB数据库自动备份和异地灾备配置 从快照到跨区域恢复
运维·数据库·云计算·腾讯云
小屁孩你滑稽掉了43 分钟前
prisma操作数据库的方法使用教程(简洁版)
数据库·node.js·prisma·fastify
Code额1 小时前
Python 连接 DeepSeek API,OpenAI 对话方式总结
后端·python·ai·ai编程
星火10241 小时前
【LangChain4j系列10】Guardrails 安全护栏
人工智能·后端
四千岁1 小时前
稀疏向量BM25Retriever不支持中文怎么办?jieba来帮忙
前端·javascript·后端
用户6919026813391 小时前
Docker基本概念
后端·docker·容器
颜进强1 小时前
14 - OpenSpec 老页面改造骨架:定位 + 增量 + 回归三件套
前端·后端·ai编程
唐青枫1 小时前
别只把 switch 当成多路 if:Zig 模式匹配、状态机与 Tagged Union 实战
后端