Партицирование данных
В случае если итоговоый объем импорта слишком велик - возможно разделить данные относительно времени создания сообщений воспользовавшись методом partition. Рекомендуется при объеме данных свыше 3 GB.
timectl import partition
Параметры:
--input <import.jsonl>— диерктория и файл для партицирования (по умолчанию./import.jsonl).--output-dir <dir>— директория вывода разделения на main и archive (по умолчанию./).--period=90d— время партицирования данных относительно текущего момента, формат Time Duration string (по умолчанию — 90 дней).
По умолчанию timectl import partition выглядит как:
timectl import partition --input ./import.jsonl --output ./ --period=90d
Пример:
timectl import partition --input ./import/import.jsonl --output ./new-import --period=180d
-
Партицирование создает каталоги
/mainи/archiveпо указанному в--outputпути сmain.jsonlarchive.jsonl, а так же директорией/dataдля вложений импорта. -
Каждые 10к записей в консоль будет выводиться общее количество обработанных записей.
Processed 10k lines...
Processed 20k lines... -
В конце обработки выведется сообщение с итоговой статистикой партицирования:
Partition complete
Period: 180d
Main: # posts, # files,
Archive: # posts, # files
Total lines processed: #
Если есть ошибки, утилита сообщит о неверно указанных данных ввода/вывода или формате времени для периода партицирования.
-
При отсутствии
--inputдиректории илиimport.jsonl— будет выведена ошибка:Error: fail to open import file: ./import/import.jsonl no such file or directory. -
В случае проблем записи post в
import.jsonlпартицирование прервется в момент её обнаружения с ошибкой:Error: fail write post: can't check is post archived: Key path not found -
В случае ошибки формата даты будет выведена ошибка:
Error: fail to calculate archive period: not a valid duration string: "invalid date format" -
В случае проблем с копированием файлов вложений в директории
/data, в конце обработки выведется сообщение:partition complete with fails: failed copy main files: #, archive files: #