是否可以使用Postgresql';s file_fdw外部数据包装器读取网络共享上的文件?

是否可以使用Postgresql';s file_fdw外部数据包装器读取网络共享上的文件?,postgresql,Postgresql,以下是我的用例: 我有一台运行Postgresql的机器,它是为提高性能而设置的。但其存储容量可能有限。我需要向这台机器接收相当多的数据。这些数据存储在局域网内的另一台机器上,因此我喜欢使用Postgresql的COPY命令将数据读入服务器,使用file\u fdw创建包含源文件的外部表 然而 不管怎样,我试着做这样的事情: CREATE EXTENSION file_fdw; CREATE SERVER csv_src FOREIGN DATA WRAPPER file_fdw; CREA

以下是我的用例:

我有一台运行Postgresql的机器,它是为提高性能而设置的。但其存储容量可能有限。我需要向这台机器接收相当多的数据。这些数据存储在局域网内的另一台机器上,因此我喜欢使用Postgresql的
COPY
命令将数据读入服务器,使用
file\u fdw
创建包含源文件的外部表

然而

不管怎样,我试着做这样的事情:

CREATE EXTENSION file_fdw; 
CREATE SERVER csv_src FOREIGN DATA WRAPPER file_fdw; 
CREATE FOREIGN TABLE "mytable" (
  "a1" INTEGER,
  "a2" INTEGER
)
SERVER csv_src 
OPTIONS ( 
FILENAME '\\OTHER_MACHINE/myfile.csv', 
    FORMAT 'csv', 
    DELIMITER '|', 
    HEADER 'true', 
    NULL 'NULL', 
    ENCODING 'UTF-8'
); 
但是我得到
内核错误:错误:无法打开文件“\\OTHER\u MACHINE/myfile.csv”读取:无效参数

所以我猜这是因为原则上,
file fdw
不能处理网络共享上的文件,只能处理具有绝对路径的本地文件

我的问题是,如果真的是这样,如果有人知道解决方法

我目前的解决方法是压缩另一台计算机中的文件,并使用
文件fdw
程序
选项从标准输出解压并读取内容,而不是使用普通的
文件fdw
的文件名。这是因为解压程序实际上可以在网络共享中打开和读取文件(
\\OTHER\u MACHINE/myfile.zip
),但我觉得(或希望)它应该像普通普通文件一样工作


好的,另一个可行的方法是简单地将文件复制到Postgresql机器上。但是,由于存储限制,这是非常低效的,在我的情况下是不可行的。

这些反斜杠是什么意思?您在windows上吗?尝试前斜杠,而不是反斜杠。或者一封驱动器号。是的,对不起,我忘了说。Poastgresql正在Windows计算机上运行。反斜杠是指您通常在windows上访问网络共享的方式。我已经试过正斜杠了,但它不起作用。这些反斜杠是什么意思?你在windows上吗?尝试前斜杠,而不是反斜杠。或者一封驱动器号。是的,对不起,我忘了说。Poastgresql正在Windows计算机上运行。反斜杠是指您通常在windows上访问网络共享的方式。我已经试过前斜杠了,但它不起作用