Compartilhar via


Delta Lake nos clusters de Big Data do SQL Server

Aplica-se a: SQL Server 2019 (15.x)

Importante

O complemento Clusters de Big Data do Microsoft SQL Server 2019 será desativado. O suporte para Clusters de Big Data do SQL Server 2019 será encerrado em 28 de fevereiro de 2025. Todos os usuários existentes do SQL Server 2019 com Software Assurance terão suporte total na plataforma e o software continuará a ser mantido por meio de atualizações cumulativas do SQL Server até esse momento. Para obter mais informações, confira a postagem no blog de anúncio e as opções de Big Data na plataforma do Microsoft SQL Server.

Neste guia, você aprenderá:

  • Os requisitos e as funcionalidades do Delta Lake no Clusters de Big Data do SQL Server.
  • Como carregar bibliotecas do Delta Lake em clusters da CU12 para usar com trabalhos e sessões do Spark 2.4.

Introdução

O Linux Foundation Delta Lake é uma camada de armazenamento de software livre que traz transações ACID (atomicidade, consistência, isolamento e durabilidade) para o Apache Spark e cargas de trabalho de Big Data. Para saber mais sobre o Delta Lake, confira:

Delta Lake no Clusters de Big Data do SQL Server CU13 e superior (Spark 3)

O Delta Lake é instalado e configurado por padrão no Clusters de Big Data do SQL Server CU13 e superior. Nenhuma ação do usuário é necessária.

Este artigo aborda a configuração do Delta Lake no Clusters de Big Data do SQL Server CU12 e inferior.

Configurar o Delta Lake em Clusters de Big Data do SQL Server CU12 e inferior (Spark 2.4)

No Clusters de Big Data do SQL Server CU12 ou inferior, é possível carregar bibliotecas do Delta Lake usando o recurso Gerenciamento de bibliotecas do Spark.

Observação

Como regra geral, use a biblioteca compatível mais recente. O código neste guia foi testado usando o Delta Lake 0.6.1 no Clusters de Big Data do SQL Server CU12. O Delta Lake 0.6.1 é compatível com o Apache Spark 2.4.x; versões posteriores não são. Os exemplos são fornecidos no estado em que se encontram, não como uma declaração de suporte.

Opções de configuração do Spark e da biblioteca do Delta Lake

Configure suas bibliotecas do Delta Lake com seu aplicativo antes de enviar os trabalhos. A seguinte biblioteca é necessária:

  • delta-core – Essa biblioteca principal habilita o suporte ao Delta Lake.

A biblioteca precisa ser destinada ao Scala 2.11 e ao Spark 2.4.7. Este requisito do Clusters de Big Data do SQL Server é para a CU9 (atualização cumulativa 9) ou posterior do SQL 2019.

Também é necessário configurar o Spark para habilitar comandos do Spark SQL específicos para o Delta Lake e a integração de metastore. O exemplo abaixo é como um notebook do Azure Data Studio configuraria o suporte ao 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"
    }
}

Compartilhar locais de biblioteca para trabalhos no HDFS

Se vários aplicativos usarão a biblioteca do Delta Lake, copie os arquivos JAR de biblioteca apropriados para uma localização compartilhada no HDFS. Em seguida, todos os trabalhos deverão referenciar os mesmos arquivos de biblioteca.

Copie as bibliotecas para o local comum:

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"

Instalar as bibliotecas dinamicamente

Você pode instalar pacotes dinamicamente ao enviar um trabalho usando os recursos de gerenciamento de pacotes dos Clusters de Big Data. Há uma penalidade de tempo de inicialização de trabalho devido aos downloads recorrentes dos arquivos de biblioteca em cada envio de trabalho.

Enviar o trabalho do Spark usando azdata

O seguinte exemplo usa os arquivos JAR da biblioteca compartilhada no 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

Este exemplo usa o gerenciamento de pacotes dinâmicos para instalar as dependências:

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

Próximas etapas

Para saber como usar efetivamente o Delta Lake, confira os artigos a seguir.

Para enviar trabalhos do Spark ao Clusters de Big Data do SQL Server usando pontos de extremidade azdata ou Livy, confira Enviar trabalhos do Spark usando ferramentas de linha de comando.

Para saber mais sobre Clusters de Big Data do SQL Server e os cenários relacionados, confira Introdução a Clusters de Big Data do SQL Server.