Uso de Unity Catalog con Structured Streaming

En esta página se muestra cómo usar Structured Streaming con Unity Catalog para administrar la gobernanza de datos para las cargas de trabajo incrementales y de streaming en Azure Databricks.

¿Qué funcionalidad de Structured Streaming admite Unity Catalog?

Unity Catalog no añade ningún límite explícito para los orígenes y destinos de Structured Streaming disponibles en Azure Databricks.

Con Unity Catalog y Structured Streaming puede:

Para los puntos de control de Structured Streaming, debe usar rutas en ubicaciones externas administradas por Unity Catalog. Para más información sobre cómo conectar de forma segura el almacenamiento con el catálogo de Unity, consulte Conexión al almacenamiento de objetos en la nube mediante el catálogo de Unity.

Leer una vista de catálogo de Unity como una secuencia

En Databricks Runtime 14.3 LTS y versiones posteriores, puede utilizar Structured Streaming para leer vistas registradas en Unity Catalog. Las tablas subyacentes deben usar el formato Delta Lake. Para ver otras limitaciones, consulte Limitaciones.

Para leer una vista con Structured Streaming, use el .table() método con el identificador de la vista:

df = (spark.readStream
  .table("demoView")
)

Los usuarios deben tener privilegios de SELECT en la vista de destino.

Si modifica la definición de vista para agregar o cambiar las tablas a las que se hace referencia en la vista, no puede usar el mismo punto de control de streaming.

Opciones de streaming admitidas

El lector de streaming aplica opciones a los archivos y metadatos de las tablas Delta subyacentes para la vista especificada.

Se admiten las siguientes opciones:

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

Las lecturas en vistas con UNION ALL no admiten las opciones withEventTimeOrder y startingVersion.

Si proporciona opciones no admitidas, como readChangeFeed, Spark genera esta excepción:

AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.

Operaciones de streaming admitidas

Las operaciones admitidas incluyen:

Operación Description Operator Example
Proyecto Controla los permisos de nivel de columna SELECT... FROM... CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter Controla los permisos a nivel de fila WHERE... CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Unión de todos Resultados de varias tablas UNION ALL CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2

Las operaciones no admitidas incluyen agregaciones, ordenación y funciones con valores de tabla, como table_changes(). Para obtener más información sobre las funciones con valores de tabla, consulte Invocación de función con valores de tabla (TVF).

Si hace streaming desde una vista con una operación no admitida, Spark lanza esta excepción:

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.

Limitaciones