Cómo crear una VIEW en Synapse Serverless: paso a paso
Crear una VIEW en el serverless SQL pool de Azure Synapse es la forma más sencilla de dar un nombre amigable a una consulta sobre archivos guardados en el Data Lake. Una vista no es más que una consulta guardada: en lugar de repetir cada vez la ruta del storage y la función OPENROWSET, escribes la lógica una sola vez y la consultas como si fuera una tabla normal. Esto reduce errores, uniformiza los nombres de las columnas y facilita la vida a todo el equipo que necesita los datos.
Requisitos previos
- Un workspace de Azure Synapse Analytics con acceso a Synapse Studio.
- Una cuenta de almacenamiento ADLS Gen2 con, al menos, un archivo Parquet o CSV (por ejemplo,
vendas.parquet). - El permiso Storage Blob Data Reader sobre el contenedor, para que tu usuario pueda leer los archivos.
- Conocimientos básicos de SQL (
SELECT,FROMyGROUP BY).
Paso 1: Abrir un script SQL en serverless
En Synapse Studio, abre la pestaña Develop, haz clic en el botón + y elige SQL script. En la parte superior del editor, en el campo Connect to, selecciona Built-in. Este es el endpoint serverless: no aprovisionas ni inicias nada, y solo pagas por la cantidad de datos que procesa cada consulta. Es ideal para explorar archivos del Data Lake sin mantener infraestructura activa.
Paso 2: Crear una base de datos propia
No es posible crear vistas en la base de datos master del serverless. Por eso, crea primero una base de datos dedicada a tus objetos. Ejecuta el comando de abajo y, después, cambia el selector de base de datos (junto a Connect to) a AnaliseVendas, para que los siguientes comandos se ejecuten en el lugar correcto.
CREATE DATABASE AnaliseVendas;
Paso 3: Probar la consulta con OPENROWSET
Antes de crear la vista, confirma que realmente puedes leer el archivo. La función OPENROWSET lee datos directamente del Data Lake sin necesidad de cargarlos en ninguna tabla. BULK indica la ruta y el * actúa como comodín para leer varios archivos a la vez. Sustituye la URL por la dirección de tu cuenta y contenedor.
SELECT TOP 100 *
FROM OPENROWSET(
BULK 'https://aminhaconta.dfs.core.windows.net/dados/vendas/*.parquet',
FORMAT = 'PARQUET'
) AS linhas;
Si aparecen filas, el acceso funciona. Si recibes un error de permisos, revisa la asignación Storage Blob Data Reader del paso anterior: es la causa más común.
Consejo: con archivos CSV, añadePARSER_VERSION = '2.0'y, si la primera fila tiene encabezados,HEADER_ROW = TRUEdentro deOPENROWSET.
Paso 4: Crear la VIEW
Con la consulta validada, encapsúlala en una vista. La instrucción CREATE VIEW guarda la definición en la base de datos. Nombrar las columnas de forma explícita es una buena práctica: hace que la vista sea estable y previsible, aunque el orden de las columnas en el archivo cambie más adelante.
CREATE VIEW dbo.vVendas AS
SELECT
linhas.Data,
linhas.Produto,
linhas.Quantidade,
linhas.Total
FROM OPENROWSET(
BULK 'https://aminhaconta.dfs.core.windows.net/dados/vendas/*.parquet',
FORMAT = 'PARQUET'
) AS linhas;
Fíjate en que dentro de una vista no tiene sentido usar TOP ni ORDER BY innecesarios: la vista debe devolver el conjunto completo y dejar el filtrado y el orden a quien la consulta.
Paso 5: Consultar la vista
A partir de ahora, cualquier persona con acceso a la base de datos puede consultar los datos sin saber dónde están los archivos ni cómo se llama el contenedor:
SELECT Produto, SUM(Total) AS TotalVendido
FROM dbo.vVendas
GROUP BY Produto
ORDER BY TotalVendido DESC;
La ruta del storage queda oculta dentro de la vista. Si mañana mueves los archivos, basta con cambiar la vista una vez y todas las consultas siguen funcionando.
Verificar el resultado
Para confirmar que la vista se creó correctamente, consulta el catálogo del sistema:
SELECT name, create_date
FROM sys.views
WHERE name = 'vVendas';
Si aparece la fila y el SELECT del Paso 5 devuelve los totales por producto, todo está correcto. Como comprobación extra, compara el número de filas de la vista (SELECT COUNT(*) FROM dbo.vVendas) con lo que esperabas de los archivos de origen.
Conclusión
Con una VIEW en el serverless SQL pool has convertido archivos dispersos del Data Lake en una interfaz simple, reutilizable y fácil de compartir. Es la base para capas de datos más organizadas y para dar acceso al equipo sin exponer rutas técnicas. El siguiente paso natural es crear vistas sobre datos particionados con la función filepath(), o definir tipos de datos con la cláusula WITH en OPENROWSET. ¿Qué consulta que repites cada día ganaría con convertirse en una vista?