Uso de Unity Catalog con Structured Streaming
Use Structured Streaming con Unity Catalog para administrar la gobernanza de datos para las cargas de trabajo incrementales y de streaming en Azure Databricks. En este documento se describe la funcionalidad soportada y sugiere los procedimientos recomendados para utilizar conjuntamente Unity Catalog y Structured Streaming.
¿Qué funcionalidad de Structured Streaming admite Unity Catalog?
Unity Catalog no agrega ningún límite explícito para orígenes y receptores de Structured Streaming que están disponibles en Azure Databricks. El modelo de gobernanza de datos de Unity Catalog permite transmitir datos de tablas administradas y externas en Unity Catalog. También puede usar ubicaciones externas que administre Unity Catalog para interactuar con los datos mediante los URI de almacenamiento de objetos. Puede escribir en tablas externas mediante nombres de tablas o rutas de acceso de archivo. Debe interactuar con tablas administradas en Unity Catalog utilizando el nombre de la tabla.
Use ubicaciones externas que administre Unity Catalog cuando especifique rutas de acceso para los puntos de control de Structured Streaming. 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 y servicios de objetos en la nube mediante el catálogo de Unity.
La compatibilidad con la función de Structured Streaming difiere en función de la versión de Databricks Runtime que esté ejecutando y de si está utilizando el modo de acceso de clúster asignado o compartido. Para obtener más detalles, consulte Limitaciones de streaming para Unity Catalog.
Para obtener una demostración de un extremo a otro mediante Structured Streaming en Unity Catalog, consulte el tutorial sobre cómo ejecutar una canalización de análisis de almacén de lago de un extremo a otro.
¿Qué funciones de Structured Streaming no son compatibles con Unity Catalog?
Para obtener una lista de las características de flujo estructurado que no se admiten en Unity Catalog, consulte Limitaciones de streaming para Unity Catalog.
Leer una vista de catálogo de Unity como una secuencia
Importante
Esta característica está en versión preliminar pública.
En Databricks Runtime 14.1 y versiones posteriores, es posible usar Structured Streaming para realizar lecturas de streaming de vistas registradas con el catálogo de Unity. Azure Databricks solo admite lecturas de streaming de vistas definidas en tablas Delta.
Para leer una vista con Flujo estructurado, proporcione el identificador de la vista al método .table()
como en el ejemplo siguiente:
df = (spark.readStream
.table("demoView")
)
Los usuarios deben tener privilegios de SELECT
en la vista de destino.
Opciones admitidas para configurar lecturas de streaming en vistas
Se admiten las siguientes opciones al configurar lecturas de streaming en vistas:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
El lector de streaming aplica estas opciones a los archivos y metadatos que definen las tablas Delta subyacentes.
Importante
Las lecturas en vistas definidas con UNION ALL
no admiten las opciones withEventTimeOrder
y startingVersion
.
Operaciones admitidas en vistas de origen
No todas las vistas admiten lecturas de streaming. Las operaciones no admitidas en vistas de origen incluyen las agregaciones y las ordenaciones.
En la lista siguiente, se proporcionan descripciones y definiciones de vista de ejemplo para las operaciones admitidas:
Proyecto
Descripción: controla los permisos de nivel de columna
Operador:
SELECT... FROM...
Instrucción de ejemplo:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter
Descripción: controla los permisos de nivel de fila
Operador:
WHERE...
Instrucción de ejemplo:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Unión de todo
Descripción: resultados de varias tablas
Operador:
UNION ALL
Instrucción de ejemplo:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Nota:
No se puede modificar la definición de vista para agregar ni cambiar las tablas a las que se haga referencia en la vista y usar el mismo punto de control de streaming.
Limitaciones
Se aplican las siguientes limitaciones:
Solo se puede transmitir desde vistas respaldadas por tablas Delta. No se admiten las vistas definidas en otros orígenes de datos.
Se deben registrar vistas con el catálogo de Unity.
La siguiente excepción muestra si transmite desde una vista con un operador no admitido:
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.
La siguiente excepción se muestra si proporciona opciones no admitidas:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.