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. Para obter uma lista de formatos suportados, consulte OPENROWSET.
Este guia de início rápido mostra como consultar 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 Visual Studio Code com a extensão mssql é uma ferramenta de dados e desenvolvedor leve de plataforma cruzada que permite executar consultas SQL e blocos de anotações em seu banco de dados sob demanda.
- O SQL Server Management Studio é uma ferramenta de cliente que permite executar consultas SQL em seu banco de dados sob demanda.
Este guia de início rápido usa os seguintes parâmetros:
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 usar 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 inicial
Antes de utilizar as amostras:
- Crie uma base de dados para as suas vistas (caso pretenda utilizar vistas).
- Crie 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ê pode 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 para uso posterior no início rápido.
Use o seguinte comando T-SQL, 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. Substitua <strong-password-here>
por uma senha forte de sua escolha.
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<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 mostra 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 arquivos 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
Para obter mais informações, consulte Consultar arquivos do Parquet usando o pool SQL sem servidor.
Consultar ficheiros JSON
Arquivo de exemplo JSON
Os arquivos são armazenados em um contêiner json, usando 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"
}
Consulta de exemplo
A consulta a seguir mostra como usar JSON_VALUE para recuperar valores escalares (título, editor) de um livro com o título Probabilistic and Statistical Methods in Cryptology, An Introduction:
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'
Importante
Lemos todo o arquivo JSON como uma única linha ou coluna. Então FIELDTERMINATOR
, , FIELDQUOTE
e ROWTERMINATOR
estão definidos para 0x0b
porque não esperamos encontrá-lo no arquivo.
Conteúdos relacionados
- Consultar ficheiros CSV
- Consultar pastas e vários ficheiros
- Consultar ficheiros específicos
- Consultar arquivos do Parquet usando o pool SQL sem servidor
- Tipos aninhados de consulta em arquivos Parquet e JSON
- Consultar arquivos JSON usando o pool SQL sem servidor
- Criar e usar modos de exibição usando o pool SQL sem servidor
- Criar e usar tabelas externas nativas
- Armazenar os resultados da consulta no armazenamento