Лучше ли иметь много маленьких контейнеров для хранения контейнеров Azure (каждый с некоторыми каплями) или один действительно большой контейнер с кучей капель?


Answers

Каждый предоставил вам отличные ответы о доступе к блокам напрямую. Однако, если вам нужно перечислить капли в контейнере, вы, скорее всего, увидите лучшую производительность с моделью с множеством контейнеров. Я просто поговорил с компанией, которая хранила огромное количество капель в одном контейнере. Они часто перечисляют объекты в контейнере, а затем выполняют действия против подмножества этих блоков. Они видят успех, так как время для получения полного списка растет.

Это может не относиться к вашему сценарию, но это то, что нужно учитывать ...

Question

Таким образом, сценарий следующий:

У меня есть несколько экземпляров веб-службы, которая записывает капли данных в Azure Storage. Мне нужно иметь возможность группировать капли в контейнер (или виртуальный каталог) в зависимости от того, когда он был получен. Время от времени (каждый день в худшем случае) старые капли будут обработаны, а затем удалены.

У меня есть два варианта:

Опция 1

Я делаю один контейнер под названием «blobs» (например), а затем сохраняю все блоги в этом контейнере. Каждый blob будет использовать имя стиля каталога с именем каталога, являющимся временем его получения (например, «hr0min0 / data.bin», «hr0min0 / data2.bin», «hr0min30 / data3.bin», «hr1min45 / data.bin» ", ...," hr23min0 / dataN.bin "и т. д. - новый каталог каждые X минут). Вещь, обрабатывающая эти blobs, сначала обрабатывает hr0min0 blobs, затем hr0minX и т. Д. (И капли все еще записываются при обработке).

Вариант 2

У меня много контейнеров с именем, основанным на времени прибытия (так что сначала будет контейнер с именем blobs_hr0min0, а затем blobs_hr0minX и т. Д.), И все капли в контейнере - это те капли, которые прибыли в указанное время. То, что обрабатывает эти блоги, будет обрабатывать один контейнер за раз.

Поэтому мой вопрос: какой вариант лучше? Вариант 2 дает мне лучшую распараллеливание (поскольку контейнеры могут находиться на разных серверах) или вариант 1 лучше, потому что многие контейнеры могут вызывать другие неизвестные проблемы?




В этом есть еще один фактор. Цена!

В настоящее время список операций и создания контейнера по той же цене: 0,054 доллара США / 10 000 звонков

Та же цена фактически предназначена для написания блоба.

Поэтому в крайнем случае вы можете заплатить намного больше, если вы создаете и удаляете множество контейнеров

  • удалить бесплатно

вы можете увидеть калькулятор здесь: https://azure.microsoft.com/en-us/pricing/calculator/




Related