Использование Unity Catalog со структурированным потоковым вещанием
Используйте структурированную потоковую передачу с Unity Catalog для управления управлением данными в ваших инкрементальных и потоковых рабочих нагрузках в Azure Databricks. В этом документе описаны поддерживаемые функциональные возможности и рекомендации по использованию Catalog Unity и структурированной потоковой передачи вместе.
Какие функции структурированной потоковой передачи поддерживают Unity Catalog?
Unity Catalog не добавляет никаких явных ограничений для структурированных потоковых источников и приемников, доступных в Azure Databricks. Модель управления данными Unity Catalog позволяет передавать данные из управляемых и внешних tables в Unity Catalog. Вы также можете использовать внешние расположения, управляемые Unity Catalog, для взаимодействия с данными с помощью URI-адресов хранилища объектов. Вы можете записать на внешние tables, используя table имена или пути к файлам. Вы должны взаимодействовать с управляемым tables в Unity Catalog, используя имя table.
Используйте внешние расположения, управляемые Unity Catalog, при указании путей для контрольных точек структурированной потоковой передачи. Дополнительные сведения о безопасном подключении хранилища с помощью Unity Catalogсм. в статье Connect to cloud object storage and services using Unity Catalog.
Поддержка структурированной потоковой передачи отличается в зависимости от используемой версии среды выполнения Databricks, а также от того, используется ли вы используете режим доступа к общему кластеру. Дополнительные сведения см. в разделе Ограничения потоковой передачи Unity Catalog.
Сквозная демонстрация с помощью структурированной потоковой передачи в Unity Catalogсм. в руководстве по запуску сквозного конвейера аналитики lakehouse.
Какие функции структурированной потоковой передачи не поддерживаются в CatalogUnity?
Для получения информации о list функциях структурированной потоковой передачи, которые не поддерживаются на Unity Catalog, ознакомьтесь с ограничениями потоковой передачи для CatalogUnity.
Прочитайте представление Catalog Unity в виде потока
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В Databricks Runtime 14.1 и более поздних версиях можно использовать структурированную потоковую передачу для выполнения потоковых операций чтения из views, которые зарегистрированы в Unity Catalog. Azure Databricks поддерживает только потоковое чтение из views, определенного для Delta tables.
Чтобы прочитать представление со структурированной потоковой передачей, укажите identifier представления методу .table()
, как показано в следующем примере:
df = (spark.readStream
.table("demoView")
)
Пользователи должны иметь SELECT
привилегии в целевом представлении.
Поддерживаемые параметры настройки потокового чтения для views
При настройке потокового чтения для viewsподдерживаются следующие варианты:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Средство чтения потоковой передачи применяет эти параметры к файлам и метаданным, определяющим базовый delta tables.
Внимание
Операции чтения для views, определенные с помощью UNION ALL
, не поддерживают параметры withEventTimeOrder
и startingVersion
.
Поддерживаемые операции в исходном views
Не все views поддерживают потоковое чтение. Неподдерживаемые операции в исходном views включают агрегирование и сортировку.
В следующих list приведены описания и примеры определений просмотра для поддерживаемых операций.
Проект
Описание: Управление разрешениями уровня column
Оператор:
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
Объединение всех
Описание: Результаты из нескольких tables
Оператор:
UNION ALL
Пример инструкции :
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Примечание.
Невозможно изменить определение представления для добавления или изменения ссылки на tables в представлении и при этом использовать ту же самую контрольную точку потоковой обработки.
Ограничения
Действительны следующие ограничения.
Поток данных можно передавать только из views при поддержке Delta tables. Views, определенные в других источниках данных, не поддерживаются.
Необходимо зарегистрировать views в Unity Catalog.
Следующее исключение отображается, если поток из представления с неподдерживаемым оператором:
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.