PolarDB for PostgreSQL 开源必读手册-Foreign Data Wrappers(FDW)使用介绍(下)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: PolarDB for PostgreSQL 开源必读手册

接上篇:https://developer.aliyun.com/article/1223103?spm=a2c6h.13148508.setting.16.44ec4f0eNvAByn

 

image.png

 

上图为FDW9.5之前做外部连接的流程,代价较大。

 

image.png

 

上图为FDW9.5后的外部链接流程,打开use_remote_estimate后,连接在远程完成,极大提高了查询性能。

 

image.png

 

在9.5版本之前,排序也需要从远程将数据传到本地,然后在本地做sort操作。

 

image.png

 

而9.5之后的版本中,排序操作被下推到远程服务器,排序完成后将结果返回至本地即可。

 

image.png

 

image.png

 

聚合操作同理。在10版本之后,本地不再做聚合,而是由远程服务器来完成。

综上,新版本的FDW性能得到了较大的提高。

 

部署演示

 

Postgres_FDW部署

 

image.png

 

首先,添加扩展,安装外界PolarDB扩展。创建server并为其命名,传入远程PolarDB名、服务端口以及要访问的数据库名,用于连接远程服务器。远程服务器上应配置好权限,即允许哪台客户端访问服务器。

 

image.png

 

通过\des命令可查看当前有哪些外部服务器以及对应的主机信息,如上图所示。

 

注意,因为PolarDB由很多数据库组成,在create FDW时,在哪个数据库上部署FDW,则FDW只能在该数据库上使用。

 

 

 

创建用户并为其授权,使其有权创建外部表,然后创建用户映射。

 

有了用户映射后,比如远程服务器是postgres用户,本地的scott用户也可对其进行访问,即能够以不同的用户来访问不同表的数据。

 

image.png

 

创建外部表,创建时后面需要跟上外部的服务器、schema以及远程表的名字。

image.png


通过\d查询,当前scott_pg用户下有dept_fdw和emp_fdw两个外部表,访问外部表与访问本地表没有任何区别。

 

 

可以通过\ds+emp_fdw查看该表,结果会显示它为外部表以及它的访问模式、远程服务器等信息。

 

File_FDW部署

 

image.png

 

首先,添加扩展,创建本地插件,创建基于本地FDW的server,将权限赋予相应的用户。

 

创建外部表。因为需要引用本地某文本文件里的数据,因此后面需指定file name即数据源路径,并指定格式为CSV,代表用逗号隔开列与列之间的数据。

 

image.png

 

创建成功后,查看该表。

 

/home/postgres/emp2.csv文件的产生有两种方式:

 

其一,如果是外部的文本文件,采集时将列与列之间用逗号隔开即可。

其二,如果是自己创建的外部表,通过上图语句将emp的内容进行复制即可。

 

image.png

 

最终,用户可以像访问内部表一样访问外部表,非常方便。此外,基于文件的外部表为只读,不能做DML操作。

 

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
23天前
|
数据库
|
29天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
105 4
|
1月前
|
存储 关系型数据库 分布式数据库
使用开源PolarDB和imgsmlr进行高效的图片存储和相似度搜索
使用开源PolarDB和imgsmlr进行高效的图片存储和相似度搜索
|
1月前
|
SQL JSON 关系型数据库
MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
【10月更文挑战第3天】MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
149 5
|
1月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB 开源:推动数据库技术新变革
在数字化时代,数据成为核心资产,数据库的性能和可靠性至关重要。阿里云的PolarDB作为新一代云原生数据库,凭借卓越性能和创新技术脱颖而出。其开源不仅让开发者深入了解内部架构,还促进了数据库生态共建,提升了稳定性与可靠性。PolarDB采用云原生架构,支持快速弹性扩展和高并发访问,具备强大的事务处理能力及数据一致性保证,并且与多种应用无缝兼容。开源PolarDB为国内数据库产业注入新活力,打破国外垄断,推动国产数据库崛起,降低企业成本与风险。未来,PolarDB将在生态建设中持续壮大,助力企业数字化转型。
93 2
|
2月前
惊世骇俗!开源 PolarDB-X 部署安装大冒险,全程心跳与惊喜不断!
【9月更文挑战第8天】作为技术爱好者的我,近期成功完成了开源 PolarDB-X 的部署安装。尽管过程中遇到不少挑战,但通过精心准备环境、下载安装包、配置参数及启动服务等步骤,最终顺利实现部署。本文将详细介绍部署全过程及可能遇到的问题,为您的 PolarDB-X 探索之旅提供参考与启发,希望能让大家在技术海洋里畅游得更加顺利!
157 2
|
15天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
17天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
64 3
Mysql(4)—数据库索引

相关产品

  • 云原生数据库 PolarDB
  • 下一篇
    无影云桌面