自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(184)
  • 资源 (7)
  • 收藏
  • 关注

原创 PostgreSQL RelationInitIndexAccessInfo

代码2:IndexSupportInitialize。

2025-07-23 17:33:47 234

原创 PostgreSQL RelationBuildTupleDesc 分解

代码2:AttrDefaultFetch。

2025-07-22 13:52:19 231

原创 PostgreSQL SysCache & RelCache

根据opername从pg_operator获取记录,并放到SysCache中。代码2 CatalogCacheInitializeCache。代码4:RelationIdGetRelation。代码5: RelationBuildDesc。代码3 table_open。

2025-07-21 17:22:00 167

原创 Duckdb处理excel文件

duckdb通过xlsx扩展读写excel文件,但是不支持xls格式。将PG的数据导入到excel中, 并进行查询。使用duckdb cli工具。

2025-07-18 11:09:31 191

原创 PostgreSQL ExecIndexBuildScanKeys函数分解

该函数用在初始化索引搜索键的处理,也就是处理where条件的部分。

2025-07-15 17:22:14 133

原创 PostgreSQL ExecInitIndexScan 函数解析

该函数初始化索引扫描状态信息,创建扫描键,并打开表和索引的relation。

2025-07-14 17:00:45 220

原创 跨库更新ArcGIS 某个Geodatabase FeatureClass

中间机器: 转换所在机器(需要安装pg的命令行工具,尽量安装跟目标库上一致的版本,如KingbaseES V8R6 是基于PG12.1修改的,那就安装PG12版本的和ArcGIS Pro)今天不讨论使用ArcGIS的工具,比如Pro和ArcPy进行迁移,今天讨论用纯数据库命令行方法进行更新,毕竟速度快,而且方便任务化执行。目标库和源库需要对中间转换机器免密登录数据库(服务器端设置免密或者中间机器设置密码文件都可以)3 使用Pro在目标库上,导入第二部导出的xml工作空间。4. 中间机器上执行如下命令。

2025-07-12 14:16:33 269

原创 PostgreSQL投影代码分析_1

tlist_matches_tupdesc 其上层调用函数是。数据库投影的概念不在此介绍,PG中是否满足投影的函数是。

2025-07-11 15:51:52 123

原创 PostgreSQL kv(jsonb)存储

项目过程中,存储kv的时候,很多时候会选择redis进行存储,实际用PG也一样可以存储kv,而且查询速度并不慢。从测试数据上看,搜索某个key和value,几乎是毫秒级别的。下面可以看看PG存储kv以及其性能。

2025-07-07 16:37:57 234

原创 libpq 异步调用例子

下面是libpq链接PostgreSQL异步调用的例子。

2025-07-07 14:14:35 228

原创 Oracle DB和PostgreSQL,OpenGauss主外键一致性的区别

在主表上的关联键上建unique索引,在建关联的时候会报错,需要建一个unique的constraint才可以,也就是说o上不认unique索引,只认constraint。PG,在主表的关联键上建unique索引或者unique的constraint都可以。有些国产数据厂商的兼容O模式也会一并跟oracle是一个行为。个人认为,PG的兼容性更好些。

2025-07-04 11:59:45 270

原创 PostgreSQL基于归档日志的持续恢复测试

1. 主库(51)设置archive_command参数,将归档日志放到138的/data174/archivedir目录中。归档路径: 192.168.100.138 /data/174/archivedir。注释掉: primary_conninfo和archive_command两个参数。3. 修改pgdata_standby的postgresql.auto.conf。增加restore_command和参数。2. 目标机器(138)制作基础备份。

2025-07-01 10:54:11 197

原创 postgresql查看锁的sql语句

发现一个查看postgresql锁比较好的sql语句,参考链接地址如下。

2025-06-30 10:51:10 322

原创 duckdb c接口测试_读取数据

上下载相应cpu架构以及操作系统的包。

2025-06-27 16:32:27 136

原创 PostgreSQL窗口函数测试

【代码】PostgreSQL窗口函数测试。

2025-06-17 16:31:35 216

原创 ducklake+minio系列2

跟linux机器基本上一样,除了后面不需要添加data_path参数了,catalog已经存在了并且data_path已经存储在了,所以不需要再次指定data_path参数了。通过catalog(postgresql) + data(minio) 配置,这样通过别的机器也可以操作这个库了,这样就实现了并发访问了,如下。可以通过snapshots函数查看现有的快照,并且访问不同快照的数据。

2025-06-11 17:31:58 210

原创 ducklake+minio 系列1

1. 下载minio,启动后在控制台中创建名字为testbucket的bucket. 并在该桶中创建data_folder的目录,用来存储数据。6. 创建成功后,在postgresql 的ducklake_catalog库中创建了很多ducklake相关的catalog表,这些表就是用来管理后台数据存储中的数据,每个表具体什么作用可以查看。又增加了一个删除文件,但是新增的删除文件中的记录包括了上一次删除的记录,这主要是为了支持删除snapshot的功能,在此不在介绍。通过外部的文件创建一张表,如下。

2025-06-11 13:34:54 800

原创 PostgreSQL(PostGIS)触发器+坐标转换案例

我测试数据为4326到3857转换,该转换为公开算法,因此可以使用postgis自带的st_transform实现,但是很多时候进行转换的都是cgcs2000到地方坐标,只有甲方有相关算法,并且再使用国产数据库的时候,st_transorm的代码在数据库厂商手中,因此需要甲方和数据库厂商配合,甲方提供转换的函数或者动态库提供给数据库厂商来修改st_transform函数。需求,只录入一份坐标参考为4326的数据,但是发布的数据要求坐标必须是3857。对这种需求可以利用数据库触发器实现数据的同步。

2025-06-04 09:18:23 402

原创 PostgreSQL ERROR: out of shared memory处理

pg_dump -d dbname的时候会对库中所有的表执行lock table in shared mode 操作。所以解决这个问题除了增加max_locks_per_xact参数的数量,增加最大连接数实际也可以。从错误字面上看是超出内存大小了,建议增加max_locks_per_transaction参数。可以看出来,跟最大连接数和max_prepared_xacts相关。使用pg_dump命令导出一个库的时候,报。该操作会将表锁记录到表锁所在的共享结构中。

2025-05-31 17:38:48 465

原创 编译pg_duckdb步骤

git submodule update --init --recursive 来下载所需要的duckdb的源码到该目录中,但是实际使用貌似不行,所以需要到github中直接下载duckdb的源码并放到third_party中。1. 要求cmake的版本要高于3.17,可以通过下载最新的cmake的程序,然后设置.bash_profile的PATH环境变量,将最新的cmake的bin目录放到PATH环境变量的最前面。注意下载解压后,里面的third_party目录是空的,本来make的时候会执行。

2025-05-27 11:41:03 367

原创 linux signalfd

linux从内核2.6.22开始提供了signalfd系统调用函数。该函数提供了一个与信号绑定的特殊文件符号,也就是说发送给进程的信号,可以通过该函数提供的文件符号读出来,进一步践行一切皆文件的宗旨。同时该函数可以与select,poll,epoll多多路复用函数使用对信号进行监听处理。

2025-05-26 09:37:55 288

原创 PostgreSQL 处理链接请求

PostgreSQL的后期版本(16,17)在监听客户端链接以及客户端退出部分的监听处理部分由select 函数修改成epoll函数,具体原因不在此介绍。PG14版本还使用的select。

2025-05-23 15:56:25 251

原创 duckdb批量生成sql

2. 将duckdb以及shellfs扩展安装上(如果没有联网,可以在联网的机器上下载duckdb并install shellfs from community后,将duckdb和.duckdb文件夹一并拷贝上去,相当于绿色安装)将某个目录下sql,通过psql全部录入到数据库中。3. 启动duckdb,并加载shellfs。b. 分别每10个文件一个形成一个sql文件。4. 执行如下sql。

2025-03-17 15:49:54 232

原创 PG Merge语法使用

从PostgreSQL15开始支持Merge Into语法,以前版本可以使用insert ... do conflicts语法。目标机器 100.51 PostgreSQL 17.4 (编译安装的时候需要把dblink扩展加上)源机器 100.138 PostgreSQL 11.5。数据情况如下:图层名字maincity(源和目标结构相同)2. 在目标机器上创建dblink,以方便连接到源机器。3. 把objectid小于1200的同步过来。

2025-02-27 11:19:22 342

原创 inotify-tools使用

e 指定要监视的事件,多个时间使用逗号隔开。ymd分别表示年月日,H表示小时,M表示分钟。%T 使用由–timefmt定义的时间格式。-q 减少冗余信息,只打印出需要的信息。–format 监听到的文件变化的信息。可以配合rsync实现文件的自动同步。-r 使用递归形式监视目录。–timefmt 时间格式。%w 表示发生事件的目录。%f 表示发生事件的文件。%Xe 事件以“X”分隔。%e 表示发生的事件。

2025-02-10 14:44:47 160

原创 如何通过sql修改postgis的srid

从定义中可以看出srid要不从atttypemod中获取,也就是shape定义成(geometry,4326),要不从其 constraint上获取。那geometry_columns 中的srid是从哪获取到的呢。3. 现在查询geometry_columns。发现其元数据并没有更新过来,变成0了。4. 添加constraint。1. 删除check。

2025-02-05 11:49:13 232

原创 linux下非root用户监听0-1024端口的方法

解决setcap导致Java加载libjli.so 失败问题 - chenxueqiang - 博客园

2024-12-11 13:42:15 325

原创 PostgreSQL 访问http协议数据

当然,某些操作系统已经将其内嵌到自己的按照包里了,如KingbaseV8R6。可以在PostgreSQL使用http扩展包访问http。其返回结果为http_response,其定义如下所示。当然了,可以单独把header提出来。也可以向服务器上发送数据。

2024-11-28 17:05:46 189

原创 获取 PostgreSQL 某个表的定义

【代码】获取 PostgreSQL 某个表的定义。

2024-03-27 10:12:47 1022

原创 瀚高安全版创建postgis过程

由于安全版中三权分立,sysdba,syssao,syssso 三个用户,因此创建扩展需要关闭hg_sepofpwoers参数。3. 执行 select set_secure_param('hg_sepofpowers','off');这次测试的为瀚高安全版数据库系统V4.5.8, x86_64平台,5. 执行create extension postgis;2. syssso 链接到highgo库中。1. 安装server以及postgis。

2024-03-07 09:53:24 759

原创 tcpdump 常用用法

nn 显示ip地址和数字端口 ,如果只 -n 则显示ip,但是端口为services文件中的服务名。当然这个图是客户端先发起关闭链接请求,跟实际测试例子不同,因此仅仅为了参考使用。客户端telnet 192.186.100.138 命令下,服务器端显示如下。-i enp0s25 指定抓包的网卡是enp0s3。如果一个n也不指定,则显示域名以及服务名。-S TCP的seq以及ack显示绝对值。监控某个ip上的某个端口的流量。简要记录下tcpdump用法。port 抓取该端口中的信息。

2024-02-29 17:13:18 2052 1

原创 linux 自动断点续传方法

linux 上的rsync工具是支持断电续传的,类似(winscp),但是并不能做到自动的断点续传,比如在某些网络环境很不稳定的情况下,传输比较大的文件,就牵扯到自动断点续传的功能,那就需要自己写脚本进行判断处理了。1. 设置ssh自动登录(本例子rsync工具使用默认的ssh协议),ssh-copy-id。2. 设置crontab执行脚本如下(每分钟检测一次)send.sh脚本内容。

2024-02-27 13:50:32 917

原创 kubernetes常见问题

修改/etc/etcd/etcd.conf 中的 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379",让其监控所有ip。无法注册通过127.0.0.1:2379注册到etcd中,应该是etcd有问题。默认etcd并不监控127.0.0.1的2379端口,只监控IP:2379。1.kube-apiserver 的服务无法启动。2. 查看etcd的状态。

2024-01-31 17:32:57 774

原创 docker&&pipwork相关测试过程

这样,并且两个容器中除了eth0设备是挂接在docker0网桥上,还添加了一个eth1,该设备是链接在pipework建的br1上,如下所示。pipework可以减轻docker实施过程中的工作量,在网上也找了几篇类似的文章,按照相应配置,结果并不相同。docker启动的过程中,icc选项默认是true,因此iptables的FORWARD中会添加一条。然后再c1中ping c2 ,但是发现并不能ping的通,这跟网上介绍的测试结果不相同,如下。但是使用docker自动分配的ip是可以ping的通的。

2024-01-31 11:57:24 621

原创 创建私有docker镜像库过程

但是笔者按照上面链接测试发现,私有镜像存储位置并非链接上所说的/docker/registry/ 目录,而是/var/lib/registry, 因为registry镜像定义了一个路径为/var/lib/registry的volumn。如果不对该column做显示映射,docker会自动在宿主机的工作目录中创建一个目录,然后将该目录与/var/lib/registry挂接起来。此时通过push可以将镜像放到私有服务器中,具体过程可以查看。当然了自己也可以修改容器中存放镜像的目录,然后形成新的镜像。

2024-01-27 13:12:08 389

原创 从centos镜像上创建具备SSH链接的Dockerfile

(实际该命令也是读取Dockerfile文件中的内容,发送给docker的服务端进程,然后创建container后,执行里面的各个指令后,使用docker commit后保存镜像,然后再自动删除container)4. 执行docker build -t centos:sshd .2. 创建名字为Dockerfile的文件。1. 创建目录,名字随意。

2024-01-26 15:17:56 514

原创 mongodb相关信息

1. 分别下载 cmake,boost,mongo-c driver, mongo-cxx-driver (https://github.com/mongodb/mongo-cxx-driver/tree/releases/v3.4)2. boost下载的版本为60,放在e:\info\boost目录下,编译boost,步骤如下a. cd到 X64 native Tools Command Prompt for VS2017b. cd到e:/info/boost/boost_1_60_0目录下,

2023-12-18 14:19:48 1120

原创 GeoScene+人大金仓V8R6使用方法

4. 链接到新建的库上 create extension postgis. 和 create schema sde authorization sde;5. 使用pro或者arcmap用sde用户建立链接后,右键选择Enable Enterprise Geodatabase就可以了。基于兼容oracle模式,initdb 的时候 dbmode不指定的情况下就是基于oracle模式。初始化库完后先在kingbase.conf中添加如下四个参数。

2023-11-03 16:23:50 691

原创 查看Linux某个进程的环境变量

如何查看linux某个进程的所生效的环境变量。2. cd 到/proc/pid。1. 查找到该进程的进程号。

2023-09-06 17:31:52 384

原创 PostgreSQL+SSL链路测试

SSL一个各种证书在此就不详细介绍了,PostgreSQL要支持SSL的前提需要打开openssl选项,包括客户端和服务器端。7.实际上这时候就可以用psql 连接,只不过是ssl的单向认证,也就是客户端对服务器端的认证。3. 配置PG服务器部分,我的PG服务器是在postgres134用户下,因此需要。在PG的PGDATA目录中需要生成三个文件。生成server.csr(服务器签名)5. 设置pg_hba.conf。生成server.key。生成server.crt。生成root.crt。

2023-08-24 08:48:11 2058

高效的使用SQL操作空间数据库.pdf

详细介绍了使用空间SQL来操作空间SQL,以及各种配置方法等等

2011-03-01

linux socket 编程例子

该资源包括简单的tcpclient,tcpserver,以及多线程和多路复用

2024-03-20

用来解析filegdb api二进制流的库

将从filegdb api中所得到的二进制流解析成点串坐标,如有问题可以发信到[email protected]

2011-03-07

opengl 超级宝典第四版

opengl超级宝典第四版,超清晰,你们懂的

2012-01-16

VC Depends工具

可以使用该工具查看exe和dll文件所依赖的动态库。

2012-01-05

C++网络编程卷1 运用ACE和模式消除复杂性.pdf

介绍如何使用ACE消除编程的复杂性,涉及到网络,多线程,多进程

2011-11-01

海量空间数据库实施策略pdf

针对于矢量数据和栅格数据的实施策略,以及各种数据库性能的比较

2011-03-28

large_num_polygon

一个存储在DB2数据库中,超过一亿行记录的图层的浏览速度

2011-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除