Рекомендации по использованию библиотеки приема Kusto

В этой статье описываются рекомендации по приему данных с помощью библиотеки приема Kusto.

Предпочитать постановку в очередь прямому приему

В рабочих сценариях используйте клиент приема в очереди. Дополнительные сведения см. в разделах Прием в очереди и Прямой прием.

Использование одного экземпляра клиента приема

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

Ограничить состояние операции отслеживания

Для потоков данных большого объема ограничьте использование положительных уведомлений для запросов на прием. Чрезмерное отслеживание может привести к увеличению задержки приема и даже к полной неотвеченности кластера. Дополнительные сведения см. в разделе Состояние операции.

Оптимизация пропускной способности

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

Фактор Описание
Размер данных Прием более эффективен при выполнении крупными блоками. Рекомендуется отправлять данные пакетами от 100 МБ до 1 ГБ (без сжатия).
Формат данных CSV — это самый быстрый формат для приема. Для того же объема данных JSON может занять в 2 или 3 раз больше. Дополнительные сведения см. в разделе Форматы данных, поддерживаемые для приема.
Ширина таблицы Принимать только необходимые данные. Каждый столбец необходимо закодировать и проиндексировать, что означает, что более широкие таблицы могут иметь более низкую пропускную способность. Управление тем, какие поля будут приниматься, путем предоставления сопоставления приема.
Расположение исходных данных Избегайте операций чтения между регионами, чтобы ускорить прием.
Загрузка в кластере Когда кластер испытывает высокую нагрузку на запросы, прием занимает больше времени.

Примечание

Клиент приема в очереди разбивает большие наборы данных на блоки и агрегирует их, что удобно, если данные не могут быть пакетированы до приема.

Оптимизация затрат

Использование клиентских библиотек Kusto для приема данных в кластер остается самым дешевым и надежным вариантом. Мы настоятельно призываем наших клиентов ознакомиться с методами приема, чтобы оптимизировать затраты и воспользоваться преимуществами цен на службу хранилища Azure, что сделает транзакции с BLOB-объектами значительно экономичными.

Для экономичного приема:

  • Ограничьте количество переданных фрагментов данных, таких как файлы, большие двоичные объекты и потоки.
  • Прием больших фрагментов до 1 ГБ несжатых данных.
  • Выберите пакетную обработку.
  • Укажите точный, несжатый размер данных, чтобы избежать дополнительных транзакций хранилища.
  • Не устанавливайте значение FlushImmediatelytrue.
  • Избегайте отправки небольших объемов данных с ingest-byтегами экстентов или drop-by .

Примечание

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