美文网首页
Postgresql:使用postgres_fdw实现数据跨库查

Postgresql:使用postgres_fdw实现数据跨库查

作者: 不加糖L | 来源:发表于2019-12-23 14:12 被阅读0次

    1.扩展插件

    create extension postgres_fdw;
    

    2.远程数据库服务器
    1)创建

    create server inter_data FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
        HOST '192.168.20.46',
        dbname 'inter_data',
        port '5432'
    );
    

    2)删除

    drop SERVER inter_data
    

    3.映射用户
    1)创建

    create user mapping FOR PUBLIC server inter_data options(user 'postgres',password 'postgres');
    

    2)删除

    DROP user mapping FOR PUBLIC server inter_data
    

    4.远程表
    1)创建

     CREATE FOREIGN TABLE public.hangzhou_node (
        node_id VARCHAR (50),
        node_name VARCHAR (50),
        create_time TIMESTAMP (6),
        create_userid VARCHAR (30),
        geom geometry,
        node_type VARCHAR (10)
     ) SERVER inter_data OPTIONS (
        SCHEMA_NAME 'public',
        TABLE_NAME 'hangzhou_node'
     );
    

    2)删除

     DROP FOREIGN TABLE hangzhou_node
    

    5.验证
    在inter_data中的表进行修改,对应的复制表数据也发生修改

    SELECT * FROM hangzhou_node where node_id='0053ca999962a03638537ddbaf9346f2'
    

    总结:
    1.在数据迁移或者ETL及定时刷新上面会比较有。
    2.外部表实际不占存储空间。
    3.物理表和外部表不能同名,因为pg_class的对象名称唯一键的缘故。
    与dblink比较
    4.配置postgres_fdw更简单,而且也支持远程更新。
    5.运行数据量大的sql不易丢失。
    6.脚本运行中dblink需要 建立连接->处理->关闭连接 的过程。

    相关文章

      网友评论

          本文标题:Postgresql:使用postgres_fdw实现数据跨库查

          本文链接:https://www.haomeiwen.com/subject/hxmznctx.html