当前位置: 首页 > 知识库问答 >
问题:

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

孟俊晖
2023-03-14

我正在使用适用于Windows的Docker:

    < li>Docker版本18.03.1-ce-win64 < li>Docker引擎18.03.1-ce < li>ClickHouse客户端版本1.1.54380 < li>ClickHouse服务器版本1.1.54380

为了将数据从表导出为CSV格式,我正在使用以下命令:

>

  • 现在运行clickhouse-客户端容器进行导出

    $ 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
    

    注意:上面的命令可以很好地工作。

    现在运行<code>clickhouse客户端

    $ 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' "
    

    您能告诉我导入时我做错了什么吗?

    提前感谢。

  • 共有1个答案

    章振
    2023-03-14

    我认为您应该首先在容器中挂载< code>csv文件。要挂载该文件,您应该在docker命令中添加< code >-v C:/Users/Sony/Desktop/table 1 _ data . CSV:~/table 1 _ data . CSV 选项。因此,您的docker运行命令应该是这样的:

    $ 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上尝试过了,而且很有效。由于< code>cat在Windows上不工作,我发现< code>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"` 
    

    希望它能起作用。

     类似资料:
    • 我正在使用我的Mac上的docker-compose(使用boot2docker)与官方的WordPress Docker图像一起工作。我需要做一次一次性的数据导入。我不知道该怎么做。如何将数据导入数据库容器?

    • 我的系统是MAC。我的系统中没有安装oracle数据库。我的系统中有在docker容器中运行的oracle数据库。我安装了SQLDeveloper,我可以通过它连接到数据库。如何通过SQLDeveloper. i有从下面的链接下载的示例模式“源代码(tar.gz)” https://github.com/oracle/db-sample-schemas/releases

    • 我是docker的新手,在运送数据容器时遇到了一个问题。好的,通常我们会发送图像,用户可以根据需要从该图像中启动容器,对吗? 现在我也想运送一些数据——所以我做了一个数据容器: 接下来,我简单地启动了一个bash,并将一些数据插入到我的数据容器中 现在我想允许我的团队成员使用相同的数据(脱机),所以我想“发送”我的数据容器给他们。因此我使用 但是当我重新导入这个 我不能使用这个“容器”,因为它似乎

    • 问题内容: 我想通过可手动运行以更新数据的PHP脚本将表格从CSV文件导入SQLite DB。 以下是我要实现的目标的列表: 将旧表(称为“ produkte”)重命名为product-currentdate(或删除表) 然后从CSV文件导入文件(分隔并使用ISO 8859-1字符集/ CSV文件的第一行包含表标题) 将日期保存在表“产品”中 我发现了一个由于某种原因无法运行的脚本: 我希望有人知

    • 问题内容: 我有以下结构的csv文件: 使用以下MySQL函数如何导入MySQL表的第一和第三列: 我为我的英语道歉! 提前致谢 ! 问题答案: 您可以指定列,并将不需要的列标记为“ @dummy”。 替换,并且只要你喜欢。要设置不在数据文件中的其他列,您可以这样做: 作为进一步的参考,我建议您看一下MySQL参考。

    • 我有一台电脑目前托管着动物园管理员和kafka服务器。 在同一台机器中,我还有一个脚本,用于消耗发送到本地kafka服务器的消息。如果我直接运行它,消费者脚本将按预期工作。 我想从docker容器中运行消费者脚本。 我已经成功地构建并运行了一个运行消费者脚本的容器,但是它永远在等待kafka消息。 如何将kafka消息重定向到容器中?这样做的唯一方法是直接在容器中托管zookeeper和kafka