Функция инвентаризации Бакета периодически генерирует списки метаданных объектов в Бакете. Инвентаризации помогают лучше понимать статус объектов в Бакете.
Инвентаризация представляет собой файл CSV. Файлы инвентаризации автоматически загружаются в указанный Бакет.
Вы указываете, что инвентаризации генерируются для объектов с одинаковым префиксом имени объекта. Вы также можете определить интервал генерации инвентаризации и включить ли в файл инвентаризации все версии объектов. Метаданные объектов, которые вы указываете в инвентаризации, включают размер файла, время последнего изменения, класс хранения, ETag, многократную загрузку, статус шифрования и статус репликации.
Таблица 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
Если в Бакете хранится большое количество объектов, для одной конфигурации inventory может быть сгенерировано несколько файлов inventory. Генерация этих файлов занимает некоторое время. Например, если в Бакете находится 200 000 объектов, генерация всех файлов inventory займет около 1,5 минуты. Через один‑два часа после генерации всех файлов inventory, a manifest.json файл будет сгенерирован. The manifest.json файл содержит информацию обо всех файлах inventory, сгенерированных в этот раз, включая:
Ниже приведён пример 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 файл фиксирует путь к файлу инвентаря. Он помогает быстро находить все файлы инвентаря в сценариях больших данных. Apache Hive совместим с symlink.txt файл. Hive может автоматически находить symlink.txt файл и файлы инвентаря, записанные в нём.
Имя symlink.txt файл выглядит следующим образом (для получения подробностей о каждом поле смотрите Имя Файла Инвентаря):
destinationPrefix/sourceBucketName/inventoryId/hive/dt=YYYY-MM-DD-00-00/symlink.txt