Freigeben über


Delta Lake für SQL Server-Big Data-Cluster

Gilt für: SQL Server 2019 (15.x)

Wichtig

Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.

In diesem Leitfaden lernen Sie Folgendes:

  • Die Voraussetzungen und Funktionen von Delta Lake für Big Data-Cluster für SQL Server
  • Laden von Delta Lake-Bibliotheken in CU12-Clustern zur Verwendung mit Spark 2.4-Sitzungen und -Aufträgen

Einführung

Delta Lake von Linux Foundation ist eine Open-Source-Speicherebene, die ACID-Transaktionen (Atomizität, Konsistenz, Isolation und Dauerhaftigkeit) zu Apache Spark und Big-Data-Workloads unterstützt. Weitere Informationen zu Delta Lake finden Sie in den folgenden Artikeln:

Delta Lake in Big Data-Cluster für SQL Server CU13 und höher (Spark 3)

Delta Lake wird in Big Data-Cluster für SQL Server CU13 und höher standardmäßig installiert und konfiguriert. Es ist keine weitere Aktion erforderlich.

Dieser Artikel behandelt die Konfiguration von Delta Lake in Big Data-Cluster für SQL Server CU12 und früher.

Konfigurieren von Delta Lake in SQL Server-Big Data-Cluster CU12 und früher (Spark 2.4)

In Big Data-Cluster für SQL Server CU12 oder früher können Delta Lake-Bibliotheken mithilfe des Spark-Features für die Bibliotheksverwaltung geladen werden.

Hinweis

Verwenden Sie generell die aktuellste kompatible Bibliothek. Der Code in diesem Leitfaden wurde mit Delta Lake 0.6.1 in Big Data-Cluster für SQL Server CU12 getestet. Delta Lake 0.6.1 ist mit Apache Spark 2.4.x kompatibel, für höhere Versionen gilt dies nicht. Die Beispiele werden in ihrer jetzigen Form bereitgestellt, damit wird aber keine Aussage zu einer möglichen Unterstützung getroffen.

Konfigurieren der Delta Lake-Bibliothek und Spark-Konfigurationsoptionen

Richten Sie Ihre Delta Lake-Clientbibliotheken mit Ihrer Anwendung ein, bevor Sie die Aufträge übermitteln. Die folgende Bibliothek ist erforderlich:

  • delta-core: Diese Kernbibliothek ermöglicht Delta Lake-Unterstützung.

Die Bibliothek muss Scala 2.11 und Spark 2.4.7 als Ziel verwenden. Diese Big Data-Cluster für SQL Server-Anforderung gilt für das kumulative SQL Server 2019-Update 9 (CU9) oder höher.

Es ist außerdem erforderlich, Spark zu konfigurieren, um für Delta Lake spezifische Spark-SQL-Befehle und die Metastore-Integration zu ermöglichen. Das Beispiel unten zeigt, wie Delta Lake-Unterstützung für ein Azure Data Studio-Notebook konfiguriert werden kann:

%%configure -f \
{
    "conf": {
        "spark.jars.packages": "io.delta:delta-core_2.11:0.6.1",
        "spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension",
        "spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"
    }
}

Freigegeben von Speicherorten für Bibliotheken für Aufträge in HDFS

Wenn mehrere Anwendungen die Delta Lake-Bibliothek nutzen, kopieren Sie die entsprechenden JAR-Bibliotheksdateien zu einem freigegebenen Speicherort in HDFS. Dann sollten alle Aufträge auf dieselben Bibliotheksdateien verweisen.

Kopieren Sie die Bibliotheken an den gemeinsamen Speicherort:

azdata bdc hdfs cp --from-path delta-core_2.11-0.6.1.jar --to-path "hdfs:/apps/jars/delta-core_2.11-0.6.1.jar"

Dynamisches Installieren der Bibliotheken

Sie können Pakete dynamisch installieren, wenn Sie einen Auftrag mithilfe der Paketverwaltungsfeatures von Big Data-Clustern übermitteln. Aufgrund der wiederholten Downloads der Bibliotheksdateien bei jeder Auftragsübermittlung gibt es beim Start des Auftrags eine Verzögerung.

Übermitteln des Spark-Auftrags mithilfe von azdata

Im folgenden Beispiel werden die JAR-Dateien der freigegebenen Bibliothek in HDFS verwendet:

azdata bdc spark batch create -f hdfs:/apps/ETL-Pipelines/my-delta-lake-python-job.py \
-j '["/apps/jars/delta-core_2.11-0.6.1.jar"]' \
--config '{"spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension","spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"}' \
-n MyETLPipelinePySpark --executor-count 2 --executor-cores 2 --executor-memory 1664m

In diesem Beispiel werden die Abhängigkeiten mithilfe von dynamischer Paketverwaltung installiert:

azdata bdc spark batch create -f hdfs:/apps/ETL-Pipelines/my-delta-lake-python-job.py \
--config '{"spark.jars.packages":"io.delta:delta-core_2.11:0.6.1","spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension","spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"' \
-n MyETLPipelinePySpark --executor-count 2 --executor-cores 2 --executor-memory 1664m

Nächste Schritte

Informationen zur effektiven Verwendung von Delta Lake finden Sie in den folgenden Artikeln.

Informationen zum Übermitteln von Spark-Aufträgen an Big Data-Cluster für SQL Server mithilfe von azdata oder Livy-Endpunkten finden Sie unter Übermitteln von Spark-Aufträgen mithilfe von Befehlszeilentools.

Weitere Informationen zu Big Data-Cluster für SQL Server und verwandten Szenarien finden Sie unter Einführung in Big Data-Cluster für SQL Server.