Поделиться через


Использование 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.