gpt4 book ai didi

postgresql - 将无标题列从 tsv 文件复制到 postgresql?

转载 作者:行者123 更新时间:2023-11-29 12:57:55 25 4
gpt4 key购买 nike

tsv 是指由制表符分隔的文件。我有一个非常大的 (6GB) 数据文件,我必须将其导入到 PostgreSQL 数据库中,在 56 列中,前 8 列是有意义的,然后在其他 48 列中有几列(大约 7 列)带有 1稀疏分布,其余为 0。有没有办法指定要将文件中的哪些列复制到表中?如果没有,那么我可以导入整个文件并提取所需的列用作我的项目的数据,但我担心将过大的内存分配给一个表,其中只有不到 1/4 的数据是有意义的.这会带来问题,还是我可以将有意义的列放入我的表中?我考虑过将该表用作临时表,然后将有意义的列导入到另一个表中,但我被指示尽量避免进行中间清理步骤,所以我应该直接使用大表,如果它不会的话导致 PostgreSQL 出现任何问题。

最佳答案

对于 PostgreSQL 9.3 或更新版本,COPY 接受一个程序作为输入。此选项正是用于这种预处理。例如,要仅保留 TSV 文件中以制表符分隔的字段 1 到 4 和 7,您可以运行:

COPY destination_table FROM PROGRAM 'cut -f1-4,7 /path/to/file' (format csv, delimiter '\t');

这也适用于 psql 中的 \copy,在这种情况下程序在客户端执行。

关于postgresql - 将无标题列从 tsv 文件复制到 postgresql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com