ГД
Size: a a a
ГД
IS
p
ool при однопоточном режиме.data.fr
ame`. Если что-то не так, то он просто тихо не пишет данные.
conn <- db_connect %$%
DBI::dbConnect(RClickhouse::clickhouse(), host = host, db = db, user = user, password = password)
dbGetQuery(conn, "DROP TABLE IF EXISTS DB.NAME")
dbDisconnect(conn)
conn <- db_connect %$%
DBI::dbConnect(RClickhouse::clickhouse(), host = host, db = db, user = user, password = password)
df %>%
# модификация полей для записи под портирование
select(timestamp, level, message) %>%
# база к которой идет подключение должна быть определена в самом коннекте
DBI::dbWriteTable(conn, db_connect$table, ., append = TRUE)
DBI::dbDisconnect(conn)
E
fj
E
М
R
chunksize = 100000
GAaud_h[, chunk := .I %/% chunksize][, dbWriteTable(con, "GAaud_hist", .SD, append=TRUE , row.names = TRUE), by="chunk"]
хоть через цикл (огромное спасибо @Gregory_Demin за код , который помог понять проблему) :chunk_ind = seq_len(nrow(GAaud_h)) %/% chunksize
for(each_chunk in unique(chunk_ind)){
cat(as.character(Sys.time()),": chunk:", each_chunk, each_chunk*chunksize, "\n")
chunk = GAaud_h[chunk_ind == each_chunk, ]
dbWriteTable(con, "GAaud_hist", chunk, append = TRUE)
Sys.sleep(2)
}
А
если увеличить размер чанка chunksize до 1млн строк , то есть разбить датасет не на 60 чанков, а всего на 6 чанков, то загрузка проходит без ошибок по превышению памяти в 100% случаев любым способом из двух указанных выше:))
h
R
h
R
h
h
ДВ
h
R
ДВ
h
R
ДВ