Início rápido: Use o conjunto SQL sem servidor
O pool SQL sem servidor Synapse é um serviço de consulta sem servidor que permite executar consultas SQL em arquivos colocados no Armazenamento do Azure. Neste início rápido, você aprenderá a consultar vários tipos de arquivos usando o pool SQL sem servidor. Os formatos suportados estão listados em OPENROWSET.
Este guia de início rápido mostra consultas: arquivos CSV, Apache Parquet e JSON.
Pré-requisitos
Escolha um cliente do SQL para emitir consultas:
- O Azure Synapse Studio é uma ferramenta Web que pode utilizar para procurar ficheiros no armazenamento e criar consultas SQL.
- O Azure Data Studio é uma ferramenta de cliente que lhe permite executar blocos de notas e consultas SQL na Base de dados a pedido.
- O SQL Server Management Studio é uma ferramenta de cliente que lhe permite executar consultas SQL na Base de dados a pedido.
Parâmetros para este início rápido:
Parâmetro | Description |
---|---|
Endereço do ponto de extremidade do serviço de pool SQL sem servidor | Usado como nome do servidor |
região de ponto de extremidade do serviço de pool SQL sem servidor | Usado para determinar qual armazenamento usaremos em amostras |
Nome de utilizador e palavra-passe para acesso ao endpoint | Usado para acessar o ponto de extremidade |
O banco de dados usado para criar modos de exibição | Base de dados utilizada como ponto de partida em amostras |
Configuração pela primeira vez
Antes de utilizar as amostras:
- Criar base de dados para as suas vistas (caso pretenda utilizar vistas)
- Criar credenciais a serem usadas pelo pool SQL sem servidor para acessar arquivos no armazenamento
Criar base de dados
Crie seu próprio banco de dados para fins de demonstração. Você usará esse banco de dados para criar suas exibições e para as consultas de exemplo neste artigo.
Nota
Os bancos de dados são usados apenas para exibir metadados, não para dados reais. Anote o nome do banco de dados que você usa para uso posterior no Guia de início rápido.
Use a seguinte consulta, alterando mydbname
para um nome de sua escolha:
CREATE DATABASE mydbname
Criar fonte de dados
Para executar consultas usando o pool SQL sem servidor, crie uma fonte de dados que o pool SQL sem servidor possa usar para acessar arquivos no armazenamento. Execute o seguinte trecho de código para criar a fonte de dados usada em exemplos nesta seção:
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <enter very strong password here>
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2022-11-02&ss=b&srt=co&sp=rl&se=2042-11-26T17:40:55Z&st=2024-11-24T09:40:55Z&spr=https&sig=DKZDuSeZhuCWP9IytWLQwu9shcI5pTJ%2Fw5Crw6fD%2BC8%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Consultar ficheiros CSV
A imagem a seguir é uma visualização do arquivo a ser consultado:
A consulta a seguir mostra como ler um arquivo CSV que não contém uma linha de cabeçalho, com nova linha no estilo do Windows e colunas delimitadas por vírgula:
SELECT TOP 10 *
FROM OPENROWSET
(
BULK 'csv/population/*.csv',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
)
WITH
(
country_code VARCHAR (5)
, country_name VARCHAR (100)
, year smallint
, population bigint
) AS r
WHERE
country_name = 'Luxembourg' AND year = 2017
Você pode especificar o esquema no momento da compilação da consulta. Para obter mais exemplos, consulte como consultar o arquivo CSV.
Consultar ficheiros de Parquet
O exemplo a seguir mostra os recursos de inferência automática de esquema para consultar arquivos Parquet. Ele retorna o número de linhas em setembro de 2017 sem especificar o esquema.
Nota
Não é necessário especificar colunas na OPENROWSET WITH
cláusula ao ler arquivos do Parquet. Nesse caso, o pool SQL sem servidor utiliza metadados no arquivo Parquet e vincula colunas pelo nome.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Encontre mais informações sobre como consultar arquivos de parquet.
Consultar ficheiros JSON
Arquivo de exemplo JSON
Os arquivos são armazenados no contêiner json, livros de pastas e contêm uma única entrada de livro com a seguinte estrutura:
{
"_id":"ahokw88",
"type":"Book",
"title":"The AWK Programming Language",
"year":"1988",
"publisher":"Addison-Wesley",
"authors":[
"Alfred V. Aho",
"Brian W. Kernighan",
"Peter J. Weinberger"
],
"source":"DBLP"
}
Consultar ficheiros JSON
A consulta a seguir mostra como usar o JSON_VALUE para recuperar valores escalares (título, editor) de um livro com o título Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected articles:
SELECT
JSON_VALUE(jsonContent, '$.title') AS title
, JSON_VALUE(jsonContent, '$.publisher') as publisher
, jsonContent
FROM OPENROWSET
(
BULK 'json/books/*.json',
DATA_SOURCE = 'SqlOnDemandDemo'
, FORMAT='CSV'
, FIELDTERMINATOR ='0x0b'
, FIELDQUOTE = '0x0b'
, ROWTERMINATOR = '0x0b'
)
WITH
( jsonContent varchar(8000) ) AS [r]
WHERE
JSON_VALUE(jsonContent, '$.title') = 'Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected Topics'
Importante
Estamos lendo todo o arquivo JSON como uma única linha/coluna. Portanto, FIELDTERMINATOR, FIELDQUOTE e ROWTERMINATOR estão definidos para 0x0b porque não esperamos encontrá-lo no arquivo.
Próximos passos
Agora você está pronto para continuar com os seguintes artigos:
- Consultar arquivo CSV único
- Consultar pastas e vários arquivos CSV
- Consultar ficheiros específicos
- Consultar arquivos do Parquet
- Tipos aninhados do Parquet de consulta
- Consultar arquivos JSON
- Criando e usando modos de exibição
- Criando e usando tabelas externas
- Persistir o resultado da consulta no armazenamento do Azure
- Consultar arquivo CSV único