Потоковая передача из представлений каталога 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
Примечание.
Невозможно изменить определение представления, чтобы добавить или изменить таблицы, на которые ссылается представление, и использовать ту же потоковую проверка point.
Ограничения
Действительны следующие ограничения.
Поток можно выполнять только из представлений, поддерживаемых таблицами 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.