Очистка данных чатов за произвольный период времени
В версии 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
Все остальные сущности (такие как список категорий, конфигурации опросников и т.д.) очистке не подвергаются.
Работа со скриптом
Работа со скриптом производится по следующему сценарию:
-
Перейдите в виртуальное окружение Chat Backend.
-
Перейдите в директорию
python/source/tools
-
Запустите скрипт
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