Перейти к содержанию

Очистка данных чатов за произвольный период времени

В версии 10.6 увидела свет новая функциональность Webim Server - скрипт для автоматической очистки данных чатов аккаунта за произвольный период времени. Это может быть полезно для всех hosted-размещений с большим количеством чатов. Скрипт позволяет оптимизировать память и уменьшить время ожидания ответа БД на запросы.

Внимание!

Следует отметить, что в некоторых странах существуют законодательные ограничения, связанные с хранением персональных данных. На территории Российской Федерации, согласно ФЗ-149 от 27 июля 2006 года, действует ограничение, обязывающее хранить текстовые сообщения пользователей сети "Интернет", голосовую информацию, изображения, звуки, видео-, иные электронные сообщения пользователей сети "Интернет" до шести месяцев с момента окончания их приема, передачи, доставки и (или) обработки. Согласно тому же закону необходимо хранить информацию о фактах приема, передачи, доставки и (или) обработки голосовой информации, письменного текста, изображений, звуков, видео- или иных электронных сообщений пользователей сети "Интернет" и информацию об этих пользователях в течение одного года с момента окончания осуществления таких действий

Список очищаемых сущностей

  • История изменений чатов (pro:chatthreadhistory)
  • Чат-сессии (pro:chatvisitsession)
  • Пройденные опросы (pro:surveyanswer)
  • Запущенные опросы (pro:surveylaunch)
  • Сообщения (pro:chatmessage)
  • Категории, назначенные чатам (pro:thread_category)
  • Оценки (pro:chatrate)
  • Чаты (pro:chatthread)

Все приведённые выше сущности существуют в БД/схеме pro.

Опционально:

  • Статистика v1 (pro:chatstats)

  • Логи Статистики v1 (pro:chatstatslog)

  • Сообщения с файлами - сообщения, имеющие Kind FILE_OPERATOR или FILE_VISITOR (pro:chatmessage)

  • Статистика v2 на ClickHouse (webim_stats:thread)

  • Данные Elasticsearch

Все остальные сущности (такие как список категорий, конфигурации опросников и т.д.) очистке не подвергаются.

Работа со скриптом

Работа со скриптом производится по следующему сценарию:

  1. Перейдите в виртуальное окружение Chat Backend.

  2. Перейдите в директорию python/source/tools

  3. Запустите скрипт purge_data.sh

Скрипт имеет следующий синтаксис:

purge_data.sh [аргументы] [флаги]

Скрипт принимает следующие аргументы:

  • --account: имя Вашего аккаунта Webim. Обязательный аргумент.

  • --to-date: окончание временного периода, за который будут очищены данные чатов. Началом временного периода является момент создания БД. Формат ввода: yyyy-mm-dd. Представленная в качестве значения аргумента дата должна быть не более года назад от текущего момента. Обязательный аргумент.

Также существует несколько необязательных флагов, задающих дополнительные опции очистки данных:

  • --delete-file-messages: удаление сообщений с файлами По умолчанию false.

  • --purge-clickhouse: очистка ClickHouse (Статистика v2). По умолчанию false.

  • --purge-stats: очистка Статистики v1. По умолчанию false.

  • --purge-elastic: очистка Elasticsearch. По умолчанию false.

Пример вызова скрипта для очистки данных чатов и сообщений с файлами аккаунта testcom до 21.08.2023:

purge_data.sh --account testcom --to-date 2023-08-21 --delete-file-messages