SQL Serverless en Synapse: consultar el Data Lake sin infraestructura
João Barros
26 de September de 2024
1 min de lectura
El Serverless SQL Pool en Azure Synapse Analytics es un motor de consultas que permite consultar archivos en Azure Data Lake Storage con T-SQL estándar, sin configurar infraestructura. Paga solo por las consultas ejecutadas (TB procesados).
Consultar Parquet directamente
-- Leer un archivo Parquet de ADLS
SELECT TOP 100 *
FROM OPENROWSET(
BULK 'https://stadatalake.dfs.core.windows.net/silver/ventas/**',
FORMAT = 'PARQUET'
) AS [result];
-- Con un esquema explícito para mejor rendimiento
SELECT *
FROM OPENROWSET(
BULK 'https://stadatalake.dfs.core.windows.net/silver/ventas/',
FORMAT = 'PARQUET'
)
WITH (
fecha_venta DATE,
id_cliente INT,
ingresos DECIMAL(18,2),
pais VARCHAR(100)
) AS ventas
WHERE fecha_venta >= '2024-01-01';
Crear External Tables (vistas persistentes sobre archivos)
-- Data source apuntando a ADLS
CREATE EXTERNAL DATA SOURCE ds_silver
WITH (LOCATION = 'https://stadatalake.dfs.core.windows.net/silver');
-- Formato Parquet
CREATE EXTERNAL FILE FORMAT ff_parquet
WITH (FORMAT_TYPE = PARQUET, DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec');
-- External table
CREATE EXTERNAL TABLE dbo.ext_ventas (
fecha_venta DATE, id_cliente INT, ingresos DECIMAL(18,2), pais VARCHAR(100)
)
WITH (
LOCATION = 'ventas/',
DATA_SOURCE = ds_silver,
FILE_FORMAT = ff_parquet
);
-- Consultarla como una tabla normal
SELECT pais, SUM(ingresos) AS total
FROM dbo.ext_ventas
WHERE fecha_venta >= '2024-01-01'
GROUP BY pais
ORDER BY total DESC;
Control de acceso con credenciales
-- Acceso vía la Managed Identity de Synapse
CREATE DATABASE SCOPED CREDENTIAL synapse_msi
WITH IDENTITY = 'Managed Identity';
-- Usarla en el data source
CREATE EXTERNAL DATA SOURCE ds_silver_secure
WITH (LOCATION = 'https://stadatalake.dfs.core.windows.net/silver',
CREDENTIAL = synapse_msi);
Conclusión
El Serverless SQL Pool es ideal para la exploración ad-hoc del Data Lake, la creación de data marts virtuales y la exposición de datos a herramientas BI sin moverlos. El modelo pay-per-query lo hace económico para consultas ocasionales sobre grandes volúmenes de datos.