Политика пакетной обработки приема

Общие сведения

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

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

При определении IngestionBatching политики необходимо найти баланс между оптимизацией пропускной способности и задержкой времени. Эта политика применяется к приему в очереди. Он определяет максимальную принудительную задержку, разрешенную при пакетной обработке небольших BLOB-объектов. Дополнительные сведения об использовании команд политики пакетной обработки и оптимизации пропускной способности см. в следующих разделах:

Запечатывание пакета

Для массового приема данных оптимальный размер составляет около 1 ГБ несжатых данных. Прием больших двоичных объектов с гораздо меньшим объемом данных является неоптимальным, поэтому при приеме в очереди служба будет объединять небольшие BLOB-объекты вместе.

В следующем списке показаны основные триггеры политики пакетной обработки для запечатывания пакета. Пакет запечатывается и принимается при выполнении первого условия:

  • Size: достигнут или превышен предельный размер пакета
  • Count: достигнуто ограничение на количество пакетных файлов.
  • Time: истекло время пакетной обработки.

Политику IngestionBatching можно задать для баз данных или таблиц. Значения по умолчанию: 5 минут максимальное время задержки, 1000 элементов, общий размер 1 ГБ.

Важно!

Влияние установки этой политики на очень небольшие значения заключается в увеличении COGS (стоимости проданных товаров) кластера и снижении производительности. Кроме того, сокращение значений политики пакетной обработки может фактически привести к увеличению эффективной сквозной задержки приема из-за затрат на параллельное управление несколькими процессами приема.

В следующем списке показаны условия для запечатывания пакетов, связанных с приемом одного BLOB-объекта. Пакет запечатывается и подается при соблюдении условий:

  • SingleBlob_FlushImmediately: прием одного большого двоичного объекта, так как задано значение FlushImmediately.
  • SingleBlob_IngestIfNotExists: прием одного большого двоичного объекта, так как задан IngestIfNotExists.
  • SingleBlob_IngestByTag: прием одного большого двоичного объекта, так как задан параметр "ingest-by"
  • SingleBlob_SizeUnknown: прием одного большого двоичного объекта, так как размер большого двоичного объекта неизвестен

SystemFlush Если условие задано, пакет будет запечатан при активации системной очистки. SystemFlush Если задан параметр, система сбрасывает данные, например из-за масштабирования кластера или внутреннего сброса системных компонентов.

Значения по умолчанию и ограничения

Тип Свойство По умолчанию Параметр низкой задержки Минимальное значение Максимальное значение
Количество элементов MaximumNumberOfItems 500 500 1 25 000
Размер данных (МБ) MaximumRawDataSizeMB 1024 1024 100 4096
Время (с) MaximumBatchingTimeSpan 300 20 - 30 10 1800

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

Важно!

Если задать слишком низкую границу времени политики пакетной обработки приема в таблицах с низким уровнем входящего трафика, то при попытке кластера оптимизировать только что созданные сегменты данных могут потребоваться дополнительные вычислительные ресурсы и ресурсы хранилища. Дополнительные сведения о сегментах данных см. в разделе Экстенты.

Размер пакетных данных

Размер данных политики пакетной обработки задается для несжатых данных. Для файлов Parquet, AVRO и ORC оценка вычисляется на основе размера файла. Для сжатых данных размер несжатых данных оценивается следующим образом в порядке убывания точности:

  1. Если в параметрах источника приема указан несжатый размер, используется это значение.
  2. При приеме локальных файлов с помощью пакетов SDK zip-архивы и потоки gzip проверяются для оценки их необработанного размера.
  3. Если предыдущие параметры не предоставляют размер данных, к размеру сжатых данных применяется коэффициент для оценки размера несжатого объема данных.

Задержки пакетной обработки

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

Причина Решение
Задержка данных соответствует параметру time , при этом слишком мало данных для достижения size или count ограничения time Уменьшение ограничения
Неэффективная пакетная обработка из-за большого количества очень маленьких файлов Увеличьте размер исходных файлов. При использовании Kafka Sink настройте его для отправки данных размером около 100 КБ или более. Если у вас много небольших файлов, увеличьте count (до 2000) в политике приема данных или таблицы.
Пакетная обработка большого объема несжатых данных Это часто происходит при приеме файлов Parquet. Постепенное уменьшение size для политики пакетной обработки таблиц или баз данных до 250 МБ и проверка для улучшения.
Невыполненная работа, так как кластер недостаточно масштабирован Примите любые предложения помощника по Azure по масштабированию кластера в сторону или увеличение масштаба. Кроме того, можно вручную масштабировать кластер, чтобы узнать, закрыта ли невыполненная работа. Если эти параметры не работают, обратитесь за помощью в службу поддержки.