Partager via


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 :

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 sur true.

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 et sqlContext 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'instance SparkSession.
    • 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.
  • 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 et filter.

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 et mapInPandas 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 ou protobuf 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 et FlatMapGroupWithState 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.
  • 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 utilisez option("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.