Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
По умолчанию потоки в конвейере записывают результаты в таблицы 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 для создания приемников:
-
create_sink(): создает именованный приемник одного из поддерживаемых типов (Delta, Kafka, AEH или пользовательский источник данных Python). Доступно только в Python. См. раздел Использование приёмников в конвейерах. -
foreach_batch_sink(): украшает функцию Python, которая выполняется для каждого микропакета потоковых данных. Обеспечивает максимальную гибкость для пользовательской логики записи. См. использование ForEachBatch для записи в любые приемники данных в конвейерах.
Оба типа приемника ссылаются как на target тип append_flow.
Ограничения
- Синки доступны только для Python. SQL не поддерживается.
- Поддерживаются только потоковые запросы. Пакетные запросы не поддерживаются.
- Только
append_flowможет записываться в приемники,create_auto_cdc_flowа другие типы потоков не поддерживаются. - Ожидания конвейера не поддерживаются для приемников.
- Выполнение полного обновления не очищает ранее записанные данные в приемниках.