История ветви обеспечивает подробный отчет обо всех изменениях, внесенных в бизнес-таблицу, для хранения и управления изменениями для версии по умолчанию с момента регистрации набора данных как сервис-ориентированной версии.
Администрирование сервис-ориентированных версий упрощается благодаря более простой модели данных.Сервис-ориентированная версия работает на основе временной (связанной со временем) модели «только вставка», где все изменения записываются в одну таблицу. Модель «только вставка» означает, что каждая операция редактирования приводит к вставке с соответствующей временной меткой, что позволяет вести полную историческую запись всех изменений, включая удаления. Этот метод позволяет визуализировать и анализировать данные, которые со временем меняются.
В отличие от традиционного создания версий, которое опирается на дельта-таблицы и объединяет их с другими системными таблицами для представления данных для конкретной версии, классы объектов с сервис-ориентированными версиями разработаны для поддержки архивирования изначально с использованием модели с одной таблицей. После регистрации набора данных как сервис-ориентированного автоматически включается архивирование, а в бизнес-таблицу добавляются дополнительные поля для хранения и управления изменениями между версиями.
Для управления всеми правками (вставками, обновлениями и удалениями) в бизнес-таблицу класса объектов или таблицы с сервис-ориентированными версиями добавляются шесть специальных системных полей.
- GDB_BRANCH_ID— Определяет версию, в которой было сделано редактирование.
- GDB_FROM_DATE— Записывает точную дату и время внесения изменений.
- GDB_IS_DELETE— Указывает, был ли удален объект, используя двоичное значение (0 — не удален / 1 или 2 — удален).
- GDB_DELETED_AT— Записывает дату и время удаления объекта.
- GDB_DELETED_BY— Записывает пользователя, который удалил объект.
- GDB_ARCHIVE_OID— Однозначно идентифицирует каждую строку в таблице, отслеживая каждое изменение с помощью уникального идентификатора.

Примечание:
Поля GDB_DELETED_AT и GDB_DELETED_BY добавляются в класс пространственных объектов или таблицу и позволяют отслеживать удаления; они работают в сочетании со стандартными полями отслеживания редактора.
Узнайте больше о требованиях и процессе регистрации набора данных как сервис-ориентированной версии
Существуют различные варианты использования архивированных данных, в том числе следующие:
- Проведение исторического анализа и составление отчетов
- Обеспечение соответствия требованиям посредством аудита
- Экспорт набора данных в том виде, в котором он существовал на определенный момент времени
Отсечь историю ветви
Со временем объем данных в бизнес-таблице увеличивается из-за модели управления сервис-ориентированными версиями, которая отслеживает все изменения путем вставки новых записей для каждого редактирования, что может привести к значительному накоплению данных. Отсечение истории набора данных с сервис-ориентированной версией включает удаление исторических записей, которые больше не нужны, оптимизацию хранения и повышение производительности.
Отсечение необходимо для управления ростом исторических данных, которые со временем могут занять значительный объем памяти. Удалять архивные записи из набора данных рекомендуется в следующих случаях:
- Когда исторические данные больше не нужны для оперативных целей
- Чтобы освободить место для хранения данных, удалив ненужные исторические записи
- Для снижения затрат на хранение
Начиная с ArcGIS Pro 3.5, вы можете управлять и оптимизировать хранение наборов данных с сервис-ориентированными версиями с помощью инструмента геообработки Отсечь историю ветви. Инструмент Отсечь историю ветви обеспечивает более детальный контроль, позволяя определять, какие именно записи следует хранить, на основе установленных критериев, например, задав Отсечь до даты.
Как работает инструмент Отсечь историю ветви
Инструмент Отсечь историю ветви предназначен для эффективного управления историческими данными. Ниже приведены его основные функциональные возможности:
- Удаление исторических данных — этот инструмент позволяет пользователям удалять исторические данные из классов на основе указанной даты. Из истории будут удалены все устаревшие данные, более ранние, чем эта дата. Удаленная строка определяется как строка в архиве, для которой существует более новое представление или последнее представление относится к удаляемому объекту. Это означает, что строка больше не является самой последней версией данных и была заменена более поздним обновлением или помечена для удаления. Это особенно полезно для управления размером базы данных путем удаления устаревшей и ненужной информации.
- Сохранение текущих активных строк — одной из ключевых особенностей инструмента Отсечь историю ветви является то, что он гарантирует отсутствие удаления активных строк. Активная строка определяется как последнее представление объекта, которое не было удалено. Эта строка представляет текущее состояние данных и не помечена как удаленная. Если объект существовал до указанной даты и все еще активен, то он будет сохранен. Инструмент фокусируется только на удалении тех исторических данных, которые больше не актуальны.
- Защита ссылочных данных — инструмент предотвращает удаление любых данных, на которые все еще ссылаются активные версии. Если версия указывает на момент, включающий более старые данные, эти данные не будут удалены до тех пор, пока на них не исчезнет ссылка.
- Согласование — для версий, которые существуют уже долгое время, может потребоваться согласование, чтобы гарантировать возможность отсечения данных. Это особенно актуально, когда инструмент используется для управления данными, которые находятся в системе в течение длительного периода. В случаях, когда и общий и предыдущий предок находятся до момента отсечения, необходимо согласовать версию дважды.
- Настраиваемое сохранение истории - организации имеют возможность определять объем сохраняемых исторических данных. Например, они могут сохранить историю за последние два или пять лет, отсекая все, что выходит за эти рамки. Такая адаптивность позволяет достичь баланса между сохранением ценных исторических данных и управлением общим размером базы данных.
Инструмент Отсечь историю ветви аналогичен инструменту Сократить историю архивирования, который поддерживается в неверсионных архивных наборах данных. Но инструмент Отсечь историю ветви создан специально для наборов данных, зарегистрированных как сервис-ориентированные версии. Инструмент Отсечь историю ветви позволяет создать отчет с параметром Только отчет, который показывает общее количество соответствующих архивных записей без фактического удаления каких-либо записей. Кроме того, можно выбрать Отсекать только системные таблицы. Если этот параметр отмечен, то будут отсечены или зарегистрированы только соответствующие внутренние системные таблицы наборов данных контроллера.
Ключевые особенности и соображения для отсечения истории ветки
Важно понимать некоторые концепции, связанные с историей ветвей и инструментом Отсечь историю ветви. Эти концепции обсуждаются далее в следующих разделах и включают следующее:
Отсечь до даты
Отсечь до даты - это определяемый пользователем параметр даты/времени, указывающий предельную дату для учета данных при отсечении. При настройке параметра Отсечь до даты все записи, предшествующие этому моменту, являются кандидатами на удаление операцией отсечения при условии, что она не вступит в конфликт с какими-либо контрольными временными метками.
Перед использованием инструмента Отсечь историю ветви важно четко понимать цель и выбрать подходящую дату отсечения, отражающую ваши конкретные потребности, например, требования законодательства.
Например, если Отсечь до даты установлен на 1 января 2022 года, все данные старше этой даты будут подлежать удалению.
Контрольные временные метки
Контрольная временная метка — это точка во времени, которая не позволяет удалять определенные записи. Эти моменты важны для сохранения целостности данных и обеспечения того, чтобы необходимые исторические записи не были удалены.
Инструмент Отсечь историю ветви проверяет исторические записи объектов в базе данных. Если инструмент сообщает о контрольной временной метке, это означает, что версия или реплика сервиса объектов использует контрольную временную метку до запрошенной даты удаления. Эта контрольная временная метка может предотвратить удаление записей в наборе данных. В выходном журнале будет указан самый ранний момент, который можно использовать, включая контрольную временную метку, реплику сервиса объектов и версию, которая заблокировала инструмент.
Чтобы решить эту проблему, можно установить Отсечь до даты на более раннее время, согласовать версии или синхронизировать реплики сервиса объектов. Этот шаг гарантирует сохранение всех необходимых записей и позволяет избежать контрольных временных меток.
Например, новый участок был добавлен год назад в набор данных участков, зарегистрированный как сервис-ориентированная версия. Затем участок был обновлен шесть месяцев назад и обновлен снова сегодня. Если установить Отсечь до даты на три месяца назад, то инструмент определит, какие строки являются кандидатами на удаление, исходя из времени их обновления. Может быть удалено любое представление участка, которое старше даты Отсечь до даты и не является текущим представлением набора данных соответствующего участка.
При обновлении объекта инструмент гарантирует, что текущее представление объекта не будет возвращено в запросах. Если текущее представление — удаление, строку следует отсечь, поскольку на момент удаления возвращаемого текущего представления не существует.
Например, если участок был удален шесть месяцев назад, его текущее представление помечается как удаленное. Эта строка становится кандидатом на отсечение, поскольку возвращаемое текущее представление отсутствует.
Именованные версии и согласование
При создании именованной версии дата и время этого момента записываются и служат общим предком для согласования. Во время согласования инструмент должен вернуться к начальному моменту времени, чтобы определить, были ли внесены изменения в версию по умолчанию или в указанную версию. Этот процесс включает в себя запись начального и нового времени и обновление общего предка.
Примечание:
Инструмент Отсечь историю ветви отсекает только устаревшие архивные записи из версии по умолчанию.
Например, если у вас есть именованная версия, созданная шесть месяцев назад. Во время согласования система сравнивает текущее состояние ветки по умолчанию и именованной версии, чтобы определить, произошли ли изменения в какой-либо из них. Это помогает гарантировать, что все изменения будут отражены точно, и избежать контрольных временных меток.
Реплики сервиса объектов
Реплики сервиса объектов также хранят контрольные временные метки и перемещаются вперед во времени по мере синхронизации. Инструмент гарантирует, что строки, необходимые для синхронизации, не будут удалены. Это включает в себя ведение исторических записей, необходимых для обнаружения конфликтов.
Например, если реплика сервиса объектов была создана год назад и синхронизировалась несколько раз, инструмент гарантирует, что строки, необходимые для этих синхронизаций, не будут удалены. Это помогает поддерживать целостность данных в разных репликах.
Модель транзакции
Инструменту Отсечь историю ветви требуется эксклюзивная блокировка набора данных; он удалит все строки-кандидаты, датированные ранее значения, указанного для Отсечь до даты. Если во время операции отсечния инструмент обнаружит ошибку, перед перезапуском инструмента необходимо будет устранить ее. Такой рабочий процесс гарантирует, что база данных останется согласованной, и что в исторических записях не будет пробелов.
При отсечении набора данных пространственных объектов или системных таблиц каждый входной класс или таблица будет фиксироваться по мере выполнения этой операции над каждым отдельным объектом. Например, если во время отсечения инструмент обнаружит проблему с памятью, процесс будет остановлен. После этого вы можете устранить проблему, а затем повторно запустить инструмент, который возобновит отсечение с того места, где оно было прервано.
В зависимости от объема удаляемых строк-кандидатов может потребоваться увеличить ресурсы базы данных и, в частности, пространство на диске, для эффективной поддержки размера транзакции.
Момент общего предка и предыдущего предка
Параметры версий общего и предыдущего предка имеют важное значение для управления данными сервис-ориентированной версии, отслеживания истории изменений, избегания контрольных временных меток и обеспечения получения правильной версии объектов во время запросов. Эти параметры версий можно просматривать, если вы откроете вид Версии для векторного веб-слоя в активной карте на панели Содержание. Информация, представленная в этих столбцах, также может помочь вам решить проблемы, связанные с контрольными моментами, которые мешают обрезке при использовании инструмента Отсечь историю ветви.
- Общий предок – общий предок фиксирует последний момент, когда две ветви разделяются перед тем, как они расходятся, отмечая дату и время, когда эта версия ссылалась на тот же момент по умолчанию.
- Предыдущий предок — предыдущий предок показывает предыдущую дату и время до последнего согласования, когда версия и версия по умолчанию ссылались на один и тот же момент. После завершения нового согласования он становится предыдущим общим предком.
Если во время согласования обнаруживаются конфликты, то моменты общего предка и предыдущего предка помогают определить, были ли внесены изменения в одну и ту же функцию как в текущей версии, так и в версии по умолчанию.
При использовании инструмента Отсечь историю ветви общий предок и моменты предыдущего предка могут предотвратить удаление определенных записей, если на них ссылается версия или реплика сервиса объектов. Это гарантирует, что важные исторические данные не будут случайно удалены. Если инструмент Отсечь историю ветви возвращает ошибку, указывающую на то, что параметр Отсечь до даты недействителен из-за контрольной временной метки, следует проверить в менеджере версий метки общего предка и предыдущего общего предка. Выявление таких меток в диспетчере версий может помочь вам понять, почему определенные записи не могут быть удалены, что позволит вам предпринять такие действия, как согласование версий или синхронизация реплик сервиса объектов для обновления и перемещения контрольной временной метки вперед.
Более подробно о создании, просмотре и управлении репликами сервисов объектов.
Сохранение истории
Воспользуйтесь следующими рекомендациями для сохранения исторических данных или архивных строк перед запуском инструмента Отсечь историю ветви.
- Регулярно создавайте резервную копию многопользовательской базы геоданных.
Подсказка:
Также полезно регулярно тестировать план резервного копирования и восстановления базы данных. Обратитесь к документации вашей РСУБД для получения подробной информации и шагов, касающихся вариантов плана резервного копирования и восстановления базы данных.
- Используйте опцию Только отчет в инструменте Отсечь историю ветви, чтобы выявить потенциальные проблемы перед отсечением.
- Перед отсечением сохраните экспортированные исторические записи во внешней базе данных или файле для дальнейшего использования.
Экспорт исторических записей
Чтобы сохранить исторические записи перед отсечением, можно экспортировать архивные строки классов, используя предыдущий момент. Рабочий процесс экспорта исторических записей включает в себя следующее:
- Добавление архивного класса на карту.
- Использование поля GDB_FROM_DATE для сортировки и идентификации записей старше момента отсечения.
- Выбрать и экспортировать все записи старше Отсечь до даты.
Дополнительную информацию о предварительных условиях и рабочем процессе использования инструмента Отсечь историю ветви см. в разделе Отсечь историю ветви.