Основные понятия структурированной потоковой передачи

Apache Spark Structured Streaming позволяет создавать стриминговые приложения и конвейеры с использованием тех же API Spark, что и для пакетной обработки. На Azure Databricks поддерживается два режима обработки:

  • Режим реального времени (RTM): разработан для операционных нагрузок с задержкой менее секунды, таких как обнаружение мошенничества и персонализация в реальном времени. RTM обрабатывает записи по мере их поступления, при сквозной задержке всего пять миллисекунд. См. концепции режима в реальном времени.
  • Микропакетный режим: предназначен для аналитических конвейеров и нагрузок по извлечению, преобразованию и загрузке (ETL). Микропакетный режим обрабатывает потоки небольшими партиями, балансируя вычислительные затраты с требованиями к задержке, измеряемыми в секундах или минутах. Микропакетная обработка — это режим по умолчанию.

Оба режима используют одни и те же API Structured Streaming. Для запросов, поддерживаемых обоими режимами, можно переключаться между режимами в конфигурации триггера и вычислений. См. раздел "Настройка режима реального времени".

Structured Streaming также обеспечивает потоковую обработку в конвейерах Lakeflow, построенных на Apache Spark™ Declarative Pipelines. Конвейеры управляют оркестрацией, контрольными точками и восстановлением, а вы определяете преобразования в SQL или Python.

Для пошагового руководства см. Запуск первой структурированной потоковой рабочей нагрузки.

Чтение из потока данных

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

Функция Описание
Автозагрузчик Постепенно и эффективно обрабатывают новые файлы данных по мере их поступления в облачное хранилище.
Потоковое чтение и запись таблиц Delta Lake Используйте таблицы Delta Lake в качестве источников потоковой передачи и приемников с гарантией обработки точно один раз.
SQL и API Spark Подключайтесь к шинам сообщений, очередям и корпоративным приложениям с помощью SQL и API Spark.
Размер микро-батча Ограничение входных ставок для поддержания согласованных размеров пакетов и предотвращения задержек обработки.

Запись в хранилище данных

Настройка того, как структурированная потоковая передача предоставляет данные целевым системам.

Функция Описание
Контрольные точки Сохраняйте состояние обработки, чтобы обеспечить отказоустойчивость и семантику доставки с гарантией единичной доставки.
Режим вывода Выберите между режимами добавления, обновления и завершения для запросов потоковой передачи с сохранением состояния.
Интервалы триггера Задайте интервалы триггеров, чтобы сбалансировать задержку и затраты на требования к обработке.
Режим реального времени в структурированной потоковой передаче Обработка данных для рабочих нагрузок в режиме реального времени со сквозной задержкой до пяти миллисекунд.

Обработка с сохранением состояния и без сохранения состояния

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

Функция Описание
Запросы потоковой передачи без отслеживания состояния Оптимизируйте запросы, обрабатывающие данные без поддержания промежуточного состояния.
Водяные знаки Контролируйте время ожидания структурированной потоковой обработки данных для поздно поступающих данных в состоянии операций.
Состояния потоковой передачи Управление агрегациями, объединениями потоков и дедупликацией с помощью операторов с отслеживанием состояния.

Отслеживайте и управляйте

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

Функция Описание
Мониторинг с помощью StreamingQueryListener Отслеживайте ход выполнения запросов и метрики производительности с помощью API пользовательского интерфейса Spark и прослушивателя.
Управление каталогом Unity Настройте каталог Unity для потоковой передачи рабочих нагрузок с помощью управления и контроля доступа.