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

Организация данных

  • Latest Dynatrace

Модель данных Grail

Dynatrace Grail организует данные в бакеты, таблицы и представления для обеспечения эффективного хранения, гибкого доступа и масштабируемых запросов.

Бакеты -- это логические единицы хранения, в которых хранятся записи. Бакеты всегда связаны с определённым типом записи, таким как логи, события или спаны. Каждый тип записи имеет предопределённый встроенный бакет. Администраторы могут создавать пользовательские бакеты для оптимизации производительности, применения различных сроков хранения или выполнения специфических требований соответствия.

Таблицы группируют записи по типу. Получение данных из таблицы извлекает записи из всех соответствующих бакетов. Например, таблица logs включает все записи логов, независимо от того, хранятся ли они в бакете логов по умолчанию или в пользовательском бакете. Эта абстракция позволяет единообразно обращаться к данным независимо от базовой структуры хранения.

Системные таблицы, такие как dt.system.buckets, dt.system.data_objects и dt.system.files, представляют информацию, которая не хранится в бакетах.

Представления -- это виртуальные таблицы, определяемые запросами к существующим таблицам. Они обеспечивают отфильтрованную или преобразованную перспективу базовых записей. Например, вы можете использовать представления dt.entity.* для запросов к классическим сущностям.

Встроенные бакеты Grail

Существует набор предопределённых встроенных бакетов, которые нельзя изменять, включая:

  • Бакеты по умолчанию, имя которых начинается с default_
  • Системные бакеты, имя которых начинается с dt_

Встроенные бакеты с соответствующими сроками хранения

Этот раздел был обновлён в соответствии с новой таблицей событий безопасности Grail. Полный список обновлений и действий, необходимых для выполнения миграции, см. в Руководстве по миграции таблицы безопасности Grail.

Ниже приведены примеры встроенных бакетов с соответствующими сроками хранения. Для получения полного списка доступных встроенных бакетов выполните следующий запрос DQL:

fetch dt.system.buckets


| filter startsWith(name, "default_") or startsWith(name, "dt_")

Запустить в Playground

Пользовательские бакеты Grail

Вы можете создать бакет, адаптированный под ваши потребности. Бакеты Grail ведут себя как папки в файловой системе и предназначены для записей, которые должны обрабатываться совместно. Например, вам может потребоваться хранить вместе:

  • Данные с одинаковым сроком хранения
  • Данные, которые необходимо запрашивать/анализировать совместно
  • Данные, которые необходимо удалять одновременно

Определение бакетов может улучшить производительность запросов за счёт сокращения времени выполнения запросов и объёма считываемых данных. Наконец, хранение данных в бакете упрощает управление разрешениями, поскольку вы можете легко предоставить группе пользователей или отдельным пользователям доступ к необходимым данным.

Лимит по умолчанию на среду составляет 80 бакетов, что обычно достаточно для объёмов загрузки до 5 ТБ/день на таблицу (например, логи). Для больших объёмов загрузки можно запросить дополнительные бакеты в координации с вашей командой аккаунта Dynatrace.

Для пользовательских бакетов возможные сроки хранения варьируются от 1 дня до 10 лет с дополнительной неделей.

Сокращение срока хранения при обновлении приведёт к удалению данных, превышающих новый срок. Любая операция, удаляющая данные, является длительным процессом. Удаление данных может занять до нескольких дней в зависимости от объёма удаляемых данных.

Управление пользовательскими бакетами Grail

Для управления бакетами убедитесь, что у вас настроены следующие разрешения:

  • storage:bucket-definitions:read
  • storage:bucket-definitions:write
  • storage:bucket-definitions:delete
  • storage:bucket-definitions:truncate

С помощью Storage Management вы можете:

  • Создавать пользовательские бакеты для событий, событий безопасности, бизнес-событий, логов и спанов.
  • Редактировать пользовательские бакеты.
  • Удалять пользовательские бакеты.

Создание новых бакетов с помощью Storage Management

Для создания нового пользовательского бакета Grail с помощью Storage Management необходимо указать:

  • Уникальное имя бакета. Оно должно содержать от 3 до 100 символов и начинаться с буквы. Имя бакета может содержать только строчные буквенно-цифровые символы, подчёркивания и дефисы. Имя бакета нельзя редактировать или изменять позже.
  • Отображаемое имя. Вы можете использовать это поле для описания вашего бакета.
  • Срок хранения от 1 до 3657 дней.

Управление пользовательскими бакетами Grail через REST API

Для управления пользовательскими бакетами Grail через REST API:

  1. Найдите и выберите Dynatrace API.
  2. В поле Select a definition выберите Grail Storage Management.
  3. Пройдите аутентификацию с помощью вашего API-токена.

Подробнее см. в разделе Аутентификация. 4. Выполните одно из следующих действий.

Действие Перейдите в Bucket Definitions и выберите
Просмотр бакетов GET/bucket-definitions
Создание бакетов POST/bucket-definitions
Обновление бакетов PATCH/bucket-definitions/{bucketName} или PUT/bucket-definitions/{bucketName}
Очистка бакетов POST/bucket-definitions/{bucketName}:truncate
Удаление бакетов DELETE/bucket-definitions/{bucketName}

Операция удаления бакетов является необратимой. Эта операция удалит содержимое данного бакета, а затем удалит сам бакет. Удаление -- это асинхронная задача. Время выполнения зависит от объёма данных, которые необходимо удалить. Статус этой операции можно отслеживать через поле status в GET bucket definitions. Статус будет показывать deleting, пока данные будут удаляться, и в конце бакет будет удалён. После этого бакет перестанет существовать. Эта операция может быть выполнена для всех типов бакетов, кроме тех, чьё bucketName начинается с dt_ или default_. Перед удалением бакета выполняются проверки, чтобы убедиться, что бакет не используется. Для удаления бакета вам необходимо разрешение storage:bucket-definitions:delete.

См., когда следует создавать пользовательские бакеты и как предоставлять к ним доступ.

Связанные темы

  • Что такое Dynatrace Grail?