Beperkingen voor serverloze compute
In dit artikel worden de huidige beperkingen van serverloze berekeningen voor notebooks en taken uitgelegd. Het begint met een overzicht van de belangrijkste overwegingen en biedt vervolgens een uitgebreide referentielijst met beperkingen.
Overzicht van beperkingen
Voordat u nieuwe workloads maakt of workloads migreert naar serverloze berekeningen, moet u eerst rekening houden met de volgende beperkingen:
- Python en SQL zijn de enige ondersteunde talen.
- Alleen Api's voor Spark-verbinding worden ondersteund. Spark RDD-API's worden niet ondersteund.
- JAR-bibliotheken worden niet ondersteund. Zie De aanbevolen procedures voor serverloze berekeningen voor tijdelijke oplossingen.
- Serverloze rekenkracht is beschikbaar voor alle werkruimtegebruikers.
- Notitiebloktags worden niet ondersteund. Gebruik budgetbeleid om serverloos gebruik te taggen.
- Voor streaming kan alleen incrementele batchlogica worden gebruikt. Er is geen ondersteuning voor standaard- of tijdgebonden triggerintervallen. Zie Beperkingen voor streaming.
Referentielijst met beperkingen
In de volgende secties worden de huidige beperkingen van serverloze berekeningen vermeld.
Serverloze rekenkracht is gebaseerd op de compute-architectuur voor de standaardtoegangsmodus van Databricks (voorheen de modus voor gedeelde toegang). Hieronder vindt u de meest relevante beperkingen die zijn overgenomen van de standaardtoegangsmodus, samen met aanvullende serverloze beperkingen. Zie Beperkingen voor de compute-toegangsmodus voor Unity Catalogvoor een volledige lijst met beperkingen voor de standaardtoegangsmodus.
Algemene beperkingen
- Scala en R worden niet ondersteund.
- ANSI SQL is de standaardinstelling bij het schrijven van SQL. Afmelden voor de ANSI-modus door
spark.sql.ansi.enabled
in te stellen opfalse
. - Spark RDD-API's worden niet ondersteund.
- Spark-context (sc)
spark.sparkContext
ensqlContext
worden niet ondersteund.
- Databricks Container Services wordt niet ondersteund.
- De webterminal wordt niet ondersteund.
- Geen enkele query kan langer dan 48 uur duren.
- U moet Unity Catalog gebruiken om verbinding te maken met externe gegevensbronnen. Gebruik externe locaties voor toegang tot cloudopslag.
- Ondersteuning voor gegevensbronnen is beperkt tot AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEKST en XML.
- Door de gebruiker gedefinieerde functies (UDF's) hebben geen toegang tot internet. Daarom wordt de opdracht CREATE FUNCTION (extern) niet ondersteund. Databricks raadt aan om CREATE FUNCTION (SQL en Python) te gebruiken om UDF's te maken.
- Afzonderlijke rijen mogen niet groter zijn dan de maximale grootte van 128 MB.
- De Spark-gebruikersinterface is niet beschikbaar. Gebruik in plaats daarvan het queryprofiel om informatie over uw Spark-query's weer te geven. Zie Queryprofiel.
- Spark-logboeken zijn niet beschikbaar wanneer u serverloze notebooks en taken gebruikt. Gebruikers hebben alleen toegang tot toepassingslogboeken aan de clientzijde.
- Toegang tussen werkruimten is alleen toegestaan als de werkruimten zich in dezelfde regio bevinden en de doelwerkruimte geen IP-ACL of front-end PrivateLink heeft geconfigureerd.
- Globale tijdelijke weergaven worden niet ondersteund. Databricks raadt aan om tijdelijke weergaven van sessie te gebruiken of tabellen te maken waarbij het doorgeven van gegevens tussen sessies vereist is.
Streamingbeperkingen
- Er is geen ondersteuning voor standaard- of tijdgebonden triggerintervallen. Alleen
Trigger.AvailableNow
wordt ondersteund. Zie Gestructureerde streaming-triggerintervallen configureren. - Alle beperkingen voor streaming in de standaardtoegangsmodus zijn ook van toepassing. Zie Streaming-beperkingen en -vereisten voor de standaardtoegangsmodus van Unity Catalog.
Beperkingen voor machine learning
- Databricks Runtime voor Machine Learning en Apache Spark MLlib worden niet ondersteund.
- GPU's worden niet ondersteund.
Beperkingen voor notitieblokken
- Bibliotheken die gebonden zijn aan notebooks worden niet tussen ontwikkelingssessies in de cache opgeslagen.
- Het delen van TEMP-tabellen en weergaven bij het delen van een notitieblok tussen gebruikers wordt niet ondersteund.
- Automatisch aanvullen en Variable Explorer voor dataframes in notebooks worden niet ondersteund.
Werkstroombeperkingen
- De drivergrootte voor serverloze berekeningstaken is momenteel vast en kan niet worden gewijzigd.
- Taaklogboeken worden niet geïsoleerd per taakuitvoering. Logboeken bevatten de uitvoer van meerdere taken.
- Taakbibliotheken worden niet ondersteund voor notebooktaken. Gebruik in plaats daarvan notebookspecifieke bibliotheken. Zie Notebook-scoped Python libraries (Notebook-scoped Python-bibliotheken) voor meer informatie.
Compute-specifieke beperkingen
De volgende rekenspecifieke functies worden niet ondersteund:
- Rekenbeleid
- Init-scripts met rekenbereik
- Rekenscope-bibliotheken, waaronder op maat gemaakte gegevensbronnen en Spark-extensies. Gebruik in plaats daarvan notebook-scoped libraries.
- Instancegroepen
- Gebeurtenislogboeken berekenen
- De meeste Apache Spark-rekenconfiguraties. Zie Ondersteunde Spark-configuratieparametersvoor een lijst met ondersteunde configuraties.
- Omgevingsvariabelen. In plaats daarvan raadt Databricks aan om widgets te gebruiken om job- en taakparameters te maken.
Beperkingen voor opslaan in cache
Dataframe- en SQL-cache-API's worden niet ondersteund op serverloze berekeningen. Als u een van deze API's of SQL-opdrachten gebruikt, resulteert dit in een uitzondering.
- df.cache(), df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
- CACHE TABLE
- UNCACHE TABLE
- REFRESH TABLE
- CLEAR CACHE
Hivebeperkingen
Hive SerDe-tabellen worden niet ondersteund. Daarnaast wordt de bijbehorende LOAD DATA-opdracht waarmee gegevens in een Hive SerDe-tabel worden geladen, niet ondersteund. Als u de opdracht gebruikt, resulteert dit in een uitzondering.
Ondersteuning voor gegevensbronnen is beperkt tot AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEKST en XML.
Hive-variabelen (zoals
${env:var}
,${configName}
,${system:var}
, enspark.sql.variable
) of configuratievariabele verwijzingen met behulp van de${var}
syntaxis worden niet ondersteund. Het gebruik van Hive-variabelen resulteert in een uitzondering.Gebruik in plaats daarvan DECLARE VARIABLE, SET VARIABLEen sql-sessievariabele verwijzingen en parametermarkeringen ('?', of ':var') om de sessiestatus te declareren, te wijzigen en te verwijzen. U kunt ook de IDENTIFIER component gebruiken om objectnamen in veel gevallen te parameteriseren.