网站开发的最后5个阶段,网站建设依据什么法律,企业邮箱可以是个人qq邮箱吗,网站获取访客qq 原理注: 本文为云贝教育 刘峰 原创#xff0c;请尊重知识产权#xff0c;转发请注明出处#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 前言
Wrapper#xff08;FDW#xff09;是一项关键特性#xff0c;它赋予数据库用户直接通过SQL语句访问存储于外部数据源的能…注: 本文为云贝教育 刘峰 原创请尊重知识产权转发请注明出处不接受任何抄袭、演绎和未经注明出处的转载。 前言
WrapperFDW是一项关键特性它赋予数据库用户直接通过SQL语句访问存储于外部数据源的能力。遵循SQL/MED标准设计FDW使PostgreSQL能够无缝对接多种异构数据库系统以及非数据库类数据源。 FDW机制由四个核心组件构成
1. Foreign Data Wrapper特定于各数据源的库定义了如何建立与外部数据源的连接、执行查询及处理其他操作。例如“postgres_fdw”用于连接其他PostgreSQL服务器“mysql_fdw”则专门连接MySQL数据库。
2. Foreign Server在本地PostgreSQL中定义一个外部服务器对象对应实际的远程或非本地数据存储实例。
3. User Mapping为每个外部服务器设置用户映射明确哪些本地用户有权访问并提供相应的认证信息如用户名和密码。
4. Foreign Table在本地数据库创建表结构作为外部数据源中表的映射。对这些“外表”发起的SQL查询将被转换并传递给相应的FDW在外部数据源上执行。 随着FDW生态的日益繁荣各类针对不同数据源的FDW插件层出不穷如postgres_fdw实现PostgreSQL间的互连互通mysql_fdw、oracle_fdw分别用于连接MySQL和Oracle数据库还有file_fdw可用于读取文本文件或CSV等非结构化数据。
接下来我们重点介绍FDW功能使用。 一、外部表
使用PostgreSQL的file_fdw扩展可以创建一个外部表来读取和查询文件系统中的文本或CSV文件。以下是如何通过file_fdw实现外部表的详细步骤
使用场景当有个1G表数据CSV格式需要和本地表运算出报表结果 1.1 准备csv数据 1.2 创建外部表 1.3 与本地表进行运算 二、访问其它集群中的pg库
由于pg内部不同的数据库不能访问pg_fdw就能解决此问题。
注如无特殊说明以下操作均在当前库操作 2.1 创建扩展 2.2 创建外部数据服务 查看外部服务 删除外部服务 2.3 将外部服务授权给指定用户 2.4 创建外部服务的mapping
用于连接指向用户及指定数据库 查看mapping关系 如果密码配置错误用以下语句修改 补充
删除外部mapping 2.5 在远端创建表 2.6 创建外部表 补充
查看外部表 删除外部表 2.7 访问自身集群中的pg库
实现过程和第二章节一样
实现目标通过postgres数据库中的postgres用户访问appdb中appuser在schema:appuser中的表t1 注意
1、添加外部表时需要指定schme_name参数否则会到默认public模式下找数据 三、访问oracle中的表
3.1 安装oracle客户端
根据不同数据库版本自行到oracle官网下载如LINUX.X64_193000_client_home包
上传解压即可 3.2 配置环境变量 3.3 配置oracle全局动态库 3.4 测试连接oracle 3.5 安装oracle_fdw
下载地址https://github.com/laurenz/oracle_fdw 3.6 创建oracle_fdw扩展 如果碰到如下问题 先通过 ldd命令跟踪库文件的调用过程比如 而libclntshcore.so.19.1这个包在oracle客户端的lib目录下可以通过以下方式尝试解决
1、通过软链接 2、直接cp 3.7 创建对oracle的外部表 四、FDW的演进与未来展望
随着时间推移FDW的功能不断丰富和优化包括增强性能、增加更多类型的FDW以及改善用户体验。如今FDW已经成为PostgreSQL生态不可或缺的一部分大大提高了其数据集成能力。
展望未来FDW将继续成为实现跨多种数据库和非传统数据源交互的关键技术尤其是在大数据时代背景下对于构建复杂的企业级数据湖和数据仓库解决方案具有深远意义。同时随着云原生和分布式计算范式的兴起FDW也将顺应潮流持续演进以适应更加多样化且充满挑战性的应用场景。
最后感谢学习和观看我们会持续更新学习视频。 相关视频【云贝教育】PostgreSQL分享课PG-FDWFDW概述