Postgres外部表示例
目录
介绍
背景
环境配置
数据库设置
全部放在一起
远程服务器脚本(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外部表示例相关推荐
- postgres外部表
在创建外部表的时候遇见: CREATE EXTENSION file_fdw; 2018-12-21 17:32:23.822 CST [31237] ERROR: could not open e ...
- PostgreSQL外部表应用
Postgresql连接查询 MS SQL Server 简介 PostgreSQL从9.x开始支持所谓的外表的功能,就是在PostgreSQL中通过安装一些扩展再进行一些配置可以在本地建立一个外表映 ...
- hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表
外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...
- oracle 外部表装载,Oracle 原理:数据装载 ,SQLldr ,外部表
一.导入 SQLldr SQL*LOADER可以把txt文件,Excel文件导入到数据库中.使用SQLloader导入导出需要一个数据文件和一个控制文件.数据文件中存了你需要导入的数据,控制文件中写你 ...
- Oracle 原理:数据装载 ,SQLldr ,外部表
一.导入 SQLldr SQL*LOADER可以把txt文件,Excel文件导入到数据库中.使用SQLloader导入导出需要一个数据文件和一个控制文件.数据文件中存了你需要导入的数据,控制文件中写你 ...
- oracle外部表导入,oracle 外部表导入时间日期类型数据
oracle 外部表导入时间日期类型数据以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 建立外部表目录 create d ...
- Greenplum table 之 外部表
转载自: https://www.cnblogs.com/kingle-study/p/10552097.html 一.外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发 ...
- postgresql 外部表简单测试
postgresql 外部表测试 系统 debian-6.0.4 数据库 postgresql-9.3.0 ############################################## ...
- athena sql_使用SQL Server查询Amazon Athena外部表
athena sql This article covers the following topics: 本文涵盖以下主题: Overview of the Amazon Athena 亚马逊雅典娜概 ...
最新文章
- 【迁移学习(Transfer L)全面指南】Deep CORAL几何特征变换
- call_user_func() expects parameter 1 to be a valid callback, cannot access private method
- JAva入门 活着_java基础回顾
- C++学习笔记目录链接(持续更新中)
- C#如何使用DirectX实现视频播放
- scala 转换为字符串_如何在Scala中将字符串转换为布尔值?
- oracle+gsm安装,针对Oracle的10G版本提升SCOTT为DBA脚本!
- 软件测试过程中的度量与分析
- 001_动力节点_SpringMVC4_SpringMVC简介
- 山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt
- python爬虫网络库下载_Python3 DHT 网络磁力种子爬虫
- 深度学习-23:矩阵理论(L0/L1/L2范数)
- 电脑如何录制gif动图
- 将一般算术表达式转化为逆波兰表达式,并求逆波兰表达式的值。
- 人工智能 - 人脸合成 (腾讯AI开放平台)
- 推荐10款笔者一直在使用的Chrome提效插件
- PS中的颜色模式,8位、16位、32位区别、以及背景内容的区别
- 数学建模之线性规划问题(含整数规划和0-1规划)
- WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)
- 史上最全的Schnorr签名方案和BLS签名方案的全面对比
热门文章
- java聊天系统异常问题_【图片】写的socket编程实现窗口聊天出现空指针错误 在自己电脑没事【java吧】_百度贴吧...
- 正月十五元宵节各种设计师需要的PSD分层展板\晚会横幅
- 想要高清壁纸,高图桌面壁纸网站值得收藏!
- 极简主义2020UI设计正流行,欣赏下可临摹的案例模板!
- Build-Docker-Image-from-Zero: 从零构建Docker镜像
- Linux虚拟化KVM-Qemu分析(六)之中断虚拟化
- 分布式事务的特征、原理、以及常见3种解决方案
- pca降维的基本思想_百面机器学习 第四章 降维 PCA
- python程序调用函数的过程是什么_Python:函数定义和调用时都加*,有什么作用?...
- powerbuilder只能支持cp850字符集吗_杜比全景声是什么?哪些电视支持杜比全景声...