数据库必知词汇:FDW

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 外部数据包装器FDW(Foreign Data Wrappers)是 SQL 标准 SQL/MED(SQL Management of External Data)开发的 Postgres 实现。FDW 提供了一系列统一的公共接口,使得扩展程序可以轻松地在优化、执行、扫描、更新和统计等核心部分和 Postgres 深度集成,从而可以用 SQL 语句直接查询和操作外部数据源

|名词定义|
外部数据包装器FDW(Foreign Data Wrappers)是 SQL 标准 SQL/MED(SQL Management of External Data)开发的 Postgres 实现。FDW 提供了一系列统一的公共接口,使得扩展程序可以轻松地在优化、执行、扫描、更新和统计等核心部分和 Postgres 深度集成,从而可以用 SQL 语句直接查询和操作外部数据源。PostgreSQL实现了部分SQL/MED规范,允许用户使用常规SQL查询访问PostgreSQL的外部数据。用户可以在外部数据包装器FDW的帮助下访问PostgreSQL的外部数据。外部数据包装器是一个库,它可以与外部数据源通信,隐藏连接到数据源的细节并从中获取数据。其中,一些FDW能够作为contrib模块获取,用户也可以自己创建FDW或者使用第三方所提供的FDW。

| 发展历程 |
2003年,一个名为SQL/MED(“外部数据的SQL管理”)的新规范被添加到SQL标准中。它是处理从SQL数据库访问远程对象的标准化方法。
2011年,PostgreSQL 9.1发布时提供了该标准的只读支持。
2013年,PostgreSQL 9.3增加了写支持。
现在有各种各样的外部数据包装器(FDW)可供使用,使PostgreSQL服务器能够访问不同的远程数据存储。

| 技术特点 |
在PostgreSQL主要内置了两个Foreign Data Wrapper:

  • file_fdw:用于创建表示平面文件(Postgres 9.1及以后版本)的外部表;
  • postgres_fdw:用于创建表示另一个PostgreSQL数据库(Postgres 9.3及以后版本)中的表的外部表。

| 相关词 |
PostgreSQL - 是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统
dblink - 数据库的链接,跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据
oracle_fdw - 是Postgre的一个外部数据接口,可以使PostgreSQL轻松跨库操作Oracle
mysql_fdw - 是Postgre的一个外部数据接口,可以使PostgreSQL轻松跨库操作MySQL
tds_fdw - 是Postgre的一个外部数据接口,通过安装扩展可以在本地建立一个外表映射到其他不同类型的数据库
redis_fdw - 是Postgre的一个外部数据接口,可以使PostgreSQL轻松跨库操作Redis数据库

| 案例展示 |
使用基于FDW的数据库。
postgres-fdw – 基于PostgresSQL的外部数据包装器
mongo_fdw – 基于MongoDB的外部数据包装器
mysql_fdw – 基于MySQL的外部数据包装器
oracle_fdw – 基于Oracle的外部数据包装器

|资料来源|
PostgreSQL 11在线手册 http://postgres.cn/docs/11/postgres-fdw.html
PostgreSQL's Foreign Data Wrapper https://thoughtbot.com/blog/postgres-foreign-data-wrapper
Foreign Data https://www.postgresql.org/docs/9.5/ddl-foreign-data.html
Foreign data wrappers https://wiki.postgresql.org/wiki/Foreign_data_wrappers

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 安全 数据库
数据库必知词汇:分级存储
分级存储是将数据采取不同的存储方式分别存储在不同性能的存储设备上,减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。
1072 0
|
存储 JSON NoSQL
数据库必知词汇:Cassandra
Apache Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案,线性可扩展性和在商用硬件或云基础架构上经过验证的容错能力使它成为关键任务数据的理想平台。
1013 0
|
分布式计算 负载均衡 算法
数据库必知词汇:Zookeeper
ZooKeeper是用于维护配置信息、命名、提供分布式同步以及提供组服务的集中式服务。ZooKeeper是Google的Chubby一个开源的实现,是Hadoop和HBase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,构成一个高效可靠的原语集,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
384 0
|
SQL 存储 分布式计算
数据库必知词汇:Hive
Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。 提供了命令行工具和JDBC驱动程序以将用户连接到Hive。
883 0
|
SQL 分布式计算 数据挖掘
数据库必知词汇:Pig
Apache Pig 是一个高级过程语言,特点是其结构易于大量并行化,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。
626 0
|
机器学习/深度学习 存储 分布式计算
数据库必知词汇:Mahout
Mahout 是 Apache基金会旗下的一个开源项目,其提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
424 0
|
SQL 分布式计算 Oracle
数据库必知词汇:Sqoop
Apache Sqoop是一个用于在Apache Hadoop和关系数据库等结构化数据存储之间高效传输大容量数据的开源工具。主要用于在Hadoop(Hive)与传统的数据库间进行数据的传递,可以将一个关系型数据库(例如 :MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。此外,对于某些NoSQL数据库Sqoop也提供了连接器。
489 0
|
Apache 数据库
数据库必知词汇:Flume
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume具有简单灵活的基于流数据流的体系结构。它具有鲁棒性和容错性,具有可调的可靠性机制和许多故障转移和恢复机制。Flume使用一个简单的可扩展数据模型,允许在线分析应用程序。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
463 0
|
存储 缓存 API
数据库必知词汇:Memcached
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
360 0
|
存储 分布式计算 搜索推荐
数据库必知词汇:HDFS
Hadoop分布式文件系统(Hadoop Distributed File System, HDFS)是指被设计成适合运行在通用硬件上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。
432 0