Executar sua primeira carga de trabalho de ETL no Azure Databricks
Saiba como usar as ferramentas prontas para produção do Azure Databricks para desenvolver e implantar seus primeiros pipelines de ETL (extração, transformação e carregamento) para orquestração de dados.
Ao final deste artigo, você se sentirá confortável:
- Como iniciar um cluster de computação para todas as finalidades do Databricks.
- Criar um notebook do Databricks.
- Como configurar a ingestão incremental de dados para o Delta Lake com o Carregador Automático.
- Executar células de notebook para processar, consultar e visualizar dados.
- Agendar um notebook como um trabalho do Databricks.
Este tutorial usa notebooks interativos para concluir tarefas de ETL comuns no Python ou no Scala.
Use também o Delta Live Tables para criar pipelines de ETL. O Databricks criou o Delta Live Tables para reduzir a complexidade da criação, da implantação e da manutenção de pipelines de ETL de produção. Consulte Tutorial: como executar seu primeiro pipeline do Delta Live Tables.
Use também o provedor Terraform do Databricks para criar os recursos deste artigo. Confira Criar clusters, notebooks e trabalhos com o Terraform.
Requisitos
- Você está conectado a um workspace do Azure Databricks.
- Você tem permissão para criar um cluster.
Observação
Se você não tiver privilégios de controle de cluster, ainda poderá concluir a maioria das etapas abaixo, desde que tenha acesso a um cluster.
Etapa 1: criar um cluster
Para fazer a análise de dados exploratória e a engenharia de dados, crie um cluster para fornecer os recursos de computação necessários para executar comandos.
- Clique em Computação na barra lateral.
- Na página Computação, clique em Criar Cluster. Isso abre a página Novo Cluster.
- Especifique um nome exclusivo para o cluster, mantenha os valores restantes no estado padrão e clique em Criar Cluster.
Para saber mais sobre clusters do Databricks, confira Computação.
Etapa 2: criar um notebook do Databricks
Para criar um bloco de anotações em seu workspace, clique em Novo na barra lateral e clique em Notebook. Um notebook em branco é aberto no workspace.
Para saber mais sobre como criar e gerenciar notebooks, consulte Gerenciar notebooks.
Etapa 3: Configurar o Carregador Automático para ingerir dados no Delta Lake
O Databricks recomenda o uso do Carregador Automático para ingestão de dados incremental. O Carregador Automático detecta e processa automaticamente arquivos novos confirme eles chegam no armazenamento de objeto da nuvem.
O Databricks recomenda armazenar dados com o Delta Lake. O Delta Lake é uma camada de armazenamento código aberto que fornece transações ACID e habilita o data lakehouse. O Delta Lake é o formato padrão para tabelas criadas no Databricks.
A fim de configurar o Carregador Automático para ingerir dados em uma tabela do Delta Lake, copie e cole o seguinte código em uma célula vazia no notebook:
Python
# Import functions
from pyspark.sql.functions import col, current_timestamp
# Define variables used in code below
file_path = "/databricks-datasets/structured-streaming/events"
username = spark.sql("SELECT regexp_replace(current_user(), '[^a-zA-Z0-9]', '_')").first()[0]
table_name = f"{username}_etl_quickstart"
checkpoint_path = f"/tmp/{username}/_checkpoint/etl_quickstart"
# Clear out data from previous demo execution
spark.sql(f"DROP TABLE IF EXISTS {table_name}")
dbutils.fs.rm(checkpoint_path, True)
# Configure Auto Loader to ingest JSON data to a Delta table
(spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", checkpoint_path)
.load(file_path)
.select("*", col("_metadata.file_path").alias("source_file"), current_timestamp().alias("processing_time"))
.writeStream
.option("checkpointLocation", checkpoint_path)
.trigger(availableNow=True)
.toTable(table_name))
Scala
// Imports
import org.apache.spark.sql.functions.current_timestamp
import org.apache.spark.sql.streaming.Trigger
import spark.implicits._
// Define variables used in code below
val file_path = "/databricks-datasets/structured-streaming/events"
val username = spark.sql("SELECT regexp_replace(current_user(), '[^a-zA-Z0-9]', '_')").first.get(0)
val table_name = s"${username}_etl_quickstart"
val checkpoint_path = s"/tmp/${username}/_checkpoint"
// Clear out data from previous demo execution
spark.sql(s"DROP TABLE IF EXISTS ${table_name}")
dbutils.fs.rm(checkpoint_path, true)
// Configure Auto Loader to ingest JSON data to a Delta table
spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", checkpoint_path)
.load(file_path)
.select($"*", $"_metadata.file_path".as("source_file"), current_timestamp.as("processing_time"))
.writeStream
.option("checkpointLocation", checkpoint_path)
.trigger(Trigger.AvailableNow)
.toTable(table_name)
Observação
As variáveis definidas nesse código devem permitir que você o execute com segurança sem risco de conflito com ativos de workspace existentes ou outros usuários. Permissões restritas de rede ou armazenamento gerarão erros ao executar esse código, por isso contate o administrador do workspace para solucionar problemas dessas restrições.
Para saber mais sobre o Carregador Automático, confira O que é o Carregador Automático?.
Etapa 4: Processar e interagir com dados
Os notebooks executam célula por célula lógica. Para executar a lógica na célula:
Para executar a célula concluída na etapa anterior, selecione a célula e pressione SHIFT+ENTER.
Para consultar a tabela que você acabou de criar, copie e cole o código a seguir em uma célula vazia e pressione SHIFT+ENTER para executar a célula.
Python
df = spark.read.table(table_name)
Scala
val df = spark.read.table(table_name)
Para visualizar os dados em seu DataFrame, copie e cole o código a seguir em uma célula vazia e pressione SHIFT+ENTER para executar a célula.
Python
display(df)
Scala
display(df)
Para saber mais sobre opções interativas para visualizar dados, consulte Visualizações em notebooks do Databricks.
Etapa 5: Agendar um trabalho
Você pode executar notebooks do Databricks como scripts de produção adicionando-os como uma tarefa em um trabalho do Databricks. Nesta etapa, você criará um novo trabalho que poderá disparar manualmente.
Para agendar seu notebook como uma tarefa:
- Clique em Agendamento no lado direito da barra de cabeçalho.
- Insira um nome exclusivo para o nome do trabalho.
- Clique em Manual.
- Na lista suspensa cluster, selecione o cluster que você criou na etapa 1.
- Clique em Criar.
- Na janela exibida, clique em Executar agora.
- Para consultar os resultados de execução de trabalho, clique no ícone próximo ao timestamp de Última execução.
Para obter mais informações sobre trabalhos, confira O que são trabalhos do Databricks?.
Integrações adicionais
Saiba mais sobre integrações e ferramentas para engenharia de dados com o Azure Databricks: