(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como integrar Azure Data Lake com Synapse Serverless: passo a passo

João Barros 17 de October de 2026 4 min de leitura

Este guia mostra como integrar um container em Azure Data Lake Storage Gen2 com SQL Serverless em Azure Synapse Analytics para consultar ficheiros Parquet e criar External Tables. É útil para analytics sem ETL, reduzindo latência e custos ao ler dados diretamente do Data Lake.

Pré-requisitos

  • Conta Azure com permissões para criar recursos (Resource Group, Storage, Synapse).
  • Azure Data Lake Storage Gen2 com um container e alguns ficheiros Parquet ou CSV.
  • Workspace do Azure Synapse Analytics com SQL Serverless habilitado.
  • Acesso ao Synapse Studio e, opcionalmente, Azure Storage Explorer.

Passo 1: Configurar o acesso (Shared Access Signature ou Managed Identity)

É necessário dar acesso do Synapse ao container do Data Lake. Para desenvolvimento rápido, pode gerar uma SAS (Shared Access Signature) com permissões de leitura/listagem. Em produção, prefira Managed Identity e a role Storage Blob Data Reader no container.

# Exemplo de geração de SAS via Azure CLI (opcional) az storage container generate-sas \   --name meu-container \   --account-name minhaStorageAccount \   --permissions rl \   --expiry 2030-01-01T00:00:00Z \   --https-only \   --output tsv 

Passo 2: Criar um Data Source externo no Synapse Serverless

No Synapse Studio abra a área de Develop e crie um novo query SQL (serverless). Vamos registar o container como um external data source para facilitar consultas.

-- Substituir o URL pelo endpoint do seu container + SAS (se aplicável) CREATE EXTERNAL DATA SOURCE MyDataLake WITH (   LOCATION = 'https://minhaStorageAccount.dfs.core.windows.net/meu-container' ); 

Se usar SAS, pode incluir a string no LOCATION ou usar CREDENTIAL. Para Managed Identity, assegure que o workspace tem a identidade atribuída e a role no Storage.

Passo 3: Consultar ficheiros com OPENROWSET (exemplo Parquet e CSV)

OPENROWSET permite ler ficheiros directamente sem criar tabela persistente. Útil para exploração rápida e validação do esquema.

-- Ler ficheiros Parquet SELECT TOP 100 * FROM OPENROWSET(   BULK 'https://minhaStorageAccount.dfs.core.windows.net/meu-container/pasta/*.parquet',   FORMAT='PARQUET' ) AS [result];  -- Ler ficheiros CSV (com header e separador) SELECT * FROM OPENROWSET(   BULK 'https://minhaStorageAccount.dfs.core.windows.net/meu-container/pasta/*.csv',   FORMAT='CSV',   PARSER_VERSION='2.0' ) WITH (   Col1 int,   Col2 varchar(100),   Col3 datetime ) AS [csv]; 

Passo 4: Criar External File Format e External Table para consultas repetidas

Se planeia consultas frequentes, criar External File Format e External Table torna a experiência mais consistente e performática (metadados centralizados).

-- External File Format para Parquet CREATE EXTERNAL FILE FORMAT ParquetFormat WITH (   FORMAT_TYPE = PARQUET );  -- External Table apontando para o caminho no Data Lake CREATE EXTERNAL TABLE dbo.MyExternalParquet WITH (   LOCATION = 'pasta/subpasta',   DATA_SOURCE = MyDataLake,   FILE_FORMAT = ParquetFormat ) AS SELECT TOP 0 * FROM OPENROWSET(   BULK 'https://minhaStorageAccount.dfs.core.windows.net/meu-container/pasta/subpasta/*.parquet',   FORMAT='PARQUET' ) AS t; 

Nota: o comando CREATE EXTERNAL TABLE AS SELECT (CETAS) permite criar ficheiros a partir de uma query; aqui usamos SELECT TOP 0 para criar apenas metadados se necessário. Ajuste o esquema conforme o seu ficheiro ou use PolyBase/OPENROWSET para inferir.

Passo 5: Optimizar consultas e lidar com erros comuns

Erros comuns: 401/403 (permissões), caminhos incorretos, esquema inconsistente entre ficheiros. Para optimizar: particione ficheiros por pasta (por ex. year=2025/month=10), use Parquet columnar, e evite listar milhões de ficheiros numa única query.

-- Exemplo de filtro por pasta para reduzir ficheiros lidos SELECT * FROM OPENROWSET(   BULK 'https://minhaStorageAccount.dfs.core.windows.net/meu-container/year=2025/month=10/*.parquet',   FORMAT='PARQUET' ) AS [result]; 

Verificar o resultado

Execute uma query SELECT simples contra a External Table ou OPENROWSET para confirmar a leitura: veja linhas e tipos de dados, verifique o tempo de execução e se aparecem erros de autorização. Teste também a leitura de um ficheiro específico para validar o esquema com menos dados.

Conclusão

Com estas etapas integrou o Azure Data Lake com Synapse Serverless, podendo consultar ficheiros Parquet/CSV directamente e criar External Tables para trabalho repetido. Próximos passos: migrar para Managed Identity para segurança, particionar dados e criar views para simplificar consultas. Dica: quando vir 403, verifique primeiro a identidade usada e as roles atribuídas.