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=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 ficheiros CSV

A imagem a seguir é uma visualização do arquivo a ser consultado:

First 10 rows of the CSV file without header, Windows style new line.

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: