是否可以使用Postgresql';s file_fdw外部数据包装器读取网络共享上的文件?
以下是我的用例: 我有一台运行Postgresql的机器,它是为提高性能而设置的。但其存储容量可能有限。我需要向这台机器接收相当多的数据。这些数据存储在局域网内的另一台机器上,因此我喜欢使用Postgresql的是否可以使用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
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上访问网络共享的方式。我已经试过前斜杠了,但它不起作用