Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Synapse serverlös SQL-pool är en serverlös frågetjänst som gör att du kan köra SQL-frågor på filer som placeras i Azure Storage. I den här snabbstarten får du lära dig hur du frågar efter olika typer av filer med hjälp av en serverlös SQL-pool. En lista över format som stöds finns i OPENROWSET.
Den här snabbstarten visar hur du frågar CSV-, Apache Parquet- och JSON-filer.
Förutsättningar
Välj en SQL-klient för att utfärda frågor:
- Azure Synapse Studio är ett webbverktyg som du kan använda för att bläddra bland filer i lagring och skapa SQL-frågor.
- Visual Studio Code med mssql-tillägget är ett plattformsoberoende enkelt utvecklar- och dataverktyg som gör att du kan köra SQL-frågor och notebook-filer på din databas på begäran.
- SQL Server Management Studio är ett klientverktyg som gör att du kan köra SQL-frågor på din databas på begäran.
Den här snabbstarten använder följande parametrar:
| Parameter | Beskrivning |
|---|---|
| Tjänstslutpunktsadress för serverlös SQL-pool | Används som servernamn |
| Tjänstslutpunktsregion för serverlös SQL-pool | Används för att avgöra vilken lagring som ska användas i exempel |
| Användarnamn och lösenord för slutpunktsåtkomst | Används för att komma åt slutpunkten |
| Databasen som används för att skapa vyer | Databas som används som startpunkt i exempel |
Första installationen
Innan du använder exemplen:
- Skapa en databas för dina vyer (om du vill använda vyer).
- Skapa autentiseringsuppgifter som ska användas av en serverlös SQL-pool för att få åtkomst till filer i lagringen.
Skapa databas
Skapa en egen databas i demosyfte. Du kan använda den här databasen för att skapa dina vyer och för exempelfrågorna i den här artikeln.
Anteckning
Databaserna används endast för att visa metadata, inte för faktiska data. Skriv ned databasnamnet för användning senare i snabbstarten.
Använd följande T-SQL-kommando och ändra <mydbname> till ett valfritt namn:
CREATE DATABASE <mydbname>
Skapa datakälla
Om du vill köra frågor med en serverlös SQL-pool skapar du en datakälla som en serverlös SQL-pool kan använda för att komma åt filer i lagring. Kör följande kodfragment för att skapa datakällan som används i exempel i det här avsnittet. Ersätt <strong-password-here> med ett starkt lösenord.
-- 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
);
Fråga CSV-filer
Följande bild visar en förhandsgranskning av filen som ska frågas:
Följande fråga visar hur du läser en CSV-fil som inte innehåller en rubrikrad, med ny rad i Windows-format och kommaavgränsade kolumner:
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
Du kan ange schema vid frågekompileringstid. Fler exempel finns i Så här kör du frågor mot CSV-filer.
Efterfråga Parquet-filer
Följande exempel visar möjligheterna för automatisk schemainferens för att ställa frågor till Parquet-filer. Det returnerar antalet rader i september 2017 utan att ange schema.
Kommentar
Du behöver inte ange kolumner i OPENROWSET WITH sats när du läser Parquet-filer. I så fall använder serverlös SQL-pool metadata i Parquet-filen och binder kolumner efter namn.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
För mer information, se Sök i Parquet-filer med serverlös SQL-pool.
Efterfråga JSON-filer
JSON-exempelfil
Filer lagras i en json-container med hjälp av mappböcker och innehåller en enda bokpost med följande struktur:
{
"_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"
}
Exempelfråga
Följande fråga visar hur du använder JSON_VALUE för att hämta skalärvärden (titel, utgivare) från en bok med titeln 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'
Viktigt!
Vi läser hela JSON-filen som en enskild rad eller kolumn. Så FIELDTERMINATOR, FIELDQUOTEoch ROWTERMINATOR är inställda på 0x0b eftersom vi inte förväntar oss att hitta den i filen.
Relaterat innehåll
- Fråga CSV-filer
- Efterfråga mappar och flera filer
- Fråga efter specifika filer
- Fråga Parquet-filer med serverlös SQL-pool
- Fråga efter kapslade typer i Parquet- och JSON-filer
- Köra frågor mot JSON-filer med hjälp av en serverlös SQL-pool
- Skapa och använda vyer med hjälp av en serverlös SQL-pool
- Skapa och använda inhemska externa tabeller
- Lagra frågeresultat till lagring