Recent Posts

PostgreSQL 10.0 preview 功能增强 - 物理备库支持逻辑订阅,订阅支持物理主备HA漂移

1 minute read

背景 逻辑复制的本质是从WAL日志中,翻译出逻辑的数据(ROW),然后同步到下游节点。实际上是一个发布和订阅的流程。 那么有两个问题, 1. 当上游节点使用了流复制搭建主备HA,并且主备发生切换时,下游节点的订阅还能继续吗? 2. 可以使用备库节点作为逻辑复制的上游节点吗?(即物理备库作为逻辑复制的发布节点...

PostgreSQL jdbc batch insert

2 minute read

背景 如何快速的将数据导入数据库? 比如ETL程序,数据还原程序,数据初始化,数据同步等场景都会有这样的诉求。 从几个方面来分析 1. 统计信息 PostgreSQL会自动统计表的统计信息,包括柱状图等。会有一定的开销,所以在做批量导入时,可以先关闭表的autovacuum. 2. 索引 构造索引,会...

PostgreSQL 10.0 preview 性能增强 - GIN索引vacuum锁降低

less than 1 minute read

背景 如果你发现你的CPU没怎么用,但是压力就是上不去,很大可能是锁等待造成的(perf可以观察),锁在数据库优化中是一个比较永恒的话题。 以往在vacuum GIN索引clean posting tree时,需要锁整个posting tree,10.0改进了这块的锁,现在只锁一个subtree。 在较大的G...

视觉挖掘与PostGIS空间数据库的完美邂逅 - 广告营销圈人

6 minute read

背景 推荐系统是广告营销平台的奶牛,其核心是精准、实时、高效。 这么多广告平台,到底谁家强?谁的核心牛逼? 1. 精准,指对用户的描述精准,通常需要基于大量的用户行为数据,经历深度学习后形成的用户画像,或称之为标签系统。 标签的准确性关系到推荐的精准度,比如你可能不会对一个正常的年轻人推荐老花眼镜(当然如果有...

PostGIS 多点几何类型 空字符构造异常CASE - parse error - invalid geometry (lwgeom_pg.c:96)

1 minute read

背景 某个业务中存储了一批用户的访问轨迹数据,(每个店铺访问的次数,包括店铺ID,访问次数:1:1, 2:1即1号店访问了1次,2号店访问了1次)。 业务方有一个需求,根据店铺的访问次数圈出一部分人群,比如A店铺访问超出多少次的,或者B店铺访问超过多少次的等。 如果让你来处理,你会使用什么技术呢? 数据结构...

PostgreSQL 10.0 preview 功能增强 - CLOG oldest XID跟踪

less than 1 minute read

背景 PostgreSQL tuple中记录的xmin,xmax事务号是uint32类型,所以是一个rotate使用的方式,需要frozen。 CLOG存储的是oldest XID之后的XID,也就是说这个XID之后的事务,都保留了事务提交的状态值,之前的CLOG可能被删除或者正在被删除。 这个patch与从...

PostgreSQL 10.0 preview 功能增强 - 逻辑复制支持并行COPY初始化数据

4 minute read

背景 PostgreSQL 已支持逻辑复制,同时对逻辑复制增加了一个初始同步的增强功能,支持通过wal receiver协议跑COPY命令(已封装在逻辑复制的内核代码中),支持多表并行。 也就是说,你可以使用PostgreSQL的逻辑复制,快速的(流式、并行)将一个实例迁移到另一个实例。 Logical re...

开放地图OpenStreetMap与PostGIS的三生三世十里桃花

2 minute read

背景 喜欢自由吗?喜欢自由的使用全球地图吗?喜欢自由的贡献、开发全球地图吗?那你一定要来了解一下风靡全球的OpenStreetMap。谷歌最强劲的对手。 openstreetmap全球统计报告 http://wiki.openstreetmap.org/wiki/Stats#Registered_users_...