Parcourir la source

add `cf_db_create()`

main
Garrick Aden-Buie il y a 2 ans
Parent
révision
31ab569fd8
Aucune clé connue n'a été trouvée dans la base pour cette signature
1 fichiers modifiés avec 28 ajouts et 0 suppressions
  1. +28
    -0
      process/R/db_connect.R

+ 28
- 0
process/R/db_connect.R Voir le fichier

@@ -0,0 +1,28 @@
cf_db_create <- function(data_dir = here::here("data")) {
tables <- dir_ls(data_dir)
names(tables) <- path_file(tables)

idx_report_list <- which(names(tables) == "report_list")

cli::cli_progress_bar(name = "Opening parquet files", total = length(tables))
env <- rlang::current_env()

tbls_arrow <- tables[-idx_report_list] |>
imap(function(path, name) {
cli::cli_progress_update(inc = 1, status = name, .envir = env)
arrow::open_dataset(path, partitioning = "sboe_id")
})

cli::cli_progress_update(inc = 1, status = "report_list")
tbls_arrow$report_list <- arrow::open_dataset(tables["report_list"])
cli::cli_progress_done()

con <- DBI::dbConnect(duckdb::duckdb())

cli::cli_progress_step("Creating db")

imap(tbls_arrow, function(df, name) {
duckdb::duckdb_register_arrow(con, name, df)
dplyr::tbl(con, name)
})
}

Chargement…
Annuler
Enregistrer