您是否使用项目下载页面上提供的校验和文件检查了chartevents.csv
副本的完整性? 也许它在下载或解压缩过程中损坏了。
是的,我使用命令 md5 checksum_md5_zipped.txt 并且所有表都正常...
我还尝试使用压缩数据并运行 postgres_load_data script_7zip。 在这种情况下,我得到:在数据中找到未引用的换行符。 提示:使用带引号的 CSV 字段来表示新行。
我还检查了 md5 checksum_md5_unzipped.txt,一切正常。
听起来好像您正在运行的脚本与您拥有的数据不匹配。 我会确保:
.csv.gz
过去,如果没有更多信息(例如文件夹设置的屏幕截图、系统信息、运行的确切命令和确切的错误消息),远程调试真的很困难。
你好,
谢谢您的回答。
太好了,非常有帮助,感谢您提供更多信息。 我认为这就像文件不在文件夹中一样简单。 你能仔细检查一下你的文件夹C:/Users/Lejla/Desktop/MIMICIII
是否有CHARTEVENTS.csv
文件吗?
可能是您尝试提取所有压缩文件,但它因图表事件而失败,因此您只有一个.csv.gz
文件(原因可能是因为提取的文件是 33GB 并且您的空间不足,或者您的文件系统是 FAT32 (!),或者谁知道)。 在这种情况下,您可能希望编辑加载脚本以直接从.csv.gz
加载它。 您可以通过替换来做到这一点:
\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''
和
\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''
非常感谢您的回答。 这次我尝试使用 zip 文件,并为其运行脚本。 这次我得到了其他
消息......也许它会有所帮助。
你介意显示目录的内容吗?
我不介意。这是我文件夹的内容
好的, could not stat file "CHARTEVENTS.csv": Unknown error
实际上是 PostgreSQL 11 中的一个错误。在幕后它调用fstat()
以确保该文件不是目录,不幸的是fstat()
是一个 32 位程序,它不能处理像图表事件这样的大文件。 我使用 PostgreSQL 10.5 在 Windows 上测试了构建,但没有收到此错误,所以我认为它是相当新的。
最好的解决方法是保持文件压缩(即,将它们保存为.csv.gz
文件)并使用 7zip 直接从压缩文件加载数据。 在测试中,这似乎仍然有效。 这里有一个关于如何执行此操作的非常详细的教程: https :
上面的简短版本是您保留.csv.gz
文件,将 7zip 二进制文件添加到 Windows 环境路径,然后调用postgres_load_data_7zip.sql
文件加载数据。 您可以在一切之后使用postgres_checks.sql
文件来确保正确加载了所有数据。
编辑:对于您后来的错误,您在使用这种 7zip 方法的地方,我不确定为什么它没有加载。 尝试仅重新下载 ADMISSIONS.csv.gz 文件,看看它是否仍会引发同样的错误。 也许有新版本的 7zip 需要我更新脚本之类的!
你好,
谢谢你的详细解释。 我安装了 PostgreSQL 10.5,现在进程正在运行。 我认为加载所有表需要很多时间,但我不再收到“未知错误”。 非常感谢大家的帮助。
伟大的!
好的,
could not stat file "CHARTEVENTS.csv": Unknown error
实际上是 PostgreSQL 11 中的一个错误。在幕后它调用fstat()
以确保该文件不是目录,不幸的是fstat()
是一个 32 位程序,它不能处理像图表事件这样的大文件。 我使用 PostgreSQL 10.5 在 Windows 上测试了构建,但没有收到此错误,所以我认为它是相当新的。最好的解决方法是保持文件压缩(即,将它们保存为
.csv.gz
文件)并使用 7zip 直接从压缩文件加载数据。 在测试中,这似乎仍然有效。 这里有一个关于如何执行此操作的非常详细的教程: https :上面的简短版本是您保留
.csv.gz
文件,将 7zip 二进制文件添加到 Windows 环境路径,然后调用postgres_load_data_7zip.sql
文件加载数据。 您可以在一切之后使用postgres_checks.sql
文件来确保正确加载了所有数据。编辑:对于您后来的错误,您在使用这种 7zip 方法的地方,我不确定为什么它没有加载。 尝试仅重新下载 ADMISSIONS.csv.gz 文件,看看它是否仍会引发同样的错误。 也许有新版本的 7zip 需要我更新脚本之类的!
使用 PostgreSQL 10.11 帮助了我......谢谢
太好了,非常有帮助,感谢您提供更多信息。 我认为这就像文件不在文件夹中一样简单。 你能仔细检查一下你的文件夹
C:/Users/Lejla/Desktop/MIMICIII
是否有CHARTEVENTS.csv
文件吗?可能是您尝试提取所有压缩文件,但它因图表事件而失败,因此您只有一个
.csv.gz
文件(原因可能是因为提取的文件是 33GB 并且您的空间不足,或者您的文件系统是 FAT32 (!),或者谁知道)。 在这种情况下,您可能希望编辑加载脚本以直接从.csv.gz
加载它。 您可以通过替换来做到这一点:
\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''
和
\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''
谢谢,这对我有用:
\copy my_table_name from program 'cmd /c type input_data.csv' delimiter ',' csv header;
input_data.csv 像 11GB 大小。
“无法复制大文件”的问题出现在 11 和 12 版本中。 但是 10 是可以的。 如何在不压缩数据文件的情况下覆盖它,但也许可以将一些 Postgresql 程序文件从 v.10 插入/交换到 v 11 和 12?
解决方法:
从程序 'cmd /c "type x:\pathto\file.txt"' 中复制 t(c,d) 和(格式文本);
- 对于我的需要来说很慢。 我需要默认复制命令的速度
您可以考虑使用其他命令行工具将文件拆分为多个文件,然后一次加载单个文件。 在 unix 系统上,这可以使用split
来完成,你可以安装 GNU coreutils for Windows 来使用它。
我想我也遇到了和你一样的问题,但是我用的是非常新的12版本,有什么办法可以解决吗? 使用压缩文件?
是的,如果我没记错的话,压缩文件小于 4 GB,您可以通过使用压缩加载脚本(7z 或 gzip)来避免此错误。
好的,我现在试试这个方法,非常感谢你的回复
那么,根本不使用压缩或拆分就没有解决方法吗? 11、12 引擎使用 10 版本的 Postgresql COPY 命令?
如我所说:
我需要默认复制命令的速度,但对于大文件 + 12 的版本
这对我的需求至关重要。
好吧,PostgreSQL 是开源的,所以欢迎您尝试自己提供修复:)
以下是相关讨论: https :
否则,您将拥有此线程中提出的三种解决方法(更改版本、使用压缩文件、将文件拆分为多个部分)。 我相信还有其他解决方法。
将第 10 版 COPY 功能的代码的工作部分迁移到 11 和 12 不是很明显吗? 或者它是如此硬编码,导致所有人崩溃? :)
@ghYura这是社区维护的资源,因此如果您有改进代码库的建议,那么我建议您提出拉取请求。
我在 12.X 和 13.X 版本中将 CSV 加载到表中时遇到错误,但它在 PostgreSQL 版本 10.15 中就像一个魅力。 谢谢大家的帮助:)
最有用的评论
好的,
could not stat file "CHARTEVENTS.csv": Unknown error
实际上是 PostgreSQL 11 中的一个错误。在幕后它调用fstat()
以确保该文件不是目录,不幸的是fstat()
是一个 32 位程序,它不能处理像图表事件这样的大文件。 我使用 PostgreSQL 10.5 在 Windows 上测试了构建,但没有收到此错误,所以我认为它是相当新的。最好的解决方法是保持文件压缩(即,将它们保存为
.csv.gz
文件)并使用 7zip 直接从压缩文件加载数据。 在测试中,这似乎仍然有效。 这里有一个关于如何执行此操作的非常详细的教程: https :上面的简短版本是您保留
.csv.gz
文件,将 7zip 二进制文件添加到 Windows 环境路径,然后调用postgres_load_data_7zip.sql
文件加载数据。 您可以在一切之后使用postgres_checks.sql
文件来确保正确加载了所有数据。编辑:对于您后来的错误,您在使用这种 7zip 方法的地方,我不确定为什么它没有加载。 尝试仅重新下载 ADMISSIONS.csv.gz 文件,看看它是否仍会引发同样的错误。 也许有新版本的 7zip 需要我更新脚本之类的!