Limitations des modes d’accès au calcul pour Unity Catalog
Databricks recommande d’utiliser Unity Catalog et le mode d’accès partagé pour la plupart des charges de travail. Cet article décrit les limitations et les exigences pour chaque mode d’accès avec Unity Catalog. Pour plus d’informations sur les modes d’accès, consultez Modes d’accès.
Databricks recommande d’utiliser des stratégies de calcul pour simplifier les options de configuration pour la plupart des utilisateurs. Consultez Créer et gérer des stratégies de calcul.
Remarque
Le partage sans isolation est un mode d’accès hérité qui ne prend pas en charge Unity Catalog.
Important
Les scripts et bibliothèques init ont une prise en charge qui varie selon les modes d’accès et les versions de Databricks Runtime. Consultez Où peuvent être installés les scripts d’initialisation ? et Bibliothèques à l’échelle du cluster.
Limitations du mode d’accès utilisateur unique sur Unity Catalog
Le mode d’accès mono-utilisateur sur Unity Catalog présente les limitations suivantes. Ces limitations s’ajoutent aux limitations générales de tous les modes d’accès à Unity Catalog. Consultez Limitations générales pour Unity Catalog.
Limitations de contrôle d’accès affinées pour le mode d’accès mono-utilisateur à Unity Catalog
Sur Databricks Runtime 15.3 et versions ultérieures, le contrôle d’accès affiné sur le calcul mono-utilisateur n’est pas pris en charge. Plus précisément :
- Vous n’avez pas accès à une table qui présente un filtre de ligne ou un masque de colonne.
- Vous ne pouvez pas accéder à vues dynamiques.
- Pour lire une vue, vous devez avoir accès
SELECT
à toutes les tables et vues qui sont référencées par la vue.
Pour interroger des vues dynamiques, des vues pour lesquelles vous n’avez pas l’autorisation SELECT
sur les tables et les vues sous-jacentes, et des tables avec des filtres de ligne ou des masques de colonne, utilisez un des éléments suivant :
Un entrepôt SQL.
Calcul avec mode d'accès partagé.
Calcul avec mode d’accès utilisateur unique sur Databricks Runtime 15.4 LTS ou version ultérieure.
Databricks Runtime 15.4 LTS et versions ultérieures prennent en charge le contrôle d’accès affiné sur le calcul mono-utilisateur. Pour tirer parti du filtrage des données fourni dans Databricks Runtime 15.4 LTS et versions ultérieures, vérifiez que votre espace de travail est activé pour le calcul serverless.
Le calcul serverless gère le filtrage des données, ce qui permet d’accéder à une vue sans avoir besoin d’autorisations sur ses tables et vues sous-jacentes. Étant donné que le calcul serverless gère le filtrage des données, vous risquez d’entraîner des frais de calcul serverless lorsque vous utilisez le calcul d’un seul utilisateur pour interroger des vues. Pour plus d’informations, consultez Contrôle d’accès affiné sur le calcul d’un seul utilisateur.
Limitations des tables de flux et des vues matérialisées pour le mode d’accès mono-utilisateur de Unity Catalog
Sur Databricks Runtime 15.3 et ci-dessous, vous ne pouvez pas utiliser le calcul d’un utilisateur unique pour interroger des tables créées à l’aide d’un pipeline Delta Live Tables, y compris les tables de diffusion en continu et les vues matérialisées, si ces tables appartiennent à d’autres utilisateurs. L’utilisateur qui crée une table en est le propriétaire.
Pour interroger des tables de streaming et des vues matérialisées créées par Delta Live Tables et détenues par d’autres utilisateurs, utilisez l’une des options suivantes :
Un entrepôt SQL.
Calcul avec mode d’accès partagé sur Databricks Runtime 13.3 LTS ou ultérieur.
Calcul avec mode d’accès utilisateur unique sur Databricks Runtime 15.4 LTS ou version ultérieure.
Votre espace de travail doit également être activé pour le calcul serverless. Pour plus d’informations, consultez Contrôle d’accès affiné sur le calcul d’un seul utilisateur.
Limitations de diffusion en continu pour le mode d’accès mono-utilisateur à Unity Catalog
- La création de point de contrôle asynchrone n’est pas prise en charge dans Databricks Runtime 11.3 LTS et versions antérieures.
StreamingQueryListener
nécessite Databricks Runtime 15.1 ou version ultérieure pour utiliser des informations d’identification ou interagir avec des objets gérés par Unity Catalog sur le calcul mono-utilisateur.
Limitations du mode d’accès partagé sur Unity Catalog
Le mode d’accès partagé dans Unity Catalog présente les limitations suivantes. Ces limitations s’ajoutent aux limitations générales de tous les modes d’accès à Unity Catalog. Consultez Limitations générales pour Unity Catalog.
Databricks Runtime ML et Spark Machine Learning Library (MLlib) ne sont pas pris en charge.
Les travaux spark-submit ne sont pas pris en charge.
Dans Databricks Runtime 13.3 et plus, les lignes individuelles ne doivent pas dépasser 128 Mo.
PySpark UDFs ne peut pas accéder aux dossiers Git, aux fichiers de l’espace de travail ou aux volumes pour importer des modules dans Databricks Runtime 14.2 et moins.
La racine et les montages DBFS ne prennent pas en charge FUSE.
Lorsque vous utilisez le mode d’accès partagé avec passage d’identifiant, les fonctions du catalogue Unity sont désactivées.
Les conteneurs personnalisés ne sont pas pris en charge.
Prise en charge linguistique pour le mode d’accès partagé à Unity Catalog
- R n’est pas pris en charge.
- Scala est supporté par Databricks Runtime 13.3 et plus.
- Dans Databricks Runtime 15.4 LTS et plus, toutes les bibliothèques Java ou Scala (fichiers JAR) fournies avec Databricks Runtime sont disponibles sur l’ordinateur dans les modes d’accès à Unity Catalog.
- Pour Databricks Runtime 15.3 ou inférieur sur le calcul qui utilise le mode d’accès partagé, définissez la configuration Spark
spark.databricks.scala.kernel.fullClasspath.enabled
surtrue
.
Limitations et exigences de l’API Spark pour le mode d’accès partagé de Unity Catalog
- Les API RDD ne sont pas prises en charge.
- DBUtils et d’autres clients lisant directement les données à partir du stockage cloud ne sont pris en charge que lorsque vous utilisez un emplacement externe pour accéder à l’emplacement de stockage. Veuillez consulter la rubrique Créer un emplacement externe pour connecter le stockage cloud à Azure Databricks.
- Le contexte Spark (
sc
),spark.sparkContext
etsqlContext
ne sont pas pris en charge pour Scala dans n’importe quel Databricks Runtime et ne sont pas pris en charge pour Python dans Databricks Runtime 14.0 et versions ultérieures.- Databricks recommande d'utiliser la variable
spark
pour interagir avec l'instanceSparkSession
. - Les fonctions
sc
suivantes ne sont pas prises en charge :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 recommande d'utiliser la variable
- Les opérations d’API de jeu de données Scala suivantes nécessitent Databricks Runtime 15.4 LTS ou versions ultérieures :
map
,mapPartitions
,foreachPartition
,flatMap
,reduce
etfilter
.
Limitations et exigences de UDF pour le mode d’accès partagé de Unity Catalog
Les fonctions définies par l’utilisateur (UDF) ont les limitations suivantes avec le mode d’accès partagé :
Les fonctions définies par l’utilisateur Hive ne sont pas prises en charge.
applyInPandas
etmapInPandas
nécessitent Databricks Runtime 14.3 ou une version ultérieure.Les UDF scalaires Scala nécessitent Databricks Runtime 14.2 ou plus. Les autres fonctions UDF et UDAF Scala ne sont pas prises en charge.
Dans Databricks Runtime 14.2 et versions inférieures, l’utilisation d’une version personnalisée de
grpc
,pyarrow
ouprotobuf
dans une fonction UDF PySpark via des bibliothèques étendues au notebook ou au cluster n’est pas prise en charge, car la version installée est toujours préférée. Pour rechercher la version des bibliothèques installées, consultez la section Environnement système des notes de publication de la version de Databricks Runtime spécifique.Les UDF scalaires Python et les UDF Pandas nécessitent Databricks Runtime 13.3 LTS ou plus.
Python et Pandas non scalaires, y compris les fonctions définies par l’utilisateur, les fonctions définies par l’utilisateur et Pandas sur Spark, nécessitent Databricks Runtime 14.3 LTS ou versions ultérieures.
Consultez les Fonctions définies par l’utilisateur (UDF) dans Unity Catalog.
Limitations et exigences de diffusion en continu pour le mode d’accès partagé à Unity Catalog
Remarque
Certaines des options Kafka répertoriées ont une prise en charge limitée lorsqu’elles sont utilisées pour les configurations prises en charge sur Azure Databricks. Toutes les limitations kafka répertoriées sont valides pour le traitement par lot et par flux. Consultez Traitement de flux avec Apache Kafka et Azure Databricks.
- Pour Scala,
foreach
,foreachBatch
,StreamingListeners
etFlatMapGroupWithState
ne sont pas pris en charge. - Pour Python,
foreachBatch
a les modifications de comportement suivantes dans Databricks Runtime 14.0 et versions supérieures :- Les commandes
print()
écrivent la sortie dans les journaux du pilote. - Vous ne pouvez pas accéder au sous-module
dbutils.widgets
à l’intérieur de la fonction. - Tous les fichiers, modules ou objets référencés dans la fonction doivent être sérialisables et disponibles sur Spark.
- Les commandes
- Pour Scala,
from_avro
nécessite Databricks Runtime 14.2 ou version ultérieure. applyInPandasWithState
nécessite Databricks Runtime 14.3 LTS ou version ultérieure.- L’utilisation des sources de socket n’est pas prise en charge.
sourceArchiveDir
doit se trouver au même emplacement externe que la source quand vous utilisezoption("cleanSource", "archive")
avec une source de données gérée par Unity Catalog.- Pour les sources et récepteurs Kafka, les options suivantes ne sont pas prises en charge :
kafka.sasl.client.callback.handler.class
kafka.sasl.login.callback.handler.class
kafka.sasl.login.class
kafka.partition.assignment.strategy
- Les options Kafka suivantes ne sont pas prises en charge dans Databricks Runtime 13.3 LTS et versions ultérieures, mais ne le sont pas dans Databricks Runtime 12.2 LTS. Vous pouvez uniquement spécifier des emplacements externes gérés par Unity Catalog pour les options suivantes :
kafka.ssl.truststore.location
kafka.ssl.keystore.location
StreamingQueryListener
nécessite Databricks Runtime 14.3 LTS ou version ultérieure pour utiliser des informations d’identification ou interagir avec des objets gérés par Unity Catalog sur le calcul partagé.
Limitations et exigences d’accès au réseau et au système de fichiers pour le mode d’accès partagé à Unity Catalog
Vous devez exécuter les commandes sur des nœuds de calcul en tant qu’utilisateur à faibles privilèges qui ne peut pas accéder aux parties sensibles du système de fichiers.
Dans Databricks Runtime 11.3 LTS et versions antérieures, vous pouvez uniquement créer des connexions réseau aux ports 80 et 443.
Vous ne pouvez pas vous connecter au Instance Metadata Service ou à Azure WireServer.
Limitations générales pour Unity Catalog
Les limitations suivantes s’appliquent à tous les modes d’accès compatibles avec Unity Catalog.
Limitations de diffusion en continu pour Unity Catalog
- Le mode de traitement continu Apache Spark n’est pas pris en charge. Consultez Traitement continu dans le Guide de programmation Spark du Structured Streaming.
Consultez également Limitations de diffusion en continu pour le mode d’accès mono-utilisateur à Unity Catalog et Limitations et exigences de diffusion en continu pour le mode d’accès partagé à Unity Catalog.
Pour en savoir plus sur la diffusion en continu avec Unity Catalog, consultez Utilisation de Unity Catalog avec Structured Streaming.