Я загрузил огромный набор данных CSV — отфильтрованные данные об использовании Eclipse, используя COPY PostgreSQL, и это занимает огромное количество места, потому что оно не нормализовано: три столбца TEXT гораздо эффективнее реорганизованы в отдельные таблицы, на которые можно ссылаться из основной таблицы со столбцами внешнего ключа.
У меня вопрос: быстрее ли рефакторить базу данных после загрузки всех данных или создать нужные таблицы со всеми ограничениями, а затем загрузить данные? Первый включает в себя многократное сканирование огромной таблицы (около 10 ^ 9 строк), в то время как второй будет включать выполнение нескольких запросов для каждой строки CSV (например, был ли этот тип действия замечен ранее? Если нет, добавьте его в таблицу действий, получите его ID, создайте строку в основной таблице с правильным ID действия и т. д.).
Прямо сейчас каждый шаг рефакторинга занимает примерно день или около того, и начальная загрузка также занимает примерно столько же времени.