Limitaciones del modo de acceso de proceso para Unity Catalog
Databricks recomienda usar Unity Catalog y el modo de acceso compartido para la mayoría de las cargas de trabajo. En este artículo se describen las limitaciones y los requisitos de cada modo de acceso con Unity Catalog. Para obtener más información sobre los modos de acceso, consulte Modos de acceso.
Databricks recomienda usar directivas de proceso para simplificar las opciones de configuración de la mayoría de los usuarios. Consulte Crear y administrar directivas de proceso.
Nota:
El modo compartido sin aislamiento es un modo de acceso heredado que no admite el catálogo de Unity.
Importante
Los scripts y bibliotecas de inicialización tienen una compatibilidad diferente en los modos de acceso y las versiones de Databricks Runtime. Consulte ¿Dónde se pueden instalar los scripts de inicialización? y Bibliotecas con ámbito de clúster.
Limitaciones del modo de acceso de usuario único en el catálogo de Unity
El modo de acceso de usuario único en Unity Catalog tiene las siguientes limitaciones. Estas son además de las limitaciones generales para todos los modos de acceso a Unity Catalog. Consulte Limitaciones generales para Unity Catalog.
Limitaciones específicas del control de acceso para el modo de acceso de usuario único de Unity Catalog
En Databricks Runtime 15.3 y versiones posteriores, no se admite el control de acceso específico en el proceso de un solo usuario. Específicamente:
- No se puede acceder a una tabla que tenga un filtro de fila o una máscara de columna.
- No se puede acceder a vistas dinámicas.
- Para leer desde cualquier vista, debe tener
SELECT
en todas las tablas y vistas a las que hace referencia la vista.
Para consultar vistas dinámicas, las vistas en las que no tiene SELECT
en las tablas y vistas subyacentes, y las tablas con filtros de fila o máscaras de columna, use una de las siguientes opciones:
Un almacén de SQL.
Proceso con modo de acceso compartido.
Proceso con modo de acceso de usuario único en Databricks Runtime 15.4 LTS o superior.
Databricks Runtime 15.4 LTS y versiones posteriores admiten un control de acceso específico en un solo proceso de usuario. Para aprovechar el filtrado de datos proporcionado en Databricks Runtime 15.4 LTS y versiones posteriores, compruebe que el área de trabajo está habilitada para el proceso sin servidor.
El proceso sin servidor controla el filtrado de datos, lo que permite el acceso a una vista sin necesidad de permisos en sus tablas y vistas subyacentes. Dado que el proceso sin servidor controla el filtrado de datos, puede incurrir en cargos de proceso sin servidor cuando se usa un proceso de usuario único para consultar las vistas. Para obtener más información, consulte Control de acceso específico sobre el proceso de un solo usuario.
Limitaciones de la tabla de streaming y la vista materializada para el modo de acceso de usuario único de Unity Catalog
En Databricks Runtime 15.3 y versiones posteriores, no puede usar un proceso de usuario único para consultar las tablas creadas mediante una canalización de Delta Live Tables, incluidas las tablas de streaming y las vistas materializadas, si esas tablas son propiedad de otros usuarios. El usuario que crea una tabla es el propietario.
Para consultar tablas de streaming y vistas materializadas creadas por Delta Live Tables y propiedad de otros usuarios, use una de las siguientes opciones:
Un almacén de SQL.
Proceso con modo de acceso compartido en Databricks Runtime 13.3 LTS o superior.
Proceso con modo de acceso de usuario único en Databricks Runtime 15.4 LTS o superior.
El área de trabajo también debe estar habilitada para el proceso sin servidor. Para obtener más información, consulte Control de acceso específico sobre el proceso de un solo usuario.
Limitaciones de streaming para el modo de acceso de usuario único de Unity Catalog
- El punto de control asíncrono no es compatible con Databricks Runtime 11.3 LTS y versiones inferiores.
StreamingQueryListener
requiere Databricks Runtime 15.1 o posterior para usar credenciales o interactuar con objetos administrados por Unity Catalog en un proceso de usuario único.
Limitaciones del modo de acceso compartido en el catálogo de Unity
El modo de acceso compartido en Unity Catalog tiene las siguientes limitaciones. Estas son además de las limitaciones generales para todos los modos de acceso a Unity Catalog. Consulte Limitaciones generales para Unity Catalog.
Databricks Runtime ML y la Biblioteca de aprendizaje automático de Spark (MLlib) no se admiten.
No se admiten trabajos de envío de Spark.
En Databricks Runtime 13.3 y versiones posteriores, las filas individuales no deben superar los 128MB.
Las UDF de PySpark no pueden acceder a carpetas de Git, archivos de área de trabajo ni volúmenes para importar módulos en Databricks Runtime 14.2 y versiones posteriores.
Los montajes y raíz de DBFS no admiten FUSE.
Cuando se usa el modo de acceso compartido con el acceso directo a credenciales, las características del catálogo de Unity están deshabilitadas.
Los contenedores personalizados no se admiten.
Compatibilidad con idiomas para el modo de acceso compartido de Unity Catalog
- R no se admite.
- Scala se admite en Databricks Runtime 13.3 y versiones posteriores.
- En Databricks Runtime 15.4 LTS y versiones posteriores, todas las bibliotecas java o Scala (archivos JAR) agrupadas con Databricks Runtime están disponibles en el proceso en los modos de acceso a Unity Catalog.
- Para Databricks Runtime 15.3 o inferior en el proceso que usa el modo de acceso compartido, establezca la configuración de Spark
spark.databricks.scala.kernel.fullClasspath.enabled
entrue
.
Limitaciones y requisitos de la API de Spark para el modo de acceso compartido de Unity Catalog
- No se admiten las API de RDD.
- DBUtils y otros clientes que leen directamente los datos del almacenamiento en la nube solo se admiten cuando se usa una ubicación externa para acceder a la ubicación de almacenamiento. Consulte Creación de una ubicación externa para conectar el almacenamiento en la nube a Azure Databricks.
- Spark Context (
sc
),spark.sparkContext
ysqlContext
no se admiten para Scala en Databricks Runtime y no se admiten para Python en Databricks Runtime 14.0 y versiones posteriores.- Databricks recomienda usar la variable
spark
para interactuar con la instanciaSparkSession
. - Tampoco se admiten las siguientes funciones
sc
:emptyRDD
,range
,init_batched_serializer
,parallelize
,pickleFile
,textFile
,wholeTextFiles
,binaryFiles
,binaryRecords
,sequenceFile
,newAPIHadoopFile
,newAPIHadoopRDD
,hadoopFile
,hadoopRDD
,union
,runJob
,setSystemProperty
,uiWebUrl
,stop
,setJobGroup
,setLocalProperty
,getConf
.
- Databricks recomienda usar la variable
- Las siguientes operaciones de API de conjunto de datos de Scala requieren Databricks Runtime 15.4 LTS o superior:
map
,mapPartitions
,foreachPartition
,flatMap
,reduce
yfilter
.
limitaciones y requisitos de UDF para el modo de acceso compartido de Unity Catalog
Las funciones definidas por el usuario (UDF) tienen las siguientes limitaciones con el modo de acceso compartido:
No se admiten UDF de Hive.
applyInPandas
ymapInPandas
requieren Databricks Runtime 14.3 o superior.Las UDF escalares de Scala requieren Databricks Runtime 14.2 o superior. No se admiten otras UDF y UDAF de Scala.
En Databricks Runtime 14.2 y versiones posteriores, no se admite el uso de una versión personalizada de
grpc
,pyarrow
oprotobuf
en una UDF de PySpark a través de bibliotecas con ámbito de cuaderno o de clúster porque siempre se prefiere la versión instalada. Para buscar la versión de las bibliotecas instaladas, consulte la sección Entorno del sistema de las notas de la versión específica de Databricks Runtime.Las UDF escalares de Python y las UDF de Pandas requieren Databricks Runtime 13.3 LTS o superior.
Las UDF de Python y Pandas no escalares, incluidas las UDF, udTFs y Pandas en Spark, requieren Databricks Runtime 14.3 LTS o superior.
Consulte Funciones definidas por el usuario (UDF) en Unity Catalog.
requisitos y limitaciones de streaming para el modo de acceso compartido de Unity Catalog
Nota:
Algunas de las opciones de Kafka enumeradas tienen compatibilidad limitada cuando se usan para configuraciones admitidas en Azure Databricks. Todas las limitaciones de Kafka enumeradas son válidas tanto para el procesamiento por lotes como para el procesamiento de flujos. Consulte Procesamiento de flujos con Apache Kafka y Azure Databricks.
- En el caso de Scala, no se admiten
foreach
,foreachBatch
,StreamingListeners
yFlatMapGroupWithState
. - Para Python,
foreachBatch
tiene los siguientes cambios de comportamiento en Databricks Runtime 14.0 y versiones posteriores:print()
los comandos escriben la salida en los registros del controlador.- No se puede acceder al submódulo
dbutils.widgets
dentro de la función. - Cualquier archivo, módulo u objeto referenciado en la función debe ser serializable y estar disponible en Spark.
- Para Scala,
from_avro
requiere Databricks Runtime 14.2 o superior. applyInPandasWithState
requiere Databricks Runtime 14.3 LTS o superior.- No se puede trabajar con fuentes de socket.
- El
sourceArchiveDir
debe estar en la misma ubicación externa que la fuente cuando se utilizaoption("cleanSource", "archive")
con una fuente de datos administrada por Unity Catalog. - En el caso de los orígenes y receptores de Kafka, no se admiten las siguientes opciones:
kafka.sasl.client.callback.handler.class
kafka.sasl.login.callback.handler.class
kafka.sasl.login.class
kafka.partition.assignment.strategy
- Las siguientes opciones de Kafka no se admiten en Databricks Runtime 13.3 LTS ni versiones posteriores, pero no se admiten en Databricks Runtime 12.2 LTS. Solo puede especificar ubicaciones externas administradas por Unity Catalog para estas opciones:
kafka.ssl.truststore.location
kafka.ssl.keystore.location
StreamingQueryListener
requiere Databricks Runtime 14.3 LTS o superior para usar credenciales o interactuar con objetos administrados por Unity Catalog en proceso compartido.
Limitaciones y requisitos de acceso al sistema de archivos y redes para el modo de acceso compartido de Unity Catalog
Debe ejecutar comandos en nodos de proceso como un usuario con pocos privilegios prohibido acceder a partes confidenciales del sistema de archivos.
En Databricks Runtime 11.3 LTS y versiones posteriores, solo puede crear conexiones de red a los puertos 80 y 443.
No se puede conectar al servicio de metadatos de instancia ni a Azure WireServer.
Limitaciones generales para Unity Catalog
Las siguientes limitaciones se aplican a todos los modos de acceso habilitados para Unity Catalog.
Limitaciones de streaming para Unity Catalog
- 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.
Consulte también Limitaciones de streaming para el modo de acceso de usuario único de Unity Catalog y Limitaciones y requisitos de streaming para el modo de acceso compartido de Unity Catalog.
Para obtener más información sobre Unity Catalog, consulte Uso de Unity Catalog con Structured Streaming.