估算/打印csv复制状态到PostgreSQL表

3

我想了解将csv文件复制到postgresql表中需要多长时间。是否有一种合理的方式来打印已复制的行,或者有另一种方法来显示复制进度?

也许有详细设置或者我应该使用--echo或-qecho。

我正在使用: psql -U postgres -d nyc_data -h localhost -c "\COPY rides FROM nyc_data_rides.csv CSV"

4个回答

5

3
很遗憾,目前没有这样的东西。
一个想法是将输入分成1000或10000行的块,然后逐个导入。这不会显著减缓处理速度,并且您可以快速估算整个导入需要多长时间。

3

使用 PV 工具

pv /tmp/some_table.csv | sudo -u postgres psql -d some_db -c "copy some_table from stdin delimiter ',' null '';"

结果,它将显示出来。

1.42GiB 0:11:42 [2.06MiB/s] [===================================================================================================================================================================>] 100% 

0

正如Laurenz Albe所说,无法测量剩余多少时间来完成整个过程。但今天我做的一件事情是:

  • 在我的Linux中启动“监视系统”
  • 在这个应用程序中,有一个计数器,显示自我启动以来上传了多少数据
  • 使用我正在上传的文件的大小,我可以很好地预测还有多少数据需要发送到服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接