为什么在 Windows Docker 中通过 Powershell 将数据加载到 clickhouse 时出现换行错误?
Why am I getting a line Feed Error when loading data via Powershell into clickhouse in Docker on Windows?
我正在尝试将数据加载到内置于 windows docker 桌面的 docker 容器中的 clickhouse 中。我在 R 中准备了我的模拟数据,写成 csv,我的 table 在 clickhouse 中创建(我省略了连接):
library(dplyr)
library(data.table)
library(clickhouse)
setwd("C:/Users/xxxx/Documents/testing_load")
my_df = data.table(datetime = as.character(c("2018-01-01 11:21:00", "2019-01-01 11:45:00")))
c(2018, 2019) %>%
lapply(function(y) {
print(y)
fwrite(my_df[substr(datetime,1,4) == y],
paste("test_",y,".csv"),
row.names = F,
col.names = F
)
})
dbSendQuery(con,
paste(
"CREATE TABLE test(
datetime DateTime
) ENGINE = Log;"
)
)
我要加载的数据量很大,所以这只是一个示例,用于显示设置以及我在第一行收到错误的原因。我想在 powershell 中使用 clickhouse 客户端加载数据,这样访问 docker 容器:
#loop through files and load
$files = Get-ChildItem "C:\Users\xxxx\Documents\testing_load"
foreach ($f in $files){
$outfile = $f.FullName | Write-Host
Import-Csv –Delimiter "," $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 test FORMAT CSV"
Get-Date | Write-Host
"End loading" + $f.FullName | Write-Host
}
我还添加了读取数据以防万一,但我从 clickhouse 收到有关日期时间的错误。我曾尝试在 R 中切换到 positxc,但没有任何区别。我不能说,但觉得这是一个我不理解的非常简单的事情。以下是我得到的错误:
正在打开 excel 我可以看到日期时间的日期格式很好。对可能发生的事情有什么建议吗?
我能够解决问题:
#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
cat $f.FullName | docker run -i --rm --link chanalytics:clickhouse-client yandex/clickhouse-client -m --host chanalytics --query="INSERT INTO tpep FORMAT CSV"
Get-Date | Write-Host
"End loading" + $f.FullName | Write-Host
}
我正在尝试将数据加载到内置于 windows docker 桌面的 docker 容器中的 clickhouse 中。我在 R 中准备了我的模拟数据,写成 csv,我的 table 在 clickhouse 中创建(我省略了连接):
library(dplyr)
library(data.table)
library(clickhouse)
setwd("C:/Users/xxxx/Documents/testing_load")
my_df = data.table(datetime = as.character(c("2018-01-01 11:21:00", "2019-01-01 11:45:00")))
c(2018, 2019) %>%
lapply(function(y) {
print(y)
fwrite(my_df[substr(datetime,1,4) == y],
paste("test_",y,".csv"),
row.names = F,
col.names = F
)
})
dbSendQuery(con,
paste(
"CREATE TABLE test(
datetime DateTime
) ENGINE = Log;"
)
)
我要加载的数据量很大,所以这只是一个示例,用于显示设置以及我在第一行收到错误的原因。我想在 powershell 中使用 clickhouse 客户端加载数据,这样访问 docker 容器:
#loop through files and load
$files = Get-ChildItem "C:\Users\xxxx\Documents\testing_load"
foreach ($f in $files){
$outfile = $f.FullName | Write-Host
Import-Csv –Delimiter "," $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 test FORMAT CSV"
Get-Date | Write-Host
"End loading" + $f.FullName | Write-Host
}
我还添加了读取数据以防万一,但我从 clickhouse 收到有关日期时间的错误。我曾尝试在 R 中切换到 positxc,但没有任何区别。我不能说,但觉得这是一个我不理解的非常简单的事情。以下是我得到的错误:
正在打开 excel 我可以看到日期时间的日期格式很好。对可能发生的事情有什么建议吗?
我能够解决问题:
#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
cat $f.FullName | docker run -i --rm --link chanalytics:clickhouse-client yandex/clickhouse-client -m --host chanalytics --query="INSERT INTO tpep FORMAT CSV"
Get-Date | Write-Host
"End loading" + $f.FullName | Write-Host
}