sql-server - 使用外部数据包装器连接 MS SQL Server 和 PostgreSQL
问题描述
我tds_fdw
在 MS SQL Server 和 PostgreSQL 之间使用过。
我在 PostgreSql 中创建了一个外部服务器和外部表。当我从外部表中选择数据时,它也会运行 Mssql?还是 PostgreSQL 中的数据存储?
解决方案
外部数据包装器只是查询远程数据的另一种方式。如果您创建外部表,则访问该表的任何 SELECT 都将转发到外部服务器(在您的情况下为 SQL Server)。
所以数据只存储在 SQL Server 中。
当您从外部表中选择时,外部数据包装器会将 SELECT 语句发送到 SQL Server。然后 SQL Server 将处理查询并将数据发送回 Postgres 服务器。然后,外部数据包装器将数据返回给您的应用程序(连接到您的 Postgres 服务器)。FDW 可以将一些操作“推送”到外部服务器,这样 Postgres 就不需要处理它们了。我不知道 tds_fdw 实现的细节,但是像WHERE
子句这样的东西通常会被推送到远程服务器,以便在 Postgres 端只处理相关数据。
从 MS SQL Server 的角度来看,FDW 只是另一个发送 SQL 查询的客户端。
当 MS SQL Server 正在处理请求时,Postgres(或更准确地说:为您的 Postgres 连接创建的后端)处于空闲状态(什么都不做)并等待 MS SQL Server 完成处理。
推荐阅读
- api - REST API:简单的基于令牌的身份验证 - 安全性?
- xml - CALL TRANSFORMATION 中的动态元素规范
- vb.net - Installshield 自定义对话安装程序
- materialize - 当有两个 ID 时,无法在 MaterializeCSS 中选择单选按钮
- vb.net - 在水晶报表vb中插入数字签名
- angular - 从 firebase ionic 检索后,在 html 中打印 json 对象列表
- java - 休眠删除命令未维护
- flutter - Flutter中如何更改BottomSheet的背景颜色?
- android - 如何获取最新版本的 kotlin 手动更新?
- android - 应用关闭时检测来电和去电