К содержанию
ActionPulse

Сроки хранения данных

Сколько ActionPulse хранит события, записи сессий, агрегаты и служебные журналы, что происходит по истечении срока, кто может его изменить и что будет с данными при смене тарифа.

Кому
Тем, кто отвечает за политику хранения
Проверено
На этой странице

Срок хранения в ActionPulse — это не одна цифра на всю систему. У событий, записей сессий, агрегатов и служебных журналов сроки разные, и задаются они разными механизмами: тарифом организации, пределом самой таблицы хранилища или категорией записи в журнале. Эта страница собирает все сроки в одном месте, чтобы их можно было перенести в вашу политику хранения без догадок.

Что и сколько хранится

Данные Срок Чем задан
События (включая свойства, url, referrer, UTM, страну, тип устройства) от 6 месяцев до 25 месяцев — по тарифу числовой лимит тарифа; в on-prem — 25 месяцев
Записи сессий от 7 дней до 90 дней — по тарифу числовой лимит тарифа; в on-prem — 90 дней
Журнал нарушений реестра событий 25 месяцев предел таблицы хранилища
Агрегаты: каталог событий, суточные счётчики, дата первого события не удаляются отдельного срока нет
Журнал аудита продукта год, для обязательных категорий — семь лет категория действия
Журнал выполнения задач удаления остаётся свидетельство выполненных действий
Принятые события в транспортной очереди не более 48 часов предел очереди
Принятые записи сессий в транспортной очереди не более 24 часов предел очереди
Резервные копии по собственному сроку хранения копий тот, кто их делает

Точные значения по тарифам:

Тариф События Записи сессий
Start 6 месяцев 7 дней
Growth 25 месяцев 30 дней
Scale 25 месяцев 90 дней

Что попадает в агрегаты

Каталог событий, суточные счётчики и отметка первого события содержат только идентификатор проекта, имя события, дату и количество — без идентификаторов людей, без свойств и без адресов. Поэтому у них нет срока хранения: удалять из них нечего.

Практическое следствие: имя события может остаться в каталоге проекта уже после того, как все события с этим именем вышли за срок хранения. Каталог показывает историю имён, а не наличие данных.

Журнал нарушений реестра

Отдельная таблица, в которую попадают отклонённые и помеченные события реестра. В ней по построению нет ни actor_id, ни user_id, ни anon_id, ни адреса страницы, ни свойств события — только имя события, время, режим проверки, коды нарушений и версии SDK. Срок — 25 месяцев.

Журнал аудита

Записи журнала аудита нельзя изменить или удалить через продукт: таблица принимает только вставку, а метода удаления в API нет. У каждой записи есть отметка срока хранения: год для обычных действий и семь лет для обязательных категорий — аутентификация, безопасность, приватность, доступ по ссылкам общего доступа, SSO, пароли, ключи, сервисные аккаунты и сессии поддержки.

Сырой IP-адрес допустим только в этом журнале и в его выгрузке; в обычных логах приложения вместо адреса пишется его необратимый отпечаток.

Что происходит по истечении срока

Просроченные строки удаляет фоновая задача, которая проходит раз в сутки и обходит все проекты установки.

  1. Для каждого проекта вычисляется граница: текущее время минус срок хранения тарифа (для записей сессий — минус срок в днях).
  2. Данные удаляются физически: части хранилища перезаписываются без просроченных строк, отдельной мутацией на каждую затронутую партицию. Это не «скрытие» строк маской — байты действительно перестают существовать.
  3. Вытесненные версии частей ClickHouse удаляет с диска вскоре после мутации — окно измеряется минутами, а не днями.
  4. Если в этот момент выполняется удаление данных субъекта, задача хранения уступает очередь мутаций и вернётся к проекту следующим проходом: у запроса на удаление приоритет выше.

Кроме тарифной задачи у таблиц хранилища есть собственный жёсткий предел: 25 месяцев для событий и 90 дней для записей сессий. Он работает как страховка — даже если фоновая задача не проходила, дольше этих сроков данные не живут.

Кто может изменить срок

В облаке

Срок хранения — числовой лимит тарифа. Отдельной настройки и метода API для его изменения не существует: в кабинете, Настройки → Данные, срок показан только для чтения, вместе с названием тарифа, который его задал.

Единственный способ изменить срок — сменить тариф. Индивидуальные сроки хранения не настраиваются; если такой срок нужен по вашей политике, обсуждайте его с поставщиком до внедрения, а не после.

В on-prem

В установке на своих серверах срок один для всех организаций: 25 месяцев для событий и 90 дней для записей сессий. Переменной окружения, которая его меняет, нет, и подписанная лицензия на срок хранения не влияет — она определяет набор возможностей, а не окно данных. В кабинете срок в этом режиме подписан как заданный лицензией.

Что остаётся в руках администратора установки: срок хранения резервных копий, доступ к хранилищу транспортной очереди и порядок повторного выполнения запросов на удаление после восстановления копии. Эти параметры описаны в настройке on-prem.

Смена тарифа

Что произошло Что будет с данными
Тариф повышен окно расширяется сразу; данные, удалённые ранее, не восстанавливаются
Тариф понижен при следующем суточном проходе всё, что старше нового окна, удаляется безвозвратно
Подписка отменена доступ сохраняется до конца оплаченного периода
Оплаченный период закончился остаётся защитное окно в 3 месяца: события старше трёх месяцев удаляются, все записи сессий удаляются целиком
Пробный период идёт действуют сроки тарифа Growth — 25 месяцев для событий и 30 дней для записей
Пробный период закончился без оплаты кабинет переходит в режим чтения, действует то же защитное окно в 3 месяца, записи сессий удаляются
Прошло 30 дней после конца пробного периода все данные обычных проектов организации удаляются вместе с самими проектами

Три месяца для организации без действующего тарифа — это защитное окно, а не обещанный срок хранения: оно существует, чтобы возврат к оплате не начинался с пустого проекта. Записи сессий в это окно не входят: без действующего тарифа права на записи нет, и они удаляются целиком.

После 30 дней с конца пробного периода удаляются данные обычных проектов и сами проекты; организация, её пользователи и платёжные документы остаются, чтобы можно было вернуться и создать проекты заново. Демонстрационный проект не затрагивается.

Закрытие организации

Самостоятельного удаления организации в кабинете нет: в API организации есть чтение и изменение настроек, но метода удаления нет. Что можно сделать самому:

  1. Удалить проект. Удаление проекта стирает все его данные в хранилище аналитики — события, записи сессий, служебные таблицы и агрегаты. Действие необратимо, доступно роли admin и выше.
  2. Удалить данные конкретных людейудаление данных субъекта, работает независимо от состояния подписки.
  3. Отменить подписку. Доступ сохраняется до конца оплаченного периода, после чего организация становится неактивной и включается защитное окно в три месяца.

Полное закрытие организации с удалением учётных записей выполняется по запросу в поддержку. Обязательные журналы — аудит и журнал выполнения задач удаления — переживают удаление проектов по построению: это доказательства выполненных действий, а не аналитические данные.

Резервные копии

Резервные копии задним числом не переписываются. Из этого следует правило, которое стоит внести в вашу процедуру заранее:

В on-prem срок хранения копий задаёт администратор установки. В облаке порядок и срок хранения копий уточняйте у поставщика — в продукте они не настраиваются и не отображаются.

Транспортная очередь

Между приёмом события и его записью в хранилище аналитики лежит очередь. Она хранит уже принятые сообщения ограниченное время: не более 48 часов для событий и не более 24 часов для записей сессий. Это отдельный технический слой: он не участвует в отчётах, но его содержимое — те же данные, поэтому в описании обработки его стоит учитывать, а доступ к его хранилищу — ограничивать.

Практическое следствие для удаления: сообщение, доставленное из очереди уже после завершения задачи удаления, создаст данные заново. Поэтому запрос на удаление имеет смысл повторять после того, как очередь опустела.

Что проверить

  1. Откройте Настройки → Данные и убедитесь, что показанный срок совпадает с тем, что записано в вашей политике хранения.
  2. Сверьте срок для записей сессий отдельно: он короче срока событий на любом тарифе и меняется при смене тарифа сильнее всего.
  3. Если запись сессий вам не нужна — выключите её в Настройки → Сбор и приватность. Не собранные данные не нужно ни хранить, ни удалять.
  4. Перед понижением тарифа выгрузите историю, которая нужна дольше нового окна.
  5. Внесите в процедуру восстановления из копии обязательный шаг: повторить запросы на удаление за период копии.
  6. Если политика требует срока, которого нет ни на одном тарифе, — решайте это до внедрения: в продукте произвольный срок не настраивается.