Azure Хранение BLOB-объектов - Что именно означает «Операции записи»? - PullRequest
1 голос
/ 10 апреля 2020

Я использую Azure Калькулятор цен для оценки стоимости хранения файлов (точнее, SQL резервных копий).

Я сейчас выбираю Block Blob Storage с Blob Storage тип учетной записи.

В калькуляторе цен есть раздел, в котором указана стоимость Write Operations и описано, какие вызовы API являются операциями записи:

The following API calls are considered Write Operations: PutBlob, PutBlock, PutBlockList, AppendBlock, SnapshotBlob, CopyBlob and SetBlobTier (when it moves a Blob from Hot to Cool, Cool to Archive or Hot to Archive).

Я посмотрел документы для PutBlob и PutBlock , но в обоих случаях, похоже, вообще нигде не упоминается "file" (кроме PubBlob, в котором упоминается имя файла).

В описании PutBlob написано:

The Put Blob operation creates a new block, page, or append blob, or updates the content of an existing block blob.

В описании PutBlock написано:

The Put Block operation creates a new block to be committed as part of a blob.

Это 1 блок на файл или файл состоит из нескольких блоков?

Используются ли эти 2 команды Put для загрузки файлов?

Означает ли операция записи 1 операцию на 1 файл? Например, если у меня есть 100 файлов, это 100 операций записи? Или может 1 операция записи записать несколько файлов в одной операции?

Write Operations

Ответы [ 2 ]

2 голосов
/ 11 апреля 2020

Позвольте мне попытаться объяснить это парой сценариев ios. Учитывая, что вы используете блочные объекты, я объясню, как их использовать.

  1. Загрузка файла размером 1 МБ : Предполагается, что у вас есть локальный файл размером 1 МБ, который вы будете использовать sh для сохранить как блоб блоб. Учитывая, что размер файла относительно невелик, вы можете загрузить этот файл в хранилище BLOB-объектов, используя операцию Put Blob. Поскольку вы вызываете эту операцию только один раз, вы будете выполнять одну операцию записи.
  2. Загрузка файла 1 ГБ : Теперь давайте предположим, что у вас есть локальный файл 1 ГБ, который вы sh чтобы сохранить как блоб блоб. Учитывая, что размер файла большой, вы решаете логически разделить файл на куски по 1 МБ (т.е. вы логически разделяете локальный файл размером 1 ГБ на 1024 кусочка). Кстати, эти куски также известны как блоки. Теперь вы загружаете каждый из этих блоков, используя операцию Put Block, а затем, наконец, объединяете эти блоки, используя операцию Put Block List, для создания своего большого двоичного объекта. Поскольку вы вызываете 1024 операции ввода блоков (по одной для каждого блока), а затем 1 операцию ввода списка блоков, вы будете выполнять 1025 операций записи (1024 + 1).

Теперь, чтобы ответить на ваши вопросы c вопросов:

Это 1 блок на файл или файл состоит из нескольких блоков?

Это зависит от того, использовали ли вы операцию Put Blob или Put Block операция по загрузке файла. В приведенном выше сценарии 1 это всего 1 блок на файл (или большой двоичный объект), поскольку вы использовали операцию put blob, однако в сценарии 2 это 1024 блока на файл (или большой двоичный объект), поскольку вы использовали операцию put block.

Используются ли эти команды 2 Put для загрузки файлов?

Да. Опять же, в зависимости от размера файла, вы можете решить, использовать ли put blob или put block / put block list для загрузки файлов. Максимальный размер файла, который может быть загружен с помощью операции put blob, составляет 100 МБ. Это означает, что если размер файла превышает 100 МБ, то для загрузки файла необходимо использовать операцию «положить блок / положить список заблокированных». Однако, если размер файла меньше 100 МБ, то вы можете использовать либо операцию «blob», либо «запись блока / блока блоков».

Означает ли операция записи 1 операцию на 1 файл? Например, если у меня есть 100 файлов, это 100 операций записи?

Как минимум, да. Если каждый из 100 файлов загружен с использованием операции put blob, то это будет 100 операций записи.

Или может ли 1 операция записи записать несколько файлов за одну операцию?

Нет, это невозможно.

2 голосов
/ 10 апреля 2020

Операции находятся на уровне REST. Таким образом, для данного записываемого большого двоичного объекта вы можете увидеть более одной операции для данного большого двоичного объекта, особенно если его общий размер превышает максимальную полезную нагрузку одной операции Put Block / Page (4 МБ или 100 МБ для блока, 4 МБ для page).

Для блочного блоба после всех вызовов Put Block существует следующий вызов Put Block List, что приводит к еще одной измеренной операции.

Существуют аналогичные соображения для Добавить капли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...