Загрузка данных
Импорт данных в Time осуществляется через JSONL файл, содержащий данные, которые нужно загрузить. Если загружаются файлы из сообщений или аватарки, то нужно загрузить файлы в соответствующие каталоги.
1. Установка и настройка timectl
Для загрузки архива данных и импорта данных в Time понадобится timectl — это CLI-утилита для работы с time-server.
Инструкция по установке:
-
Скачать утилиту timectl под нужную архитектуру процессора: https://data.tinkoff.ru/apps/files/?dir=/time/timectl
-
Авторизоваться через
timectlв time-server:timectl auth login http://localhost:8065 --name local-server --username sysadmin -
После в терминале потребуется ввести пароль от учетной записи, указанной в
--username(пароль сохраняется локально на компьютере, где запускаетсяtimectl).
2. Создание архива
Затем все данные нужно заархивировать в zip-архив:
zip -r data.zip data.jsonl files/
где files — это директория с файлами для сообщений и аватарок.
2.1 Проверка архива (опционально)
Перед импортом рекомендуется выполнить проверку архива на корректность:
timectl import validate data.zip
Параметры:
--check-missing-teams— проверять наличие команд, которые указаны в архиве, но отсутствуют на сервере.--check-server-duplicates— установить вfalse, чтобы игнорировать команды, каналы и пользователей, которые уже существуют на сервере (по умолчанию:true).--ignore-attachments— пропустить проверку наличия вложений в архиве.--team— указать команды, которые следует считать уже существующими на сервере. Флаг можно указывать несколько раз. Автоматически включает проверку--check-missing-teams.
Пример:
timectl import validate data.zip --team myteam --team myotherteam
3. Загрузка архива
-
Загрузить файл с импортом:
timectl import upload data.zip -
Посмотреть список доступных архивов для импорта:
timectl import list availableВ терминале должен вывестись загруженный ранее файл в формате
{session_id}_{filename}, гдеsession_idвыводится в консоли после выполнения предыдущего шага.
4. Импорт данных
-
Запустить джобу по импорту
timectl import process 47ri9a7ufpb8jkruxk4w16a37w_data.zipВ терминале должно вывестись:
Import process job successfully created, ID: jpkd4ou77prg8c1fqrr3ejsxsrгде
jpkd4ou77prg8c1fqrr3ejsxsr— идентификатор джобы. -
Результаты выполнения джобы можно получить командой:
timectl import job show {job_id}где
job_id— идентификатор джобы, полученной на предыдущем шаге.
В случае ошибки, если нужно перезапустить джобу, это можно сделать http-запросом. Выполнение джобы продолжится с момента ошибки. Пример запроса:
curl \
--location \
--request POST http://localhost:8065/api/v4/jobs/{job_id}/rerun \
--header 'Authorization: Bearer {token}'
где token — это токен доступа, который можно создать в настройках профиля или воспользоваться токеном бота с правами администратора.