Inicio rápido: Uso de grupos de SQL sin servidor
El grupo de SQL sin servidor de Synapse es un servicio de consulta sin servidor que permite ejecutar consultas SQL en archivos colocados en Azure Storage. En este inicio rápido, aprenderá a consultar varios tipos de archivos mediante un grupo de SQL sin servidor. Los formatos admitidos se enumeran en OPENROWSET.
Este inicio rápido muestra cómo realizar consultas en: archivos CSV, Apache Parquet y JSON.
Requisitos previos
Elija un cliente SQL para emitir consultas:
- Azure Synapse Studio es una herramienta web que se puede usar para examinar archivos en el almacenamiento y crear consultas SQL.
- Azure Data Studio es una herramienta de cliente que permite ejecutar consultas SQL y cuadernos en la base de datos a petición.
- SQL Server Management Studio es una herramienta de cliente que permite ejecutar consultas SQL en la base de datos a petición.
Parámetros de este inicio rápido:
Parámetro | Descripción |
---|---|
Dirección del punto de conexión de servicio del grupo de SQL sin servidor | Se usa como nombre de servidor. |
Región del punto de conexión de servicio del grupo de SQL sin servidor | Se usará para determinar qué almacenamiento se utilizará en los ejemplos. |
Nombre de usuario y contraseña para el acceso al punto de conexión. | Se usa para acceder al punto de conexión. |
La base de datos que se utiliza para crear vistas. | La base de datos que se utiliza como punto de partida en ejemplos. |
Primera configuración
Antes de usar los ejemplos:
- Crear una base de datos para las vistas (en caso de que quiera usar vistas).
- Crear las credenciales que va a usar el grupo de SQL sin servidor para acceder a los archivos en el almacenamiento.
Crear base de datos
Cree su propia base de datos para fines de demostración. Usará esta base de datos para crear sus vistas y para las consultas de ejemplo de este artículo.
Nota
Las bases de datos se usan solo para los metadatos de la vista, no para los datos reales. Anote el nombre de la base de datos que usa para usarlo más adelante en el artículo de inicio rápido.
Use la siguiente consulta, cambiando mydbname
por un nombre de su elección:
CREATE DATABASE mydbname
Creación de un origen de datos
Para ejecutar consultas mediante el grupo de SQL sin servidor, cree un origen de datos que dicho grupo pueda usar para acceder a los archivos del almacenamiento. Ejecute el siguiente fragmento de código para crear el origen de datos que se usa en los ejemplos de esta sección:
-- 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
);
Consulta de archivo CSV
La imagen siguiente es una vista previa del archivo que se va a consultar:
La consulta siguiente muestra cómo leer un archivo CSV que no contiene una fila de encabezado, con una nueva línea al estilo de Windows y columnas delimitadas por comas:
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
Puede especificar el esquema en el momento de la compilación de la consulta. Para obtener más ejemplos, consulte el artículo sobre cómo consultar un archivo CSV.
Consulta de archivos de Parquet
En el ejemplo siguiente se muestran las funcionalidades de inferencia automática del esquema para los archivos Parquet. Devuelve el número de filas de septiembre de 2017 sin especificar un esquema.
Nota
No es necesario especificar columnas en la cláusula OPENROWSET WITH
al leer los archivos Parquet. En este caso, el grupo de SQL sin servidor utiliza los metadatos del archivo de Parquet y enlaza las columnas por nombre.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Obtenga más información sobre cómo consultar archivos Parquet.
Consulta de archivo JSON
Archivo de ejemplo de JSON
Los archivos se almacenan en un contenedor json, carpeta booksy contienen una entrada con un único libro con la siguiente estructura:
{
"_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 archivo JSON
En la consulta siguiente se muestra cómo usar JSON_VALUE para recuperar valores escalares (título, editor) de un libro con el 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 leyendo todo el archivo JSON como una única fila o columna. Por consiguiente, FIELDTERMINATOR, FIELDQUOTE y ROWTERMINATOR se establecen en 0x0b porque no esperamos encontrarlo en el archivo.
Pasos siguientes
Ya está preparado para continuar con los siguientes artículos:
- Consulta de archivos .csv
- Consulta de carpetas y varios archivos .csv
- Consulta de archivos específicos
- Consulta de archivos Parquet
- Consulta de tipos anidados de Parquet
- Consulta de archivos JSON
- Creación y uso de vistas en SQL a petición (versión preliminar) en Azure Synapse Analytics
- Creación y uso de tablas externas en SQL a petición (versión preliminar) en Azure Synapse Analytics
- Almacenamiento de resultados de búsqueda en el almacenamiento mediante SQL a petición (versión preliminar) en Azure Synapse Analytics
- Consulta de archivos .csv