(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Azure Synapse Analytics
Azure Synapse Analytics 1 min

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.

Compartir: