← Voltar ao blog
OneLake ShortcutNotebookPySpark

Arquitetura medalhão no Fabric (parte 3): silver com atalho e notebook

Como criar o lh_silver, conectá-lo à bronze com um atalho do OneLake, sem copiar dados, e ler o CSV em um notebook PySpark.

MA
Allen87Data Engineer
· 6 min de leitura
Capa escura com o texto Medalhão no Fabric, Parte 3: silver com atalho e notebook, e um trecho de código

Esta é a parte 3 da série sobre arquitetura medalhão no Microsoft Fabric. Na parte 2 carregamos o CSV na bronze. Agora vamos criar a camada silver, conectá-la à bronze com um atalho e ler o arquivo em um notebook.

Em uma frase: a silver enxerga os dados da bronze por um atalho, sem copiá-los, e um notebook lê esse arquivo.

Mapa da série: a camada silver está destacada

A camada silver

Na silver, o dado bruto vira dado confiável: sem duplicados, com os tipos corretos e os nulos tratados. Antes de tratar, porém, precisamos de acesso aos dados da bronze.

Crie um segundo lakehouse no workspace, como fizemos na parte 2: Novo item, Lakehouse, com o nome lh_silver. Ele terá a mesma estrutura do lh_bronze: Files e Tables.

Atalho: referenciar sem copiar

Em vez de copiar o arquivo da bronze para a silver, vamos usar um atalho (shortcut). Um atalho é uma referência para um dado que está em outro lugar. Ele não copia nada.

Animação do atalho: a pasta dados_vendas do lh_silver passa a apontar para a pasta dados_vendas do lh_bronze, sem copiar dados

Isso traz vantagens:

  • Menos armazenamento: o dado existe uma vez só.
  • Sem movimentação: não há processo de cópia para manter ou esperar.
  • Dado sempre atual: o que muda na bronze já aparece na silver.

Criando o atalho

Veja o passo a passo animado:

Animação com os prints do Fabric: criação do atalho em cinco passos, com destaque no clique de cada tela

Os passos abaixo seguem as telas do Fabric, na ordem. Os prints são da interface em português.

1. Abra o menu e escolha a fonte. No lh_silver, clique nos três pontinhos ao lado de Files e escolha Novo atalho (ou New shortcut, dependendo do idioma). Em fontes internas, escolha Microsoft OneLake.

Tela Novo atalho do Fabric com as fontes internas e externas, destacando Microsoft OneLake

2. Escolha o lakehouse de origem. Selecione o lh_bronze.

Seleção do lakehouse de origem lh_bronze na criação do atalho

3. Marque a pasta. Em Files, marque a pasta dados_vendas e clique em Avançar.

Pasta dados_vendas marcada dentro de Files no lh_bronze

4. Ignore a transformação. Na etapa Transformar, clique em Ignorar. O Fabric oferece converter os dados para Delta, mas vou manter o CSV original e fazer essa conversão depois, na própria silver. Em seguida, conclua a criação.

Etapa Transformar do atalho, com o botão Ignorar

Resultado

No lh_silver, em Files, aparece a pasta dados_vendas, igual à da bronze, mas com um ícone de link. É o sinal de que ela é um atalho: ao abrir, você vê o vendas_raw.csv, que está fisicamente na bronze.

Pasta dados_vendas no lh_silver com o arquivo vendas_raw.csv, indicada como atalho pelo ícone de link

Notebook: lendo o CSV na silver

Com o atalho pronto, o próximo passo é ler o arquivo. Para isso uso um notebook, onde escrevo código em PySpark.

Criando e vinculando o notebook

Veja o passo a passo animado:

Animação com os prints do Fabric: vincular o lh_silver ao notebook em três passos

1. Crie o notebook. No workspace, clique em Novo item e escolha Notebook. Dê um nome que diga o que ele faz. O meu é nb_transformacao_silver.

2. Adicione o lakehouse. No painel Itens de dados, clique em Adicionar itens de dados e escolha Do catálogo do OneLake.

Menu Adicionar itens de dados com a opção Do catálogo do OneLake

3. Selecione o lh_silver. Marque o lh_silver e confirme.

Catálogo do OneLake listando os lakehouses lh_silver e lh_bronze

4. Confira o vínculo. O lh_silver aparece no painel do notebook, com Tables e Files.

Painel Itens de dados do notebook com o lh_silver vinculado, mostrando Tables e Files

Esse vínculo é importante: o lakehouse vinculado passa a ser o padrão do notebook, e é isso que permite usar caminhos relativos como Files/dados_vendas/... no código.

Lendo o arquivo

Na primeira célula do notebook, rode:

# Célula 1: Leitura dos dados a partir do OneLake Shortcut
caminho_shortcut = "Files/dados_vendas/vendas_raw.csv"

df_raw = (
    spark.read.format("csv")
    .option("header", "true")
    # inferSchema é prático para estudo, mas faz o Spark percorrer os dados para
    # descobrir os tipos. Com muitos dados, prefira definir o schema manualmente.
    .option("inferSchema", "true")
    .load(caminho_shortcut)
)

print("Schema detectado automaticamente:")
df_raw.printSchema()

print("Dados brutos carregados:")
display(df_raw)

O que o código faz:

  • caminho_shortcut: o caminho do arquivo, passando pelo atalho. O notebook lê o CSV da silver, mas o arquivo continua fisicamente na bronze.
  • format("csv"): informa o formato do arquivo.
  • header = true: a primeira linha é o cabeçalho, e não um registro.
  • inferSchema = true: o Spark examina os dados e descobre o tipo de cada coluna (inteiro, decimal, data, texto).
  • printSchema(): mostra a estrutura inferida.
  • display(df_raw): mostra os registros carregados.

Repare no comentário sobre o inferSchema: aqui ele tem fins didáticos. Em um projeto real, definir o schema manualmente é mais performático.

Execute o código no seu notebook e confira o resultado: primeiro o schema que o Spark inferiu (nome e tipo de cada coluna) e depois a tabela com os registros. Compare os tipos com o conteúdo do CSV e veja se o Spark acertou. Os problemas do arquivo (valor nulo e transação duplicada) ainda estão lá.

Perguntas frequentes

O que acontece se eu apagar o atalho?

Nada acontece com os dados. O atalho é um objeto independente do destino: ao apagá-lo, os arquivos continuam na bronze. Já mover ou renomear a pasta de destino pode quebrar o atalho.

O atalho copia os dados da bronze para a silver?

Não. O atalho é apenas uma referência. O dado existe uma vez só, na bronze, e qualquer mudança feita lá já aparece na silver.

Por que o atalho precisa apontar para uma pasta?

Porque o atalho é criado sobre pastas, e não sobre arquivos soltos. Por isso o CSV ficou dentro da subpasta dados_vendas na bronze.

Por que o CSV da silver não aparece como tabela?

Porque o atalho está na área Files, e nessa área os dados ficam como arquivos: o Fabric só descobre tabelas automaticamente em Tables. Para ter uma tabela, vamos converter o CSV em Delta na parte 4.

Por que o notebook precisa estar vinculado ao lh_silver?

O lakehouse vinculado vira o padrão do notebook, e é isso que permite usar caminhos relativos como Files/dados_vendas/... sem informar o endereço completo.

Para ir além (documentação da Microsoft)

Resumo

  • Criamos o lh_silver, com a mesma estrutura do lh_bronze.
  • Um atalho na pasta Files da silver aponta para dados_vendas na bronze, sem copiar dados.
  • Criamos o notebook nb_transformacao_silver e o vinculamos ao lh_silver, que passa a ser o lakehouse padrão.
  • Lemos o CSV com PySpark, passando pelo atalho.

Na parte 4, vamos tratar os dados e gravá-los como tabela Delta.

MA
Allen87 Data Engineer & Data Analyst

Escrevo sobre Power BI, engenharia de dados e IA aplicada. Veja o perfil completo, os 66 dashboards Power BI publicados e o GitHub.