PostgreSQL 每周新闻 2019-1-23

PostgreSQL每周新闻#289 - 2019年1月23日

_config.yml

备注:英文原文地址

img

Postgres的JSON功能概述

大约六年前,Postgres 9.2开始支持原生JSON,并为Postgres世界带来了文档数据库的一些好处。 虽然已经取得了进展,本博客仍然提供了一些这方面的概述。

VENKATA NAGOTHI

如何在不添加单字节存储的情况下解决Postgres中的存储问题

关于ETL任务中存储大量查询的简短故事以及解决该问题的方法。

HAKI BENITA

使用Telegraf和InfluxDB监控您的PostgreSQL数据库

img_influxdb 本教程将专门介绍设置Telegraf和InfluxDB以监控PostgreSQL的过程。

INFLUXDATA 赞助商

pg_permission:检查您的安全性和权限

pg_permission是一个工具,它显示数据库的安全设置,以便您快速了解正在进行的操作以及已授予的权限。

HANS-JÜRGEN SCHÖNIG

PGLoader:使用单个命令中迁移到Postgres

基于COPY的数据加载工具,既支持并行又可以加载可能部分错误但不会停止的数据(如\ copy)。

DIMITRI FONTAINE

Postgres逻辑复制陷阱

这篇文章介绍了使用逻辑复制时需要注意的事项。

RAPIDLOOP

PostgreSQL的内部结构:简介

这篇文章介绍了一些最近在社交媒体上进行巡回演讲中谈到的并且在过去的一年中所收获的一些经典问题的更新。

HIRONOBU SUZUKI

部署和管理PostgreSQL 11

了解新的ClusterControl 1.7.1如何为PostgreSQL提供更高级的监控和管理功能。

SEVERALNINES 赞助商

通过TDS外部数据包装器在PostgreSQL中使用Microsoft SQL Server的数据

想从Postgres中查询存储在SQL Server中的数据?可以使用外部数据包装器,这篇文章介绍这是如何实现的。

LUCA FERRARI

Postico:macOS的现代Postgres客户端

Postico是一种商业产品(试用版),但外观优雅,像Mac一样。

EGGER APPS

_config.yml 本周提示

使用排它约束可防止重期范围重叠 -Brendan Carney

假设我们正在构建一个产品,用于计划员工在给定时间范围内应该处于哪个位置。 由于员工不能同时在两个地方,我们需要一种方法来确保我们的日期范围都不重叠 - 让我们使用排它约束! (必须启用btree_gist扩展:CREATE EXTENSION btree_gist;)

我们的表:


 CREATE TABLE employee_locations (
  name varchar,
  location varchar,
  start_date date,
  end_date date
);

约束:


 ALTER TABLE employee_locations
  ADD CONSTRAINT unique_location_date_range
    EXCLUDE USING gist ( 
      name WITH =, 
      daterange(start_date, end_date, '[]') WITH &&
    );

现在,让我们插入一条记录,说Brendan应该在1月份的办公室:


 INSERT INTO employee_locations
  (name, location, start_date, end_date) 
 VALUES 
  ('Brendan', 'Office', '2019-01-01', '2019-01-31');

如果我们现在尝试在任何重叠时间将Brendan放在不同的位置,则约束将不允许:


 INSERT INTO employee_locations 
  (name, location, start_date, end_date) 
 VALUES 
  ('Brendan', 'Store', '2019-01-15', '2019-02-15');
 ERROR: conflicting key value violates exclusion constraint "unique_location_date_range"

这个”本周提示“由strongDM赞助提供,保护对服务器/数据库的访问的最佳方法。 安排10分钟的演示

Written on January 23, 2019