Delta Lake nei cluster Big Data di SQL Server

Si applica a: SQL Server 2019 (15.x)

Importante

Il componente aggiuntivo per i cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.

Questa guida illustra:

  • Requisiti e funzionalità di Delta Lake nei cluster Big Data di SQL Server.
  • Come caricare le librerie Delta Lake nei cluster CU12 da usare con sessioni e processi Spark 2.4.

Introduzione

Linux Foundation Delta Lake è un livello di archiviazione open source che porta le transazioni ACID (Atomicity, Consistency, Isolation And Durability, ovvero atomicità, coerenza, isolamento e durabilità) in Apache Spark e nei carichi di lavoro di Big Data. Per ulteriori informazioni su Delta Lake, vedere:

Delta Lake in cluster Big Data di SQL Server CU13 e versioni successive (Spark 3)

Per impostazione predefinita, Delta Lake viene installato e configurato in cluster Big Data di SQL Server CU13 e versioni successive. Non è richiesta alcuna azione ulteriore.

Questo articolo illustra la configurazione di Delta Lake in cluster Big Data di SQL Server CU12 e versioni precedenti.

Configurare Delta Lake in cluster Big Data di SQL Server CU12 e versioni precedenti (Spark 2.4)

Nei cluster Big Data di SQL Server CU12 o versioni successive è possibile caricare le librerie Delta Lake usando la funzionalità di gestione delle librerie Spark.

Nota

Come regola generale, usare la libreria compatibile più recente. Il codice in questa guida è stato testato usando Delta Lake 0.6.1 in cluster Big Data di SQL Server CU12. Delta Lake 0.6.1 è compatibile con Apache Spark 2.4.x, mentre le versioni successive non lo sono. Gli esempi vengono forniti così come sono, senza alcuna garanzia che siano supportati.

Configurare le opzioni di configurazione di Spark e della libreria Delta Lake

Configurare le librerie Delta Lake con l'applicazione prima di inviare i processi. È richiesta la libreria seguente:

  • delta-core: questa libreria di base abilita il supporto di Delta Lake.

La libreria deve essere destinata a Scala 2.11 e Spark 2.4.7. Questo requisito dei cluster Big Data di SQL Server si riferisce a SQL Server 2019 Cumulative Update 9 (CU9) o versioni successive.

È inoltre necessario configurare Spark per abilitare i comandi SQL Spark specifici di Delta Lake e l'integrazione del metastore. L'esempio seguente descrive in che modo un notebook di Azure Data Studio configura il supporto per Delta Lake:

%%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"
    }
}

Condividere i percorsi delle librerie per i processi in HDFS

Se più applicazioni useranno la libreria Delta Lake, copiare i file JAR di libreria appropriati in un percorso condiviso in HDFS. Tutti i processi devono quindi fare riferimento agli stessi file di libreria.

Copiare le librerie nel percorso comune:

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"

Installare in modo dinamico le librerie

È possibile installare dinamicamente i pacchetti quando si invia un processo usando le funzionalità di gestione dei pacchetti dei cluster Big Data. È prevista una penalità per l'ora di avvio del processo a causa dei download ricorrenti dei file di libreria in ogni invio di processo.

Inviare il processo Spark con azdata

L'esempio seguente usa i file JAR della libreria condivisa in HDFS:

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 questo esempio viene usata la gestione dinamica dei pacchetti per installare le dipendenze:

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

Passaggi successivi

Per informazioni su come usare in modo efficace Delta Lake, vedere gli articoli seguenti.

Per inviare processi Spark a cluster Big Data di SQL Server usando azdata o endpoint Livy, vedere Inviare processi Spark usando gli strumenti da riga di comando.

Per altre informazioni sui cluster Big Data di SQL Server e sugli scenari correlati, vedere Introduzione ai cluster Big Data di SQL Server.