Использование каталога Unity со структурированной потоковой передачей
Используйте структурированную потоковую передачу с каталогом Unity для управления данными для добавочных и потоковых рабочих нагрузок в Azure Databricks. В этом документе описаны поддерживаемые функциональные возможности и рекомендации по использованию каталога Unity и структурированной потоковой передачи вместе.
Какие функции структурированной потоковой передачи поддерживают каталог Unity?
Каталог Unity не добавляет явных ограничений для источников и приемников структурированной потоковой передачи, доступных в Azure Databricks. Модель управления данными каталога Unity позволяет передавать данные из управляемых и внешних таблиц в каталоге Unity. Вы также можете использовать внешние расположения, управляемые каталогом Unity, для взаимодействия с данными с помощью URI объектного хранилища. Вы можете записывать данные во внешние таблицы с помощью имен таблиц или путей к файлам. Необходимо взаимодействовать с управляемыми таблицами в каталоге Unity с помощью имени таблицы.
Используйте внешние расположения, управляемые каталогом Unity, при указании путей для контрольных точек структурированной потоковой передачи. Дополнительные сведения о безопасном подключении хранилища к каталогу Unity см. в статье "Подключение к облачному хранилищу объектов и службам с помощью каталога Unity".
Поддержка структурированной потоковой передачи отличается в зависимости от используемой версии среды выполнения Databricks, а также от того, используется ли вы используете режим доступа к общему кластеру. Дополнительные сведения см. в разделе об ограничениях потоковой передачи для каталога Unity.
Сквозная демонстрация с помощью структурированной потоковой передачи в каталоге Unity см. в руководстве по запуску сквозного конвейера аналитики lakehouse.
Какие функции структурированной потоковой передачи не поддерживаются в каталоге Unity?
Список функций структурированной потоковой передачи, которые не поддерживаются в каталоге Unity, см. в разделе об ограничениях потоковой передачи для каталога Unity.
Чтение представления каталога Unity в виде потока
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В Databricks Runtime 14.1 и выше можно использовать структурированную потоковую передачу для выполнения потоковых операций чтения из представлений, зарегистрированных в каталоге Unity. Azure Databricks поддерживает только потоковое чтение из представлений, определенных в таблицах Delta.
Чтобы прочитать представление со структурированной потоковой передачей, укажите идентификатор .table()
представления методу, как показано в следующем примере:
df = (spark.readStream
.table("demoView")
)
Пользователи должны иметь SELECT
привилегии в целевом представлении.
Поддерживаемые параметры настройки потоковых операций чтения для представлений
При настройке потоковых операций чтения для представлений поддерживаются следующие параметры:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Средство чтения потоковой передачи применяет эти параметры к файлам и метаданным, определяющим базовые таблицы Delta.
Внимание
Операции чтения по представлениям, определенным без UNION ALL
поддержки параметров withEventTimeOrder
и startingVersion
.
Поддерживаемые операции в исходных представлениях
Не все представления поддерживают потоковое чтение. Неподдерживаемые операции в исходных представлениях включают агрегаты и сортировку.
В следующем списке приведены описания и примеры определений представлений для поддерживаемых операций:
Проект
Описание. Управление разрешениями на уровне столбцов
Оператор:
SELECT... FROM...
Пример инструкции :
CREATE VIEW project_view AS SELECT id, value FROM source_table
Фильтр
Описание. Управление разрешениями на уровне строк
Оператор:
WHERE...
Пример инструкции :
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Объединение всех
Описание: Результаты из нескольких таблиц
Оператор:
UNION ALL
Пример инструкции :
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Примечание.
Нельзя изменить определение представления, чтобы добавить или изменить таблицы, на которые ссылается представление, и использовать ту же контрольную точку потоковой передачи.
Ограничения
Действительны следующие ограничения.
Поток можно выполнять только из представлений, поддерживаемых таблицами Delta. Представления, определенные для других источников данных, не поддерживаются.
Необходимо зарегистрировать представления в каталоге Unity.
Следующее исключение отображается, если поток из представления с неподдерживаемым оператором:
UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.
Если указать неподдерживаемые параметры, отобразится следующее исключение:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.