如何在 Windows 中使用 Clickhouse 访问 Docker Container 以加载数据? [复制]

Posted

技术标签:

【中文标题】如何在 Windows 中使用 Clickhouse 访问 Docker Container 以加载数据? [复制]【英文标题】:How to access Docker Container with Clickhouse in Windows for loading data? [duplicate] 【发布时间】:2019-08-04 17:57:02 【问题描述】:

我有兴趣将数据加载到 docker 容器中,clickhouse 目前在 windows docker 桌面上运行。我已经建立了我的表并以 .csv 格式准备了 R 中的数据,但现在想使用系统而不是通过 R 或 Python 加载数据。在 Ubuntu 中,我之前在没有 docker 的情况下使用此博客中的代码加载到我的 clickhouse 数据库中完成了此操作:

https://tech.marksblogg.com/billion-nyc-taxi-clickhouse.html

 time (for filename in /home/mark/trips/trips_x*.csv.gz; do
            gunzip -c $filename | \
                python trans.py | \
                clickhouse-client \
                    --query="INSERT INTO trips FORMAT CSV"
        done)

在访问 docker 容器时,我将如何使用 windows bash 或 powershell 实现类似的过程?现在我在 Windows 中,所以我有 clickhouse dockerized 并在那里运行。

编辑

我的文件是 csv 格式,所以这是我的第一次尝试:

#loop through files
$files = Get-ChildItem "C:\Users\xxxxx\Documents\testing_load"

foreach ($f in $files)
    $outfile = $f.FullName | Write-Host `
    docker run -it --rm --link chanalytics:clickhouse-server yandex/clickhouse-client --host clickhouse-server `
    INSERT INTO trips FORMAT CSV


尝试对目录中的每个 csv 文件调用插入命令

【问题讨论】:

您在寻找clickhouse-client--host--port 选项吗? 如果需要通过 powershell 访问,那么可以。目前clickhouse服务器在我使用--port设置的本地主机的8123上运行。 Clickhouse 客户端可以毫无问题地访问该端口。 【参考方案1】:
Figured it out I think:


#loop through files
$files = Get-ChildItem "C:\Users\xxxx\Documents\testing_load"

foreach ($f in $files)
    $outfile = $f.FullName | Write-Host
    Get-Date | Write-Host    
    "Start loading" + $f.FullName | Write-Host
    docker run -it --rm --link chanalytics:clickhouse-server yandex/clickhouse-client --host clickhouse-server clickhouse-client --query="INSERT INTO trips FORMAT CSV"
     Get-Date | Write-Host 
    "End loading" + $f.FullName | Write-Host

【讨论】:

正如您链接的后续问题所证明的那样,这无效 - 没有输入被传递给 docker 命令(即使您通过查询解决了问题字符串)。

以上是关于如何在 Windows 中使用 Clickhouse 访问 Docker Container 以加载数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

ClickHouse-尚硅谷(10. 高级-语法优化规则)学习笔记

您如何在 Windows 中注册最近使用列表以准备 Windows 7?

在 windows 中,如何使用 c++ 检查端口是不是免费

如何使用Windows Power Shell

如何在Linux WPS中使用windows字体

如何在 Windows 7 中使用 Nodejs? [关闭]