# 拉取镜像
docker pull dimitri/pgloader:latest
# 查看pgloader版本
docker run --rm --name docker_pgloader dimitri/pgloader:latest pgloader --version
# 显示pgloader命令帮助文档
docker run --rm --name docker_pgloader dimitri/pgloader:latest pgloader --help
使用docker版本的pgloader导入csv文件示例:
docker run --rm --name docker_pgloader -v /root/Documents/csv/mtnoh:/home -v /root/Documents/csv/mtnoh/log:/home/log dimitri/pgloader:latest pgloader --type csv --field "site_planning_id,superior_site_planning_id" -L "/home/log/pl_cover_point_1.log" --with "skip header = 1" --with "batch rows=10000" --with "fields terminated by ','" /home/pl_cover_point_1.csv postgres://postgres:[email protected]:35432/npas?tablename=npas.pl_cover_point
其中,关键点:
1.需要指定挂载卷目录,以便将本地的文件挂载到容器中的卷中执行,上面例子是挂载到/home路径下;
# 挂载csv文件路径
-v /root/Documents/csv/mtnoh:/home
# 挂载导入日志文件路径
-v /root/Documents/csv/mtnoh/log:/home/log
2.docker版本的pgloader也只是命令行工具,所以一但执行完毕则会自动退出,故每次都需要 “docker run --rm --name docker_pgloader dimitri/pgloader:latest pgloader + 具体操作” 执行命令
3.实践证明:--field 不是必须的,也就是说不是必须指定字段名,缺省指定表的所有字段,省下字段指定的功夫!
参考资料: