在MacOS Mojave上管中窥豹TimescaleDB
年底换了工作, 因此未来一段时间的工作方向会集中在时序数据库.然后恰逢今年9月,号称第一款基于PostgreSQL的时序数据库 TimescaleDB正式推出了可用于生产环境的1.0版本。于是就赶快先试用了一把…
年底换了工作, 因此未来一段时间的工作方向会集中在时序数据库.然后恰逢今年9月,号称第一款基于PostgreSQL的时序数据库 TimescaleDB正式推出了可用于生产环境的1.0版本。于是就赶快先试用了一把…
由于对Golang以及PostgreSQL(下文简称PG)的FDW(Foreign Data Wrapper)两个技术的双重喜爱,因此我利用假期用Golang实现了一个访问douban API的FDW. 同时也借此机会总结了一下 PG的FDW技术并分享一下使用Golang实现FDW的一些经验。
全文索引如下:
第三部分: 如何用Go来实现一个FDW
由于对Golang以及PostgreSQL(下文简称PG)的FDW(Foreign Data Wrapper)两个技术的双重喜爱,因此我利用假期用Golang实现了一个访问douban API的FDW. 同时也借此机会总结了一下 PG的FDW技术并分享一下使用Golang实现FDW的一些经验。
全文索引如下:
第二部分: 揭秘FDW
由于对Golang以及PostgreSQL(下文简称PG)的FDW(Foreign Data Wrapper)两个技术的双重喜爱, 因此我利用假期用Golang实现了一个访问douban API的FDW. 同时也借此机会总结了一下 PG的FDW技术并分享一下使用Golang实现FDW的一些经验。
全文索引如下:
第一部分: FDW的前世今生
我发现有不少做应用的技术人员对于数据库的一些常识概念其实是理解不清的,这就导致了他们设计的应用中往往充斥了数据访问的相关错误却浑然不知。所以其实我还是比较乐意普及一些数据库常识的。
本文就是我在 segmentfault.com 上对 “怎么理解SQL的四个事务隔离级别?“这个问题的回答:
由于手头当前的工作是基于PostgreSQL(以下简称PG)做二次开发,因此目前对PG的源码也或多或少地读了一些,因此便想到了在博客里分享一些关于阅读PG源码所获得的KnowHow。
在国内的PG技术圈内,提到PG源码解读自然首推武汉大学的两位彭老师所著的《PostgreSQL数据库内核分析》。不过这本书的着眼点是对PG源码的整体架构,以及SQL引擎,存储系统,事务处理等等这些实现机制&算法的介绍,而我则主要想分享一些PG代码中的一些有意思的小细节/小功能。虽然只是PG那几百万行源码中的沧海一粟,不过从这些小细节中解读程序设计的匠心也是颇有意思的。
第一篇就从PG中无处不在的OID开始吧
这篇文章我已经酝酿颇久了,诱因是因为PingCAP团队为了推广他们的TiDB而在知乎专栏发了一篇文章《TiDB 增加 MySQL 内建函数》。受此文启发,我在网上搜索了一下PostgreSQL(以下略称”PG”)中定制内置函数(Built-in Function)相关的文章,果然没有搜到什么像样的中文文章。其实为PG添加内置函数并不难,可能是相对于hacking它的SQL引擎或者存储引擎等等话题而言,加一个内置函数的逼格实在是太Low吧。不过TiDB这个诞生还没多久的数据库产品都知道通过先利用内置函数这个话题来由简入深地吸引广大开发者为它贡献代码,PG作为一个诞生了已有20年的开源数据库老大哥却没有一篇像样文章,也难怪PG的普及率不高了。
以上就作为这篇分享的「意味づけ」吧…