← Volver al blog
OneLake ShortcutNotebookPySpark

Arquitectura medallón en Fabric (parte 3): silver con shortcut y notebook

Cómo crear lh_silver, conectarlo a bronze con un shortcut de OneLake, sin copiar datos, y leer el CSV en un notebook PySpark.

MA
Allen87Data Engineer
· 6 min de lectura
Portada oscura con el texto en portugués Medalhão no Fabric, Parte 3: silver com atalho e notebook, y un fragmento de código

Esta es la parte 3 de la serie sobre arquitectura medallón en Microsoft Fabric. En la parte 2 cargamos el CSV en bronze. Ahora vamos a crear la capa silver, conectarla con bronze mediante un shortcut y leer el archivo en un notebook.

En una frase: silver ve los datos de bronze mediante un shortcut, sin copiarlos, y un notebook lee ese archivo.

Mapa de la serie: la capa silver está destacada

La capa silver

En silver, el dato en bruto se vuelve dato confiable: sin duplicados, con los tipos correctos y los nulos tratados. Antes de tratar, sin embargo, necesitamos acceso a los datos de bronze.

Crea un segundo lakehouse en el workspace, como hicimos en la parte 2: Nuevo elemento, Lakehouse, con el nombre lh_silver. Tendrá la misma estructura que lh_bronze: Files y Tables.

Shortcut: referenciar sin copiar

En vez de copiar el archivo de bronze a silver, vamos a usar un acceso directo (shortcut). Un shortcut es una referencia a un dato que está en otro lugar. No copia nada.

Animación del shortcut: la carpeta dados_vendas de lh_silver pasa a apuntar a la carpeta dados_vendas de lh_bronze, sin copiar datos

Eso trae ventajas:

  • Menos almacenamiento: el dato existe una sola vez.
  • Sin movimiento de datos: no hay un proceso de copia que mantener o esperar.
  • Dato siempre actualizado: lo que cambia en bronze ya aparece en silver.

Creando el shortcut

Mira el paso a paso animado:

Animación con capturas de Fabric: creación del shortcut en cinco pasos, destacando el clic de cada pantalla

Los pasos de abajo siguen las pantallas de Fabric, en orden. Las capturas son de la interfaz en portugués.

1. Abre el menú y elige la fuente. En lh_silver, haz clic en los tres puntos junto a Files y elige Nuevo acceso directo (o New shortcut, según el idioma). En fuentes internas, elige Microsoft OneLake.

Pantalla Nuevo acceso directo de Fabric con las fuentes internas y externas, destacando Microsoft OneLake

2. Elige el lakehouse de origen. Selecciona lh_bronze.

Selección del lakehouse de origen lh_bronze al crear el shortcut

3. Marca la carpeta. En Files, marca la carpeta dados_vendas y haz clic en Siguiente.

Carpeta dados_vendas marcada dentro de Files en lh_bronze

4. Omite la transformación. En el paso Transformar, haz clic en Omitir. Fabric ofrece convertir los datos a Delta, pero voy a mantener el CSV original y hacer esa conversión después, en la propia silver. Luego, termina la creación.

Paso Transformar del shortcut, con el botón Omitir

Resultado

En lh_silver, en Files, aparece la carpeta dados_vendas, igual a la de bronze pero con un ícono de enlace. Es la señal de que es un shortcut: al abrirla ves el vendas_raw.csv, que está físicamente en bronze.

Carpeta dados_vendas en lh_silver con el archivo vendas_raw.csv, indicada como shortcut por el ícono de enlace

Notebook: leyendo el CSV en silver

Con el shortcut listo, el siguiente paso es leer el archivo. Para eso uso un notebook, donde escribo código en PySpark.

Creando y vinculando el notebook

Mira el paso a paso animado:

Animación con capturas de Fabric: vincular lh_silver al notebook en tres pasos

1. Crea el notebook. En el workspace, haz clic en Nuevo elemento y elige Notebook. Ponle un nombre que diga lo que hace. El mío es nb_transformacao_silver.

2. Agrega el lakehouse. En el panel Elementos de datos, haz clic en Agregar elementos de datos y elige Del catálogo de OneLake.

Menú Agregar elementos de datos con la opción Del catálogo de OneLake

3. Selecciona lh_silver. Marca lh_silver y confirma.

Catálogo de OneLake listando los lakehouses lh_silver y lh_bronze

4. Revisa el vínculo. lh_silver aparece en el panel del notebook, con Tables y Files.

Panel Elementos de datos del notebook con lh_silver vinculado, mostrando Tables y Files

Este vínculo es importante: el lakehouse vinculado pasa a ser el predeterminado del notebook, y eso es lo que permite usar rutas relativas como Files/dados_vendas/... en el código.

Leyendo el archivo

En la primera celda del notebook, ejecuta:

# Celda 1: Lectura de los datos a través del shortcut de OneLake
caminho_shortcut = "Files/dados_vendas/vendas_raw.csv"

df_raw = (
    spark.read.format("csv")
    .option("header", "true")
    # inferSchema es práctico para estudiar, pero hace que Spark recorra los datos para
    # descubrir los tipos. Con muchos datos, mejor definir el schema manualmente.
    .option("inferSchema", "true")
    .load(caminho_shortcut)
)

print("Schema detectado automáticamente:")
df_raw.printSchema()

print("Datos en bruto cargados:")
display(df_raw)

Qué hace el código:

  • caminho_shortcut: la ruta del archivo, pasando por el shortcut. El notebook lee el CSV desde silver, pero el archivo sigue estando físicamente en bronze.
  • format("csv"): indica el formato del archivo.
  • header = true: la primera línea es el encabezado, no un registro.
  • inferSchema = true: Spark examina los datos y descubre el tipo de cada columna (entero, decimal, fecha, texto).
  • printSchema(): muestra la estructura inferida.
  • display(df_raw): muestra los registros cargados.

Fíjate en el comentario sobre inferSchema: aquí tiene fines didácticos. En un proyecto real, definir el schema manualmente es más eficiente.

Ejecuta el código en tu notebook y revisa el resultado: primero el schema que Spark infirió (nombre y tipo de cada columna) y después la tabla con los registros. Compara los tipos con el contenido del CSV y mira si Spark acertó. Los problemas del archivo (valor nulo y transacción duplicada) siguen ahí.

Preguntas frecuentes

¿Qué pasa si borro el shortcut?

No pasa nada con los datos. El shortcut es un objeto independiente del destino: al borrarlo, los archivos siguen en bronze. En cambio, mover o renombrar la carpeta de destino puede romper el shortcut.

¿El shortcut copia los datos de bronze a silver?

No. El shortcut es solo una referencia. El dato existe una sola vez, en bronze, y cualquier cambio hecho allí ya aparece en silver.

¿Por qué el shortcut debe apuntar a una carpeta?

Porque el shortcut se crea sobre carpetas, no sobre archivos sueltos. Por eso el CSV quedó dentro de la subcarpeta dados_vendas en bronze.

¿Por qué el CSV de silver no aparece como tabla?

Porque el shortcut está en el área Files, y en esa área los datos quedan como archivos: Fabric solo descubre tablas automáticamente en Tables. Para tener una tabla, vamos a convertir el CSV a Delta en la parte 4.

¿Por qué el notebook debe estar vinculado a lh_silver?

El lakehouse vinculado pasa a ser el predeterminado del notebook, y eso es lo que permite usar rutas relativas como Files/dados_vendas/... sin indicar la dirección completa.

Para profundizar (documentación de Microsoft)

Resumen

  • Creamos lh_silver, con la misma estructura que lh_bronze.
  • Un shortcut en Files de silver apunta a dados_vendas en bronze, sin copiar datos.
  • Creamos el notebook nb_transformacao_silver y lo vinculamos a lh_silver, que pasa a ser el lakehouse predeterminado.
  • Leímos el CSV con PySpark, pasando por el shortcut.

En la parte 4, vamos a tratar los datos y guardarlos como tabla Delta.

MA
Allen87 Data Engineer & Data Analyst

Escribo sobre Power BI, ingeniería de datos e IA aplicada. Mira el perfil completo, los 66 dashboards de Power BI publicados y GitHub.