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.

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.

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:

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.

2. Elige el lakehouse de origen. Selecciona lh_bronze.

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

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.

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.

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:

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.

3. Selecciona lh_silver. Marca lh_silver y confirma.

4. Revisa el vínculo. lh_silver aparece en el panel del notebook, con 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
Filesde silver apunta adados_vendasen bronze, sin copiar datos. - Creamos el notebook
nb_transformacao_silvery 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.