暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Postgre中FDW能做什么?

367


作者时间QQ技术交流群
perrynzhou@gmail.com2020/12/01672152841


什么是FDW?

  • FDW是外部数据包装器,早在2003年SQL标准中添加一个访问远程数据的规范,这个称为SQL外部数据管理。PostgreSQL从9.1版本已经开发出了FDW.在PostgreSQL中配置安装后,就可以访问远程服务器上的外部表了,比如有2个远程服务器(1个Postgres和1个Mysql),FDW可以做到Postgres上访问远程Mysql上的表数据.

  • 目前Postgres官方维护了postgres_fdw
    file_fdw
    ,这些fdw的扩展位于postgres源码目录的contrib
    中.

  • 基于PG有这个功能,如果想要数据融合,很容易在PG上实现,只要开发对应的FDW功能即可。




fdw执行流程

  • 词法分析器为输入的SQL语句创建查询树

  • SQL的执行器通过网络连接到源端的数据库服务器

  • 如果启用了use_remote_estimate
    选项,执行器会执行explain
    命令评估执行计划

  • 执行器根据最优的执行计划,重新创建SQL语句

  • 执行器通过网络把新的SQL语句发送到远程数据库服务器执行,最终接受执行结果。


FDW使用介绍

  • postgres_fdw
    是不支持死锁检测,因此如使用不当很容易产生死锁。

  • PG的FDW可以根据业务开发各种FDW把数据进行融合,比如数据迁移、异构DBMS之间的联动,是一个做数据整个的非常棒的功能



文章转载自存储内核技术交流,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论