【发布时间】:2017-04-24 15:32:18
【问题描述】:
我正在使用 multicorn 开发一组外国数据包装器,但我遇到了批处理数据的问题。
所以,我有两个外部表,search 和 data,每个表都由我正在编写的外部数据包装器支持。
我需要对这些表进行基本连接:
SELECT data.*
FROM search, data
WHERE search.data_id = data.id
AND search.term = 'search for this pls'
这行得通,但是data fdw 能够批量查询到服务器有一个障碍。如果search 表为给定的搜索返回5 个id,那么data fdw 对每个id 执行一次。支持data fdw 的 API 能够在一个请求中处理多个 id。
以下作品:
SELECT data.*
FROM data
WHERE id in ('2244', '31895')
在这种情况下,data fdw 接收到一个包含两个 id 的数组并且能够执行一个请求。
有什么方法可以让data fdw 有机会批量处理请求的 id 吗?
谢谢!
【问题讨论】:
-
你的 PostgreSQL 版本是多少?
-
9.6.2,使用 postgres 9.6 docker 容器
-
search和data是外部表,而不是 FDW 本身。我不确定我是否完全理解:您是在开发一些实际的 FDW(并希望编写它们以更好地执行)还是只是使用一些(并希望微调您的查询)? -
我正在使用 multicorn 编写 fdws。 fdws 正在向外部网络服务器发出请求以检索数据,我想以某种方式利用批处理这些请求。对于这个例子,每个 fdw 都有一个外表,
data和search。
标签: postgresql foreign-data-wrapper multicorn