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


Агрегированные данные в Azure Databricks

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

Агрегаты пакетной службы

Агрегирование пакетной службы — это поведение по умолчанию, наблюдаемое при выполнении нерегламентированного запроса в SQL или обработке данных с помощью Кадров данных Apache Spark.

Агрегатный запрос, написанный в таблице или источнике данных, вычисляет статистическую статистику для всех записей в источнике данных. Azure Databricks использует оптимизации и метаданные, когда это возможно для оптимизации этих запросов, и может вычислить множество статистических выражений для больших наборов данных.

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

Агрегаты с отслеживанием состояния

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

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

Для вычисления статистики по всему набору данных не следует использовать статистические данные с отслеживанием состояния. Databricks рекомендует использовать материализованные представления для добавочного статистического вычисления для всего набора данных. См . добавочные агрегаты.

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

Добавочные агрегаты

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

Приблизительные агрегаты

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

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

Spark SQL имеет следующие собственные методы для приближения агрегатов к числовым или категориальным данным:

Можно также указать процент выборки, TABLESAMPLE чтобы создать случайный выборку из набора данных и вычислить приблизительные агрегаты. См. пункт TABLESAMPLE.

Мониторинг наборов данных с помощью статистических статистических данных

Мониторинг Lakehouse использует статистические статистические данные и распределения данных для отслеживания качества данных с течением времени. Вы можете создавать отчеты для визуализации тенденций и планирования оповещений, чтобы пометить непредвиденные изменения в данных. Общие сведения о мониторинге Databricks Lakehouse.