Início Rápido: Usar o pool de SQL sem servidor
O pool de SQL sem servidor do Azure Synapse é um serviço de consulta sem servidor que permite executar as 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 de SQL sem servidor. Os formatos compatíveis são listados em OPENROWSET.
Este início rápido mostra a consulta de: arquivos CSV, Apache Parquet e JSON.
Pré-requisitos
Escolha um cliente SQL para emitir consultas:
- O Azure Synapse Studio é uma ferramenta da Web que pode ser usada para procurar arquivos no armazenamento e criar consultas SQL.
- O Azure Data Studio é uma ferramenta de cliente que permite executar consultas SQL e notebooks no banco de dados sob demanda.
- O SQL Server Management Studio é uma ferramenta de cliente que permite executar consultas SQL no banco de dados sob demanda.
Parâmetros para o início rápido:
Parâmetro | Descrição |
---|---|
Endereço do ponto de extremidade de serviço do pool de SQL sem servidor | Usado como o nome do servidor |
Região do ponto de extremidade de serviço do pool de SQL sem servidor | Usada para determinar qual armazenamento será usado nas amostras |
Nome de usuário e senha para acesso de ponto de extremidade | Usado para acessar o ponto de extremidade |
O banco de dados usado para criar exibições | Banco de dados usado como ponto de partida nas amostras |
Configuração inicial
Antes de usar os exemplos:
- Criar um banco de dados para as exibições (caso você queira usar exibições)
- Criar credenciais a serem usadas pelo pool de SQL sem servidor para acessar arquivos no armazenamento
Criar banco de dados
Crie um banco de dados próprio para fins de demonstração. Você usará esse banco de dados para criar suas exibições e para as consultas de exemplo no artigo.
Observação
Os bancos de dados são usados apenas para os metadados de exibição, não para os dados reais. Anote o nome do banco de dados usado para uso posterior no Início Rápido.
Use a seguinte consulta, alterando mydbname
para um nome de sua escolha:
CREATE DATABASE mydbname
Criar a fonte de dados
Para executar consultas usando o pool de SQL sem servidor, crie uma fonte de dados que o pool de SQL sem servidor pode usar para acessar arquivos no armazenamento. Execute o seguinte snippet de código para criar a fonte de dados usada nos 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=2018-03-28&ss=bf&srt=sco&sp=rl&st=2019-10-14T12%3A10%3A25Z&se=2061-12-31T12%3A10%3A00Z&sig=KlSU2ullCscyTS0An0nozEpo4tO5JAgGBvw%2FJX2lguw%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Consultar arquivos CSV
A seguinte imagem é uma visualização do arquivo a ser consultado:
A seguinte consulta mostra como ler um arquivo CSV que não contém uma linha de cabeçalho, com uma 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, confira como consultar um arquivo CSV.
Consultar arquivos Parquet
A amostra a seguir apresenta as funcionalidades de inferência automática de esquemas para consulta de arquivos Parquet. Ela retorna o número de linhas em setembro de 2017 sem especificar o esquema.
Observação
Você não precisa especificar colunas na cláusula OPENROWSET WITH
ao ler arquivos Parquet. Nesse caso, o pool de SQL sem servidor utiliza os metadados do arquivo Parquet e associa as colunas por 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 parquet.
Consultar arquivos JSON
Arquivo de exemplo JSON
Os arquivos são armazenados no contêiner json e na pasta books e contêm uma só 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 arquivos JSON
A seguinte consulta mostra como usar JSON_VALUE para recuperar valores escalares (título, editor) de um livro com o título Probabilística e métodos estatísticos em criptologia, uma introdução com artigos selecionados:
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 o arquivo JSON inteiro como uma só linha/coluna. Sendo assim, FIELDTERMINATOR, FIELDQUOTE e ROWTERMINATOR estão definidos como 0x0b porque não esperamos encontrá-los no arquivo.
Próximas etapas
Agora, você está pronto para continuar com os seguintes artigos:
- Consultar um arquivo CSV individual
- Consultar pastas e vários arquivos CSV
- Consultar arquivos específicos
- Consultar arquivos Parquet
- Consultar tipos aninhados Parquet
- Consultar arquivos JSON
- Como criar e usar exibições
- Como criar e usar tabelas externas
- Persistir o resultado da consulta no Armazenamento do Azure
- Consultar um arquivo CSV individual