Есть ли способ управлять несколькими большими файлами sqlite, используя R или SQLlite? - PullRequest
2 голосов
/ 21 ноября 2019

Я хотел бы создать базу данных, управляя и объединяя несколько больших файлов sqlite. Имеется 100 файлов sqlite3, и их размер составляет 500 ГБ.

Для небольшой базы данных (<2 ГБ) я использовал R для импорта и объединения нескольких файлов sqlite, таких как: (Это может быть базовый код, объединяющий R и sqlite) </p>

  temp_path = "D:/Wi-Fi/data/13. Campus sensing/"
  temp_filename_sqlite3 <- list.files(path= temp_path, pattern = "sqlite3$",
                                      recursive = TRUE)

  load_sql <- function(list){
    lists <- paste0(temp_path, sprintf("%s", list))
    db <- tbl(dbConnect(SQLite(), dbname = lists), "packets") %>%
      collect()        
  } 

Когда я запускаю код для большого набора данных (100 файлов общей емкостью 500 ГБ), я получаю сообщение об ошибке (Ошибка: невозможно выделить вектор размером 22,4 ГБ).

Должен ли я использовать программу sqlite (т. Е. Браузер БД для SQLlite)? Однако нет кода для импорта и загрузки нескольких файлов sqlite для их объединения.

Я новичок в использовании SQL, поэтому я хотел бы получить подсказку для создания базы данных.

1 Ответ

1 голос
/ 21 ноября 2019

However there is no code for importing and loading several sqlite files for merging them.

Программа sqlite3 предоставляет ATTACH для загрузки нескольких баз данных sqlite, хотя количество баз данных, которые можно подключить одновременно, невелико:

Оператор ATTACH является расширением SQLite, которое позволяет двум или более базам данных быть привязанными к одному и тому же соединению с базой данных и работать так, как если бы они были одной базой данных. Количество одновременно подключенных баз данных ограничено значением SQLITE_MAX_ATTACHED, которое по умолчанию установлено равным 10. Максимальное количество подключенных баз данных не может быть увеличено выше 125.

https://www.sqlite.org/limits.html

Браузер БД для SQLlite поддерживает ATTACH, но, учитывая ваши требования к памяти и ограничения, выВозможно, лучше сосредоточиться на исполняемом файле sqlite3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...