Freigeben über


Beschränkungen des serverlosen Computing

In diesem Artikel werden die aktuellen Einschränkungen des serverlosen Computing für Notebooks und Aufträge erläutert. Es beginnt mit einer Übersicht über die wichtigsten Überlegungen und bietet dann eine umfassende Referenzliste der Einschränkungen.

Übersicht über die Einschränkungen

Bevor Sie neue Workloads erstellen oder Workloads auf serverloses Computing migrieren, sollten Sie zunächst die folgenden Einschränkungen berücksichtigen:

  • Python und SQL sind die einzigen unterstützten Sprachen.
  • Es werden nur Spark connect-APIs unterstützt. Spark-RDD-APIs werden nicht unterstützt.
  • JAR-Bibliotheken werden nicht unterstützt. Behelfslösungen finden Sie unter Bewährte Methoden für das serverlose Computing.
  • Alle Arbeitsbereichsbenutzer haben uneingeschränkten Zugriff für serverloses Computing.
  • Notebook-Tags werden nicht unterstützt.
  • Bei Streaming kann nur inkrementelle Batchlogik verwendet werden. Es gibt keine Unterstützung für Standard- oder zeitbasierte Triggerintervalle. Weitere Informationen finden Sie unter Streamingbeschränkungen.

Referenzliste für Einschränkungen

In den folgenden Abschnitten werden die aktuellen Einschränkungen des serverlosen Computing aufgeführt.

Serverloses Computing basiert auf der gemeinsam genutzten Computearchitektur. Im Anschluss werden die relevantesten Einschränkungen aufgeführt, die von gemeinsam genutztem Computing geerbt werden – zusammen mit zusätzlichen Einschränkungen für serverloses Computing. Eine vollständige Liste der Einschränkungen beim gemeinsam genutzten Computing finden Sie unter Einschränkungen des Computezugriffsmodus für Unity Catalog.

Allgemeine Einschränkungen

  • Scala und R werden nicht unterstützt.

  • ANSI SQL ist die Standardeinstellung beim Schreiben von SQL. Verlassen Sie den ANSI-Modus, indem Sie spark.sql.ansi.enabled auf false setzen.

  • Spark-RDD-APIs werden nicht unterstützt.

  • Spark-Kontext (Spark Context, sc), spark.sparkContext und sqlContext werden nicht unterstützt.

  • Databricks-Containerdienste werden nicht unterstützt.

  • Das Webterminal wird nicht unterstützt.

  • Abfragen können maximal 48 Stunden dauern.

  • Sie müssen Unity Catalog verwenden, um eine Verbindung mit externen Datenquellen herzustellen. Verwenden Sie externe Speicherorte, um auf Cloudspeicher zuzugreifen.

  • Die Unterstützung von Datenquellen ist auf AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT und XML beschränkt.

  • Benutzerdefinierte Funktionen (User-Defined Functions, UDFs) können nicht auf das Internet zugreifen. Aus diesem Grund wird der Befehl CREATE FUNCTION (External) nicht unterstützt. Databricks empfiehlt die Verwendung von CREATE FUNCTION (SQL und Python) zum Erstellen von UDFs.

  • Einzelne Zeilen dürfen maximal 128 MB groß sein.

  • Die Spark-Benutzeroberfläche ist nicht verfügbar. Verwenden Sie stattdessen das Abfrageprofil, um Informationen zu Ihren Spark-Abfragen anzuzeigen. Siehe Abfrageprofil.

  • Spark-Protokolle sind nicht verfügbar, wenn Serverlose Notizbücher und Aufträge verwendet werden. Benutzer haben nur Zugriff auf clientseitige Anwendungsprotokolle.

  • Der arbeitsbereichübergreifende Zugriff ist nur zulässig, wenn sich die Arbeitsbereiche in derselben Region befinden und der Zielarbeitsbereich keine IP-ACL oder Front-End-PrivateLink konfiguriert hat.

  • Globale temporäre Ansichten werden nicht unterstützt. Databricks empfiehlt die Verwendung temporärer Sitzungsansichten oder das Erstellen von Tabellen, bei denen sitzungsübergreifendes Übergeben von Daten erforderlich ist.

Streamingbeschränkungen

Einschränkungen für maschinelles Lernen

Einschränkungen für Notebooks

  • Notebooks haben Zugriff auf 8 GB Arbeitsspeicher. Dies ist nicht konfigurierbar.
  • Notebook-bezogene Bibliotheken werden nicht über Entwicklungssitzungen hinweg zwischengespeichert.
  • Das Freigeben von TEMP-Tabellen und -Sichten beim Freigeben eines Notebooks unter Benutzern wird nicht unterstützt.
  • AutoVervollständigen und Variablen-Explorer für Dataframes in Notebooks werden nicht unterstützt.

Einschränkungen für Workflows

  • Die Treibergröße für serverloses Computing für Aufträge ist derzeit fest vorgegeben und kann nicht geändert werden.
  • Aufgabenprotokolle werden nicht pro Aufgabenausführung isoliert. Protokolle enthalten die Ausgabe aus mehreren Aufgaben.
  • Aufgabenbibliotheken werden für Notebookaufgaben nicht unterstützt. Verwenden Sie stattdessen Notebook-bezogene Bibliotheken. Informationen finden Sie unter Python-Bibliotheken im Notebook-Bereich.

Compute-spezifische Einschränkungen

Folgende Compute-spezifische Features werden nicht unterstützt:

  • Compute-Richtlinien
  • Compute-bezogene Initialisierungsskripts
  • Compute-bezogene Bibliotheken (einschließlich benutzerdefinierter Datenquellen und Spark-Erweiterungen). Verwenden Sie stattdessen Notebook-bezogene Bibliotheken.
  • Konfigurationen für den Datenzugriff auf Computeebene, einschließlich Instanzprofilen. Daher ist es nicht möglich, über HMS an Cloudpfaden oder mithilfe von DBFS-Einbindungen ohne eingebettete Anmeldeinformationen auf Tabellen und Dateien zuzugreifen.
  • Instanzenpools
  • Compute von Ereignisprotokollen
  • Die meisten Apache Spark-Computekonfigurationen. Eine Liste der unterstützten Konfigurationen finden Sie unter "Unterstützte Spark-Konfigurationsparameter".
  • Umgebungsvariablen. Stattdessen empfiehlt Databricks die Verwendung von Widgets zum Erstellen von Auftrags- und Aufgabenparametern.

Einschränkungen bei der Zwischenspeicherung

Dataframe- und SQL-Cache-APIs werden auf serverloser Berechnung nicht unterstützt. Die Verwendung dieser APIs oder SQL-Befehle hat eine Ausnahme zur Folge.

Hive-Einschränkungen

  • Hive SerDe-Tabellen werden nicht unterstützt. Darüber hinaus wird der entsprechende Befehl LOAD DATA, der Daten in eine Hive SerDe-Tabelle lädt, nicht unterstützt. Die Verwendung des Befehls hat eine Ausnahme zur Folge.

    Die Unterstützung von Datenquellen ist auf AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT und XML beschränkt.

  • Hive-Variablen (z. B. ${env:var}, ${configName}, ${system:var} und spark.sql.variable) oder Konfigurationsvariablenverweise mit der Syntax ${var} werden nicht unterstützt. Die Verwendung von Hive-Variablen hat eine Ausnahme zur Folge.

    Verwenden Sie stattdessen DECLARE VARIABLE, SET VARIABLE und SQL-Sitzungsvariablenverweise und Parametermarkierungen („?“ oder „:var“), um den Sitzungszustand zu deklarieren, zu ändern und auf den Sitzungszustand zu verweisen. In vielen Fällen können Sie auch die IDENTIFIER-Klausel verwenden, um Objektnamen zu parametrisieren.