如何通过docker容器clickhouse客户端将csv数据导入表

5t7ly7z5  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(603)

我在用docker for windows

- Docker version 18.03.1-ce-win64  
- Docker Engine 18.03.1-ce  
- ClickHouse client version 1.1.54380    
- ClickHouse server version 1.1.54380

用于使用command:-
现在快跑 clickhouse-client 出口集装箱 $ docker run -it --rm --link clickhouse-server:clickhouse-client yandex/clickhouse-client -m --query="select * from default.table1 FORMAT CSV" > C:/Users/sony/Desktop/table1_data.csv --host clickhouse-server 注意:以上命令工作正常。
现在快跑 clickhouse-client 进口集装箱 $ docker run -it --rm --link clickhouse-server:clickhouse-client yandex/clickhouse-client -m -c "cat C:/Users/sony/Desktop/table1_data.csv | clickhouse-client --host clickhouse-server --query='INSERT INTO default.table1 FORMAT CSV' " 请告诉我导入时我做错了什么?
提前谢谢

xzv2uavs

xzv2uavs1#

我想你应该上山 csv 先在容器内归档。要装载文件,您应该添加 -v C:/Users/sony/Desktop/table1_data.csv :~/table1_data.csv 选择docker命令。所以docker run命令应该是这样的:

$ docker run -it --rm --link clickhouse-server:clickhouse-client yandex/clickhouse-client -m -v C:/Users/sony/Desktop/table1_data.csv:~/table1_data.csv -c "cat ~/table1_data.csv | clickhouse-client --host clickhouse-server --query='INSERT INTO default.table1 FORMAT CSV'"

编辑
我的错。在文件内安装不起作用。请尝试以下操作:

cat path_to_file/table1_data.csv | docker run -i --rm --link clickhouse-server:clickhouse-client yandex/clickhouse-client -m --host clickhouse-server --query="INSERT INTO default.table1 FORMAT CSV"

已经在linux上试过了,而且很管用。自 cat 我发现在Windows上不起作用 type 有同样的功能,老实说我没试过:

`type C:/Users/sony/Desktop/table1_data.csv | docker run -i --rm --link clickhouse-server:clickhouse-client yandex/clickhouse-client -m --host clickhouse-server --query="INSERT INTO default.table1 FORMAT CSV"`

希望有用。

相关问题