Облачная платформаAdvanced

Обзор инвентаризации Бакета

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Функция инвентаризации Бакета периодически генерирует списки метаданных объектов в Бакете. Инвентаризации помогают лучше понимать статус объектов в Бакете.

Инвентаризация представляет собой файл CSV. Файлы инвентаризации автоматически загружаются в указанный Бакет.

Вы указываете, что инвентаризации генерируются для объектов с одинаковым префиксом имени объекта. Вы также можете определить интервал генерации инвентаризации и включить ли в файл инвентаризации все версии объектов. Метаданные объектов, которые вы указываете в инвентаризации, включают размер файла, время последнего изменения, класс хранения, ETag, многократную загрузку, статус шифрования и статус репликации.

Ограничения

  • В Бакете может быть не более 10 правил инвентаризации.
  • Исходный Бакет (для которого настроена инвентаризация) и целевой Бакет (в котором хранятся сгенерированные файлы инвентаризации) должны принадлежать одному аккаунту.
  • Исходный и целевой Бакеты должны находиться в одном регионе.
  • Файлы инвентаризации должны быть в формате CSV.
  • OBS может генерировать файлы инвентаризации для всех объектов в бакете или группы объектов, имена которых начинаются с одинакового префикса.
  • Если в бакете несколько правил инвентаризации, пересечения между правилами инвентаризации не допускаются.
    • Если в бакете уже существует правило инвентаризации для всего бакета, новые правила инвентаризации, фильтрующие объекты по префиксам, создать нельзя. Если вам нужно правило инвентаризации, охватывающее только подмножество объектов в бакете, удалите правило инвентаризации, настроенное для всего бакета.
    • Если правило инвентаризации, фильтрующее объекты по указанному префиксу, уже существует, вы не можете создать правило инвентаризации для всего бакета. Чтобы создать правило инвентаризации для всего бакета, убедитесь, что в бакете нет других правил инвентаризации, фильтрующих объекты по указанным префиксам.
    • Если в бакете уже имеется правило инвентаризации, фильтрующее объекты по префиксу имени объекта ab, фильтр нового правила инвентаризации не может начинаться с a или abc. Чтобы создать такое правило, вам необходимо сначала удалить существующее правило инвентаризации, которое конфликтует с правилом, которое вы создадите.
  • Файлы инвентаризации Бакет могут быть зашифрованы только в режиме SSE-KMS.
  • The destination bucket cannot have шифрование на стороне сервера включено.

Содержание в файле инвентаризации

Таблица 1 перечисляет все возможные поля метаданных, которые может содержать файл инвентаризации.

Таблица 1 Поля метаданных объекта, разрешённые в файле инвентаризации

Метаданные

Описание

Бакет

Имя исходного бакета

Ключ

Имя объекта. Каждый объект в бакете имеет уникальный ключ. Имена объектов в файле инвентаризации кодируются в URL с использованием UTF-8 и должны быть декодированы перед использованием.

VersionId

Идентификатор версии объекта ID. Это поле не включено в файл инвентаризации, если ObjectVersions в конфигурации инвентаризации установлено Только текущая версия.

IsLatest

Это поле установлено в True if the object version is the latest. This field is not included in the inventory file if ObjectVersions в конфигурации инвентаризации установлено Только текущая версия.

IsDeleteMarker

When versioning is enabled for the source bucket, deleting an object will create a new piece of object metadata and set IsDeleteMarker метаданных в true. Это поле не включается в файл inventory, если ObjectVersions в конфигурации inventory установлено значение Только текущая версия.

Размер

Размер объекта, в байтах

Дата последнего изменения

Дата создания объекта или дата последнего изменения

ETag

Шестнадцатеричный дайджест MD5 объекта. ETag — уникальный идентификатор содержимого объекта. Он отражает, изменилось ли содержимое объекта. Например, если значение ETag A когда объект загружается, но изменения в B когда объект загружается, это означает, что содержимое объекта было изменено.

StorageClass

Класс хранения объекта

IsMultipartUploaded

Загружается ли объект с использованием многократной загрузки

Статус репликации

Статус кросс‑региональной репликации объекта

Статус шифрования

Статус шифрования объекта

Имя файла инвентаризации

Имя файла инвентаризации имеет следующий формат:

destinationPrefix/sourceBucketName/inventoryId/yyyy-MM-dd'T'HH-mm'Z'/files/UUID_index.csv
  • destinationPrefix указывает префикс, заданный в конфигурации инвентаризации, который может использоваться для группировки файлов инвентаризации. Если префикс не задан, префикс по умолчанию — Инвентарь бакета.
  • sourceBucketName указывает исходный бакет, для которого настроена инвентаризация. Это поле может предотвратить конфликты, когда файлы инвентаризации разных исходных бакетов сохраняются в один и тот же целевой бакет.
  • inventoryId может предотвратить конфликты, когда несколько файлов инвентаризации одного и того же исходного бакета отправляются в один и тот же целевой бакет.
  • yyyy-MM-dd'T'HH-mm'Z' указывает время и дату начала генерации inventory, когда начинается сканирование Бакетa. Объекты, загруженные в исходный Бакет после этого времени, могут не быть перечислены в файле inventory.
  • UUID_index.csv указывает один из файлов inventory.

Файл manifest.json

Если в Бакете хранится большое количество объектов, для одной конфигурации inventory может быть сгенерировано несколько файлов inventory. Генерация этих файлов занимает некоторое время. Например, если в Бакете находится 200 000 объектов, генерация всех файлов inventory займет около 1,5 минуты. Через один‑два часа после генерации всех файлов inventory, a manifest.json файл будет сгенерирован. The manifest.json файл содержит информацию обо всех файлах inventory, сгенерированных в этот раз, включая:

  • sourceBucket который указывает имя исходного Бакета
  • destinationBucket указывает имя целевого Бакета
  • версия указывает версию инвентаризации
  • fileFormat указывает формат файла инвентаризации
  • fileSchema указывает поля метаданных объектов, содержащиеся в файлах инвентаризации
  • файлы указывает список всех файлов инвентаризации
  • ключ указывает имя файла инвентаризации
  • размер указывает размер файла инвентаризации в байтах
  • inventoriedRecord указывает количество записей инвентаризации

Ниже приведён пример manifest.json файл.

{
"sourceBucket":"user001",
"destinationBucket":"bucket001",
"version":"2019-01-03",
"fileFormat":"CSV",
"fileSchema":"Bucket,Key,Size,LastModifiedDate,ETag,StorageClass,IsMultipartUploaded,ReplicationStatus,EncryptionStatus",
"files":[
{
"key":"inventory%2Fuser001%2Ftest_id%2F2019-01-03T12-28Z%2Ffiles%2F0000016813AF58E66806C1E2D7F15155_1.csv",
"size":6705647390,
"inventoriedRecord":70585762,
}
]
}

Имя manifest.json файл выглядит следующим образом (для получения подробностей о каждом поле смотрите Имя Файла Инвентаря):

destinationPrefix/sourceBucketName/inventoryId/yyyy-MM-dd'T'HH-mm'Z'/manifest.json

Файл symlink.txt

Этот symlink.txt файл фиксирует путь к файлу инвентаря. Он помогает быстро находить все файлы инвентаря в сценариях больших данных. Apache Hive совместим с symlink.txt файл. Hive может автоматически находить symlink.txt файл и файлы инвентаря, записанные в нём.

Имя symlink.txt файл выглядит следующим образом (для получения подробностей о каждом поле смотрите Имя Файла Инвентаря):

destinationPrefix/sourceBucketName/inventoryId/hive/dt=YYYY-MM-DD-00-00/symlink.txt