Перейти к основному содержимому

Партицирование данных

В случае если итоговоый объем импорта слишком велик - возможно разделить данные относительно времени создания сообщений воспользовавшись методом 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.jsonl archive.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: #