Рекомендации по библиотеке Kusto Ingest
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
В этой статье описаны рекомендации по приему данных с помощью библиотеки Kusto Ingest.
Предпочитать очередь по прямой приему
В рабочих сценариях используйте клиент приема в очереди. Дополнительные сведения см. в разделе "Прием в очереди" и "Прямая прием".
Использование одного экземпляра клиента приема
Реализации клиента Kusto Ingest являются потокобезопасными и многократно используемыми. Для каждой целевой базы данных используйте один экземпляр очереди или прямого приема клиента на каждый процесс. Выполнение нескольких экземпляров может перегружать базу данных, что приводит к тому, что она не отвечает или медленно отвечает на допустимые запросы.
Ограничение состояния операции отслеживания
Для потоков больших объемов данных ограничьте использование положительных уведомлений для запросов приема. Чрезмерное отслеживание может привести к увеличению задержки приема и даже полной неотключаемой реакции. Дополнительные сведения см. в разделе "Состояние операции".
Оптимизация пропускной способности
При планировании конвейера приема следует учитывать следующие факторы, так как они могут иметь значительные последствия для приема пропускной способности.
Множитель | Description |
---|---|
Размер данных | Прием более эффективен при выполнении в больших блоках. Мы рекомендуем отправлять данные в пакетах размером от 100 МБ до 1 ГБ (несжато). |
Формат данных | Предпочитайте форматы данных, такие как CSV или любой формат текста с разделителями, например PSV или TSV, а также Parquet, JSON или AVRO, оптимизированные для максимальной пропускной способности. Дополнительные сведения см. в разделе "Форматы данных", поддерживаемые для приема. |
Ширина таблицы | Только прием необходимых данных. Каждый столбец должен быть закодирован и индексирован, что означает, что более широкие таблицы могут снизить пропускную способность. Управление приемом полей путем предоставления сопоставления приема. |
Расположение исходных данных | Избегайте операций чтения между регионами, чтобы ускорить прием. |
Загрузка базы данных | Когда база данных испытывает высокую нагрузку запросов, прием занимает больше времени. |
Примечание.
Клиент приема в очередь разбивает большие наборы данных на блоки и агрегирует их, что полезно, если данные не могут быть пакетированы до приема.
Оптимизация затрат
Использование клиентских библиотек Kusto для приема данных в базу данных остается самым дешевым и самым надежным вариантом. Мы настоятельно призываем наших клиентов проверить методы приема, чтобы оптимизировать затраты и воспользоваться преимуществами служба хранилища Azure ценообразования, которые будут значительно стоить транзакциям BLOB-объектов.
Для эффективного приема:
- Ограничить количество блоков данных приема, таких как файлы, большие двоичные объекты и потоки.
- Прием больших блоков до 1 ГБ несжатых данных.
- Выберите пакетную обработку.
- Укажите точный, несжатый размер данных, чтобы избежать дополнительных транзакций хранилища.
- Избегайте настройки
FlushImmediately
true
. - Избегайте отправки небольших объемов данных с
ingest-by
тегами экстентов.drop-by
Примечание.
Чрезмерное использование последних двух методов может нарушить агрегирование данных, привести к дополнительным транзакциям хранилища и причинить вред приему и производительности запросов.