|
- 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)
- })
- }
|