Выходы в конвейерах Lakeflow

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

Выходные узлы используются в потоках добавления данных. Вы определяете приемник с помощью одного из API приемника, а затем ссылаетесь на него как на target в определении append_flow.

Когда следует использовать приемники

Databricks рекомендует использовать приемники в следующих случаях:

  • Создание операционных вариантов использования с низкой задержкой, например обнаружение мошенничества, аналитика в режиме реального времени или рекомендации клиентов, где данные должны передаваться в шину сообщений, а не в облачное хранилище. Сведения о рабочих нагрузках, требующих задержки в миллисекундах, см. в разделе "Использование режима реального времени" в конвейерах Lakeflow.
  • Записывайте преобразованные данные в таблицы под управлением внешнего экземпляра Delta, включая управляемые и внешние таблицы Unity Catalog.
  • Выполните обратный ETL в внешних системах, например запись обработанных данных обратно в разделы Apache Kafka для использования за пределами Azure Databricks.
  • Записывайте в формат, который Azure Databricks изначально не поддерживает, с помощью пользовательских источников данных Python.

Типы приемников

Конвейеры поддерживают следующие типы приемников:

Тип устройства-приемника Description
Приёмники Delta table Записывайте в управляемые или внешние таблицы Delta в Unity Catalog. Укажите путь к файлу или полное имя таблицы.
Приемники Apache Kafka Записывайте данные в топики Apache Kafka с помощью соединителя Kafka, включенного в среду выполнения конвейера.
Приемники Центров событий Azure Записывайте в Центры событий Azure с помощью интерфейса Kafka. Использует те же параметры, что и приемники Kafka.
Настраиваемые приемники Python Записывайте в любое хранилище данных с помощью пользовательского источника данных Python, зарегистрированного с помощью spark.dataSource.register.
Приемники ForEachBatch Примените настраиваемую логику Python к каждому микропакету потоковых данных. Используйте, когда нужно записывать данные в несколько мест назначения, выполнять операции вставки или обновления либо использовать целевые системы, которые изначально не поддерживают потоковую запись.

API приемника

Конвейеры предоставляют два API для создания приемников:

Оба типа приемника ссылаются как на target тип append_flow.

Ограничения

  • Синки доступны только для Python. SQL не поддерживается.
  • Поддерживаются только потоковые запросы. Пакетные запросы не поддерживаются.
  • Только append_flow может записываться в приемники, create_auto_cdc_flow а другие типы потоков не поддерживаются.
  • Ожидания конвейера не поддерживаются для приемников.
  • Выполнение полного обновления не очищает ранее записанные данные в приемниках.

Дополнительные ресурсы