黄凯瑞:PostgreSQL 外部数据封装器 (FDW) 概述

黄凯瑞:PostgreSQL 外部数据封装器 (FDW) 概述

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

本文介绍了PostgreSQL中的Foreign Data Wrapper(FDW)扩展,它允许用户访问和操作存储在外部数据源中的数据,就像它们是PostgreSQL数据库中的表一样。FDW使PostgreSQL能够与各种数据存储系统集成,并在PostgreSQL环境中以统一的方式呈现数据。

🎯

关键要点

  • Foreign Data Wrapper (FDW) 是 PostgreSQL 的一个扩展,允许用户像操作本地表一样访问和操作外部数据源中的数据。

  • FDW 使 PostgreSQL 能够与各种数据存储系统集成,并以统一的方式呈现数据。

  • 2003 年,SQL 标准中增加了 SQL/MED 规范,支持远程数据库访问。

  • 2011 年,PostgreSQL 9.1 版本发布,开始支持 SQL/MED 的只读操作,2013 年增加了写入支持。

  • 目前有许多不同的 FDW 可供使用,但大多数没有 PostgreSQL 全球开发组的官方支持。

  • 设置 FDW 环境需要确保 postgres_fdw 扩展已编译并安装,并初始化数据库实例。

  • 在 C1 节点上创建外部服务器和用户映射,以便连接到远程数据节点。

  • 使用 postgres_fdw 插入数据时,数据可以存储在本地或根据范围分配到外部节点。

  • 处理外部查询时,postgres_fdw 需要进行分析和规划,以确保性能,而不是简单地转发 SELECT 查询。

  • 查询处理涉及分析器、连接外部服务器、规划和解析计划树等步骤。

  • 使用扩展查询协议和游标从远程节点检索数据,确保事务期间数据的一致性。

  • 在执行查询之前,规划器调用多个 FDW API 来了解远程数据的规模和执行路径。

  • 总结了 postgres_fdw 的基本工作原理,并计划在未来的博客中讨论 FDW 的其他功能。

➡️

继续阅读