Поделиться через


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

Обзор

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

Тип Свойство По умолчанию Параметр низкой задержки Минимальное значение Максимальное значение
Число номенклатур MaximumNumberOfItems 500 500 1 25,000
Размер данных (МБ) MaximumRawDataSizeMB 1024 1024 100 4096
Time (TimeSpan) MaximumBatchingTimeSpan 00:05:00 00:00:20 - 00:00:30 00:00:10 00:30:00

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

Внимание

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

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

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

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

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

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

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