目录

介绍

背景

环境配置

数据库设置

全部放在一起

远程服务器脚本(postgres_2)

本地服务器脚本(postgres_1)

结论


介绍

我已经与Postgres一起工作了10多年,我必须说我对它的性能、可靠性和使开发人员的生活更轻松的特性非常满意。

我喜欢的这些功能之一是对Foreign table的支持,这是一个非常有用的功能,几年前我在网上发现它的。

背景

Postgres官方文档描述了如何创建外部表,但是没有显示如何逐步进行工作,因此我决定在此处撰写此文章。

环境配置

对于此示例,我们需要两个Postgres服务器。我将使用Docker在我的PC中创建它们,以便在完成本文后可以轻松摆脱它们。

由于我假设您已经拥有服务器,因此此步骤是完全可选的,但是如果您好奇并从未使用过该服务器,请随时访问此处和此处。

您应该能够使用终端和这两个命令来创建服务器,分别如下。

docker run --name postgres_1 -e POSTGRES_PASSWORD=postgres_1_pw -d postgres
docker run --name postgres_2 -e POSTGRES_PASSWORD=postgres_2_pw -d postgres

您知道如果运行docker ps一切都会顺利,并且会看到类似以下内容的信息:

CONTAINER ID  IMAGE     COMMAND                CREATED       STATUS        PORTS     NAMES
65b706348544  postgres  "docker-entrypoint.s…" 2 minutes ago Up 2 minutes  5432/tcp  postgres_2
16b1dcfd09fb  postgres  "docker-entrypoint.s…" 3 minutes ago Up 3 minutes  5432/tcp  postgres_1

数据库设置

在开始使用外部表之前,在以下所示的两台服务器中都需要一个非常基本的结构:

完成此操作后,我们将需要一个示例表users,其中包含位于postgres_2中的database_2上的一些随机数据。

要从服务器1(postgres_1)读取和写入users表,我们需要使用postgres_fdw扩展名,该扩展名将允许我们访问远程表中的数据,创建数据的原始源,当然,我们将需要一些凭据才能访问数据在远程服务器上。

一旦从postgres_2导入了users表到postgres_1,该users表应该可以以读或写操作进行访问。

全部放在一起

远程服务器脚本(postgres_2)

CREATE TABLE users
(id serial primary key,name character varying NOT NULL,email character varying NOT NULL UNIQUE,bio text
);INSERT INTO users (name, email, bio) VALUES
('Angelika Bartlett', 'angelika.bartlett@example.com', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit'),
('Roger Scott', 'roger.scott@example.com', 'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua'),
('Malia Murray', 'malia.murray@example.com', 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris');

本地服务器脚本(postgres_1)

CREATE EXTENSION postgres_fdw;CREATE SERVER postgres_2FOREIGN DATA WRAPPER postgres_fdwOPTIONS (dbname 'database_2', host 'postgres_2', port '5432');CREATE USER MAPPING FOR CURRENT_USERSERVER postgres_2OPTIONS (user 'postgres', password 'postgres_2_pw');IMPORT FOREIGN SCHEMA "public" limit to (users) FROM SERVER postgres_2 INTO public;SELECT *
FROM users;UPDATE users
SET name = 'Ing. Malia Murray'
WHERE id = 3;DELETE
FROM users
WHERE id = 3;

结论

我希望如果您需要使用Postgres和外部表,此代码段可以节省几分钟。

Postgres外部表示例相关推荐

  1. postgres外部表

    在创建外部表的时候遇见: CREATE EXTENSION file_fdw; 2018-12-21 17:32:23.822 CST [31237] ERROR:  could not open e ...

  2. PostgreSQL外部表应用

    Postgresql连接查询 MS SQL Server 简介 PostgreSQL从9.x开始支持所谓的外表的功能,就是在PostgreSQL中通过安装一些扩展再进行一些配置可以在本地建立一个外表映 ...

  3. hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  4. oracle 外部表装载,Oracle 原理:数据装载 ,SQLldr ,外部表

    一.导入 SQLldr SQL*LOADER可以把txt文件,Excel文件导入到数据库中.使用SQLloader导入导出需要一个数据文件和一个控制文件.数据文件中存了你需要导入的数据,控制文件中写你 ...

  5. Oracle 原理:数据装载 ,SQLldr ,外部表

    一.导入 SQLldr SQL*LOADER可以把txt文件,Excel文件导入到数据库中.使用SQLloader导入导出需要一个数据文件和一个控制文件.数据文件中存了你需要导入的数据,控制文件中写你 ...

  6. oracle外部表导入,oracle 外部表导入时间日期类型数据

    oracle 外部表导入时间日期类型数据以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 建立外部表目录 create d ...

  7. Greenplum table 之 外部表

    转载自: https://www.cnblogs.com/kingle-study/p/10552097.html 一.外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发 ...

  8. postgresql 外部表简单测试

    postgresql 外部表测试 系统 debian-6.0.4 数据库 postgresql-9.3.0 ############################################## ...

  9. athena sql_使用SQL Server查询Amazon Athena外部表

    athena sql This article covers the following topics: 本文涵盖以下主题: Overview of the Amazon Athena 亚马逊雅典娜概 ...

最新文章

  1. 【迁移学习(Transfer L)全面指南】Deep CORAL几何特征变换
  2. call_user_func() expects parameter 1 to be a valid callback, cannot access private method
  3. JAva入门 活着_java基础回顾
  4. C++学习笔记目录链接(持续更新中)
  5. C#如何使用DirectX实现视频播放
  6. scala 转换为字符串_如何在Scala中将字符串转换为布尔值?
  7. oracle+gsm安装,针对Oracle的10G版本提升SCOTT为DBA脚本!
  8. 软件测试过程中的度量与分析
  9. 001_动力节点_SpringMVC4_SpringMVC简介
  10. 山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt
  11. python爬虫网络库下载_Python3 DHT 网络磁力种子爬虫
  12. 深度学习-23:矩阵理论(L0/L1/L2范数)
  13. 电脑如何录制gif动图
  14. 将一般算术表达式转化为逆波兰表达式,并求逆波兰表达式的值。
  15. 人工智能 - 人脸合成 (腾讯AI开放平台)
  16. 推荐10款笔者一直在使用的Chrome提效插件
  17. PS中的颜色模式,8位、16位、32位区别、以及背景内容的区别
  18. 数学建模之线性规划问题(含整数规划和0-1规划)
  19. WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)
  20. 史上最全的Schnorr签名方案和BLS签名方案的全面对比

热门文章

  1. java聊天系统异常问题_【图片】写的socket编程实现窗口聊天出现空指针错误 在自己电脑没事【java吧】_百度贴吧...
  2. 正月十五元宵节各种设计师需要的PSD分层展板\晚会横幅
  3. 想要高清壁纸,高图桌面壁纸网站值得收藏!
  4. 极简主义2020UI设计正流行,欣赏下可临摹的案例模板!
  5. Build-Docker-Image-from-Zero: 从零构建Docker镜像
  6. Linux虚拟化KVM-Qemu分析(六)之中断虚拟化
  7. 分布式事务的特征、原理、以及常见3种解决方案
  8. pca降维的基本思想_百面机器学习 第四章 降维 PCA
  9. python程序调用函数的过程是什么_Python:函数定义和调用时都加*,有什么作用?...
  10. powerbuilder只能支持cp850字符集吗_杜比全景声是什么?哪些电视支持杜比全景声...