Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
- Transmita datos de tablas administradas y externas. Consulte tablas gestionadas por Unity Catalog en Azure Databricks para Delta Lake y Apache Iceberg.
- Use ubicaciones externas administradas por Unity Catalog para interactuar con datos mediante URI de almacenamiento de objetos.
- Escriba en tablas externas usando nombres de tabla o rutas de archivo. Para interactuar con tablas administradas, debe usar el nombre de la tabla.
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:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
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
- No se admite el modo de procesamiento continuo de Apache Spark. Consulte Procesamiento continuo en la Guía de programación de Streaming estructurado de Spark.
- Para obtener una lista de las características de Structured Streaming que no son compatibles con Unity Catalog en función del modo de acceso a proceso, consulte Limitaciones de streaming y Requisitos de streaming y vista materializada en el cómputo dedicado.
- Las vistas como fuente de streaming tienen limitaciones adicionales:
- Solo se puede hacer streaming desde vistas que consultan tablas Delta. No se admiten otros orígenes de datos.
- Debe registrar vistas con Unity Catalog. Consulte Crear una vista.
- Las lecturas en streaming sobre vistas no admiten todas las operaciones ni todas las opciones. Consulte Operaciones de streaming admitidas y Opciones de streaming compatibles.