Dela via


Begränsningar för beräkningsåtkomstläge för Unity Catalog

Databricks rekommenderar att du använder Unity Catalog och läget för delad åtkomst för de flesta arbetsbelastningar. Den här artikeln beskriver begränsningar och krav för varje åtkomstläge med Unity Catalog. Mer information om åtkomstlägen finns i Åtkomstlägen.

Databricks rekommenderar att du använder beräkningsprinciper för att förenkla konfigurationsalternativen för de flesta användare. Se Skapa och hantera beräkningsprinciper.

Kommentar

Delat utan isolering och överföring av autentiseringsuppgifter är äldre åtkomstlägen som inte stöder Unity Catalog.

Viktigt!

Init-skript och -bibliotek har olika stöd för olika åtkomstlägen och Databricks Runtime-versioner. Se Where kan init-skript installeras? och klusteromfattande bibliotek.

Begränsningar för åtkomstläge för en användare på Unity Catalog

Åtkomstläget för en användare i Unity Catalog har följande begränsningar. Dessa är utöver de allmänna begränsningarna för alla Unity Catalog åtkomstlägen. Se Allmänna begränsningar för Unity Catalog.

Detaljerade begränsningar för åtkomstkontroll för Unity Catalog åtkomstläge för en användare

På Databricks Runtime 15.3 och nedan stöds inte detaljerad åtkomstkontroll för beräkning av enskilda användare. Specifikt:

  • Du kan inte komma åt en table som har ett radfilter eller column mask.
  • Du kan inte komma åt dynamisk views.
  • Om du vill läsa från valfri vy måste du ha SELECT på alla tables och views som refereras av vyn.

Om du vill köra frågor mot dynamiska views, views där du inte har SELECT på den underliggande tables och views, och tables med radfilter eller column masker, använd något av följande:

  • Ett SQL-lager.

  • Beräkning med läget för delad åtkomst.

  • Beräkning med åtkomstläge för en användare på Databricks Runtime 15.4 LTS eller senare.

    Databricks Runtime 15.4 LTS och senare har stöd för detaljerad åtkomstkontroll för beräkning av enskilda användare. Om du vill dra nytta av datafiltreringen i Databricks Runtime 15.4 LTS och senare kontrollerar du att arbetsytan är aktiverad för serverlös beräkning.

    Serverlös beräkning hanterar datafiltrering, vilket ger åtkomst till en vy utan att kräva behörighet för dess underliggande tables och views. Eftersom serverlös beräkning hanterar datafiltrering kan du debiteras serverlösa beräkningsavgifter när du använder beräkning med en användare för att fråga views. Mer information finns i Detaljerad åtkomstkontroll för beräkning av enskilda användare.

Begränsningar för direktuppspelning table och materialiserad vy för Unity Catalog åtkomstläge för en användare

På Databricks Runtime 15.3 och nedan kan du inte använda beräkning av enskilda användare för att fråga tables som skapades med hjälp av en Delta Live Tables-pipeline, inklusive strömmande tables och materialiserade views, om dessa tablesägs av andra användare. Den användare som skapar en table är ägare.

För att ställa frågor mot strömmande tables och materialiserade views som skapats av Delta Live Tables och ägs av andra användare, använd något av följande:

  • Ett SQL-lager.

  • Beräkning med läget för delad åtkomst på Databricks Runtime 13.3 LTS eller senare.

  • Beräkning med åtkomstläge för en användare på Databricks Runtime 15.4 LTS eller senare.

    Arbetsytan måste också vara aktiverad för serverlös beräkning. Mer information finns i Detaljerad åtkomstkontroll för beräkning av enskilda användare.

Begränsningar för direktuppspelning för Unity Catalog åtkomstläge för en användare

  • Asynkron kontrollpunkt stöds inte i Databricks Runtime 11.3 LTS och nedan.
  • StreamingQueryListener kräver att Databricks Runtime 15.1 eller senare använder credentials eller interagerar med objekt som hanteras av Unity Catalog vid beräkning av en enda användare.

Begränsningar i läget delad åtkomst för Unity Catalog

Läget för delad åtkomst i Unity Catalog har följande begränsningar. Dessa är utöver de allmänna begränsningarna för alla Unity-Catalog åtkomstlägen. Se Allmänna begränsningar för Unity Catalog.

  • Databricks Runtime ML och Spark Machine Learning Library (MLlib) stöds inte.

  • Spark-submit-jobb stöds inte. Använd ett JAR-uppdrag i stället.

  • I Databricks Runtime 13.3 och senare får enskilda rader inte överstiga 128 MB.

  • PySpark-UDF:er kan inte komma åt Git-mappar, arbetsytefiler eller volumes för att importera moduler i Databricks Runtime 14.2 och nedan.

  • DBFS-roten och monteringarna stöder inte FUSE.

  • Anpassade containrar stöds inte.

Språkstöd för Unity Catalog läge för delad åtkomst

  • R stöds inte.
  • Scala stöds i Databricks Runtime 13.3 och senare.
    • I Databricks Runtime 15.4 LTS och senare är alla Java- eller Scala-bibliotek (JAR-filer) som paketeras med Databricks Runtime tillgängliga vid beräkning i Unity Catalog åtkomstlägen.
    • För Databricks Runtime 15.3 eller tidigare på beräkningskluster som använder delat åtkomstläge set Spark-konfigurationen spark.databricks.scala.kernel.fullClasspath.enabled till true.

Begränsningar och krav för Spark API för Unity Catalog läget för delad åtkomst

  • RDD-API:er stöds inte.
  • DBUtils och andra klienter som direkt läser data från molnlagring stöds endast när du använder en extern plats för att komma åt lagringsplatsen. Se Skapa en extern plats för att ansluta molnlagring till Azure Databricks.
  • Spark-kontext (sc),spark.sparkContextoch sqlContext stöds inte för Scala i någon Databricks Runtime och stöds inte för Python i Databricks Runtime 14.0 och senare.
    • Databricks rekommenderar att du använder variabeln spark för att interagera med instansen SparkSession .
    • Följande sc funktioner stöds inte heller: emptyRDD, range, init_batched_serializer, parallelize, pickleFile, , textFilewholeTextFiles, binaryFiles, binaryRecords, sequenceFilenewAPIHadoopFilenewAPIHadoopRDDhadoopFile, hadoopRDD, , union, runJobsetSystemProperty, uiWebUrl, , stopsetJobGroup, , . setLocalPropertygetConf
  • Följande Scala Dataset API-åtgärder kräver Databricks Runtime 15.4 LTS eller senare: map, mapPartitions, foreachPartition, flatMapreduce och filter.

UDF-begränsningar och krav för Unity Catalog läge för delad åtkomst

Användardefinierade funktioner (UDF: er) har följande begränsningar med läget för delad åtkomst:

  • Hive-UDF:er stöds inte.

  • applyInPandas och mapInPandas kräver Databricks Runtime 14.3 eller senare.

  • Scala scalar UDF:er kräver Databricks Runtime 14.2 eller senare. Andra Scala UDF:er och UDAF:er stöds inte.

  • I Databricks Runtime 14.2 och senare stöds inte användning av en anpassad version av grpc, pyarroweller protobuf i en PySpark UDF via bibliotek med notebook-omfång eller klusteromfång eftersom den installerade versionen alltid är att föredra. Information om hur du hittar versionen av installerade bibliotek finns i avsnittet Systemmiljö i den specifika versionen av Databricks Runtime.

  • Python-skalära UDF:er och Pandas UDF:er kräver Databricks Runtime 13.3 LTS eller senare.

  • Icke-skalär Python- och Pandas-UDF:er, inklusive UDF:er, UDF:er och Pandas på Spark, kräver Databricks Runtime 14.3 LTS eller senare.

Se användardefinierade funktioner (UDF: er) i Unity Catalog.

Begränsningar och krav för strömning för Unity Catalog läge för delad åtkomst

Kommentar

Vissa av kafka-alternativen i listan har begränsat stöd när de används för konfigurationer som stöds i Azure Databricks. Alla kafka-begränsningar i listan är giltiga för både batch- och dataströmbearbetning. Se Stream-bearbetning med Apache Kafka och Azure Databricks.

  • För Scala kräver foreach Databricks Runtime 16.1 eller senare. foreachBatchoch FlatMapGroupWithState stöds inte.
  • För Python foreachBatch har följande beteendeändringar i Databricks Runtime 14.0 och senare:
    • print() kommandon skriver utdata till drivrutinsloggarna.
    • Du kan inte komma åt undermodulen dbutils.widgets i funktionen.
    • Alla filer, moduler eller objekt som refereras till i funktionen måste vara serialiserbara och tillgängliga på Spark.
  • För Scala from_avro kräver Databricks Runtime 14.2 eller senare.
  • applyInPandasWithState kräver Databricks Runtime 14.3 LTS eller senare.
  • Det går inte att arbeta med socketkällor.
  • sourceArchiveDir måste finnas på samma externa plats som källan när du använder option("cleanSource", "archive") med en datakälla som hanteras av Unity Catalog.
  • För Kafka-källor och mottagare stöds inte följande alternativ:
    • kafka.sasl.client.callback.handler.class
    • kafka.sasl.login.callback.handler.class
    • kafka.sasl.login.class
    • kafka.partition.assignment.strategy
  • Följande Kafka-alternativ stöds i Databricks Runtime 13.3 LTS och senare men stöds inte i Databricks Runtime 12.2 LTS. Du kan bara ange externa platser som hanteras av Unity Catalog för följande alternativ:
    • kafka.ssl.truststore.location
    • kafka.ssl.keystore.location
  • För Scala kräver StreamingQueryListener Databricks Runtime 16.1 och senare.
  • För Python kräver StreamingQueryListener Att Databricks Runtime 14.3 LTS eller senare använder credentials eller interagerar med objekt som hanteras av Unity Catalog vid delad beräkning.

Begränsningar och krav för åtkomst till nätverk och filsystem för Unity Catalog läge för delad åtkomst

  • Du måste köra kommandon på beräkningsnoder som en användare med låg behörighet som inte får komma åt känsliga delar av filsystemet.

  • I Databricks Runtime 11.3 LTS och nedan kan du bara skapa nätverk connections till portarna 80 och 443.

  • Du kan inte ansluta till instansmetadatatjänsten eller Azure WireServer.

Allmänna begränsningar för Unity Catalog

Följande begränsningar gäller för alla Unity Catalog-aktiverade åtkomstlägen.

streamingbegränsningar för Unity Catalog

  • Apache Spark-läget för kontinuerlig bearbetning stöds inte. Se Kontinuerlig bearbetning i programmeringsguiden för Spark Structured Streaming.

Se även begränsningar för strömning för Unity Catalog åtkomstläge för en användare och begränsningar och krav för strömning för Unity Catalog läget för delad åtkomst.

För mer information om strömning med Unity Catalog, se Använda Unity Catalog med strukturerad strömning.