Begränsningar för serverlös beräkning

Den här artikeln förklarar de aktuella begränsningarna för serverlös databehandling för anteckningsböcker och jobb. Den börjar med en översikt över de viktigaste övervägandena och ger sedan en omfattande referenslista med begränsningar.

Stöd för språk och API

  • R stöds inte.
  • Endast Spark Connect-API:er stöds. Spark RDD-API:er stöds inte.
  • Spark Connect, som används av serverlös beräkning, skjuter upp analys och namnupplösning till körtid, vilket kan förändra din kods beteende. Se Jämför Spark Connect med Spark Classic.
  • ANSI-läget är aktiverat som standard. Ogiltiga kast, aritmetiskt överflöde och felaktigt formad input ger fel under körning istället för att tyst returnera NULL eller ge ett felaktigt resultat. För information om hur man hanterar operationer som ändrar beteende och begränsningar för att välja bort, se avsnittet om skillnader i SQL-beteende i migreringsguiden.
  • Standardtidszonen för sessioner är Etc/UTC (Coordinated Universal Time). För att använda en annan tidszon, ställ spark.sql.session.timeZonein . Se Konfigurera Spark-egenskaper för serverlösa anteckningsböcker och jobb.
  • När du skapar en DataFrame från lokala data med får spark.createDataFrameradstorlekarna inte överstiga 128 MB.

Dataåtkomst och lagring

  • Du måste använda Unity Catalog för att ansluta till externa datakällor. Använd externa platser för att få åtkomst till molnlagring.
  • Åtkomsten till DBFS är begränsad. Använd Unity Catalog-volymer eller arbetsytefiler i stället.
  • Den fungerande katalogen för anteckningsböcker och jobbuppgifter är inte garanterad, så relativa filvägar och relativa Python-importer kan misslyckas. Använd absoluta sökvägar för att referera till filer och importera delad Python-kod som arbetsytfiler istället för relativa moduler. Se Arbeta med Python- och R-moduler.
  • Maven-koordinater stöds inte.
  • Globala temporära vyer stöds inte. När dataöverföring mellan sessioner krävs rekommenderar Databricks att du använder temporära sessionsvyer eller skapar tabeller.

Användardefinierade funktioner (UDF:er)

Användargränssnitt och loggning

  • Spark-användargränssnittet är inte tillgängligt. Använd i stället frågeprofilen för att visa information om dina Spark-frågor. Se Frågeprofil.
  • Spark-loggar är inte tillgängliga. Användare har bara åtkomst till programloggar på klientsidan.

Nätverks- och arbetsyteåtkomst

  • Åtkomst mellan arbetsytor tillåts endast om arbetsytorna finns i samma region och målarbetsytan inte har en IP-ACL eller en front-end PrivateLink konfigurerad.
  • Databricks Container Services stöds inte.
  • Serverlös datorkraft kan inte ansluta till resurser som endast kan nås via IPv6. Resurser måste vara tillgängliga via IPv4.

Begränsningar för direktuppspelning

Serverlös beräkning stöder följande strukturerade direktuppspelningsutlösare:

  • Trigger.AvailableNow(). Databricks rekommenderar det här utlösarläget för serverlös beräkning.
  • Trigger.Once(). Det här inaktuella läget stöds men rekommenderas inte.

Följande utlösare stöds inte vid serverlös beräkning:

  • Trigger.Continuous(interval).
  • Trigger.ProcessingTime(interval).
    • Om du inte anger något utlösarläge anger Apache Spark som standard utlösaren till Trigger.ProcessingTime("0 seconds"). Du måste ange en utlösare som stöds för serverlös beräkning.

Om du försöker använda en utlösare som inte stöds genererar frågan ett fel INFINITE_STREAMING_TRIGGER_NOT_SUPPORTED.

För arbetsbelastningar med kontinuerlig direktuppspelning, använd pipeline-läge i kontinuerligt läge på serverlös eller använd för att köra jobb kontinuerligt.

En beslutsguide som mappar användningsfall för direktuppspelning till rätt serverlös produkt finns i Direktuppspelning vid serverlös beräkning.

Alla begränsningar för direktuppspelning i standardåtkomstläge gäller också. Se Begränsningar för direktuppspelning.

Begränsningar för notebooks

  • Scala och R stöds inte i anteckningsfiler.
  • JAR-bibliotek stöds inte i anteckningsböcker. Lösningar finns i Metodtips för serverlös beräkning. JAR-uppgifter i arbeten stöds. Se JAR-task för jobb.
  • Bibliotek som är specifika för en notebok cachelagras inte mellan utvecklingssessioner.
  • Det går inte att dela TEMP-tabeller och vyer när du delar en notebook-fil mellan användare.
  • Autokomplettering och Variabelutforskare för dataramar i notebook-filer stöds inte.
  • Som standard sparas nya notebook-filer i .ipynb format. Om notebook-filen sparas i källformat kanske inte serverlösa metadata fångas in korrekt och vissa funktioner kanske inte fungerar som förväntat.
  • Notebook-taggar stöds inte. Använd serverlösa användningsprinciper för att tagga serverlös användning.

Jobbbegränsningar

  • Aktivitetsloggar är inte isolerade per uppgiftskörning. Loggarna innehåller utdata från flera uppgifter.
  • Uppgiftsbibliotek stöds inte för anteckningsblocksuppgifter. Använd bibliotek med notebookspecifikt omfång i stället. Se Notebook-specifika Python-bibliotek.
  • Som standard har serverlösa jobb ingen tidsgräns för frågekörning. Du kan ange en tidsgräns för exekvering av jobbförfrågningar med hjälp av egenskapen spark.databricks.execution.timeout. Mer information finns i Konfigurera Spark-egenskaper för serverlösa notebooks och jobb.
  • Serverlös beräkning har en maximal körningstid på 7 dagar. Körningar som pågår längre än 7 dagar avbryts av plattformen och försöks inte köras igen. Om du vill köra arbetsbelastningar längre än 7 dagar kan du dela upp dem i mindre körningar eller använda klassisk beräkning.

Beräkningsspecifika begränsningar

Följande beräkningsspecifika funktioner stöds inte:

Begränsningar för cachelagring

  • Metadata cachelagras i serverlösa beräkningssessioner. Därför kanske sessionskontexten inte återställs helt när kataloger byts ut. Om du vill rensa sessionskontexten återställer du den serverlösa beräkningsresursen eller startar en ny session.
  • API:er för dataram och SQL-cache stöds inte för serverlös beräkning. Om du använder något av dessa API:er eller SQL-kommandon resulterar det i ett undantag.
  • Spark ML-modellens cache är begränsad till 1 GB (1073741824 byte) per session, och en enskild modell är begränsad till 100 MB. Båda gränserna är lägre på serverlös beräkning än på klassisk beräkning, och ingen av dem kan ändras. Att överskrida sessionsgränsen utlöser ML_CACHE_SIZE_OVERFLOW_EXCEPTION. Att överskrida gränsen per modell höjer MODEL_SIZE_OVERFLOW_EXCEPTION. För att frigöra utrymme i cachen, ta bort Python-referenserna till modeller du inte längre använder. Modeller som lämnats oanvända i 15 minuter flyttas till lokal disk och räknas fortfarande mot sessionsgränsen.

Hive-begränsningar

  • Hive SerDe-tabeller stöds inte. Dessutom stöds inte motsvarande LOAD DATA-kommando som läser in data i en Hive SerDe-tabell. Om du använder kommandot resulterar det i ett undantag.

    Stöd för datakällor är begränsat till AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, TEXT och XML.

  • Hive-variabler (till exempel ${env:var}, ${configName}, ${system:var} och spark.sql.variable) eller konfigurationsvariabelreferenser som använder syntaxen ${var} stöds inte. Om du använder Hive-variabler resulterar det i ett undantag.

    Använd DECLARE VARIABLEi stället , SET VARIABLE, och SQL-sessionsvariabelreferenser och parametermarkörer ('?', eller ':var') för att deklarera, ändra och referera till sessionstillstånd. Du kan också använda IDENTIFIER-satsen för att parametrisera objektnamn i många fall.

Datakällor som stöds

Serverlös beräkning stöder följande datakällor för DML-åtgärder (skriva, uppdatera, ta bort):

  • CSV
  • JSON
  • AVRO
  • DELTA
  • KAFKA
  • PARQUET
  • ORC
  • TEXT
  • UNITY_CATALOG
  • BINARYFILE
  • XML
  • SIMPLESCAN
  • ICEBERG

Serverlös beräkning stöder följande datakällor för läsåtgärder:

  • CSV
  • JSON
  • AVRO
  • DELTA
  • KAFKA
  • PARQUET
  • ORC
  • TEXT
  • UNITY_CATALOG
  • BINARYFILE
  • XML
  • SIMPLESCAN
  • ICEBERG
  • MYSQL
  • POSTGRESQL
  • SQLSERVER
  • REDSHIFT
  • SNOWFLAKE
  • SQLDW(Azure Synapse)
  • DATABRICKS
  • BIGQUERY
  • ORACLE
  • SALESFORCE
  • SALESFORCE_DATA_CLOUD
  • TERADATA
  • WORKDAY_RAAS
  • MONGODB