Queryresultaten opslaan met behulp van een serverloze SQL-pool in Azure Synapse Analytics
In dit artikel leert u hoe u queryresultaten opslaat met behulp van een serverloze SQL-pool.
Vereisten
De eerste stap bestaat uit het maken van een database waarin u de query's gaat uitvoeren. Initialiseer vervolgens de objecten door een installatiescript uit te voeren op die database. Met dit installatiescript worden de gegevensbronnen, referenties voor het databasebereik en externe bestandsindelingen gemaakt die worden gebruikt om gegevens in deze voorbeelden te lezen.
Volg de instructies in dit artikel om gegevensbronnen, referenties voor het databasebereik en externe bestandsindelingen die worden gebruikt om gegevens in de uitvoeropslag te schrijven.
Create external table as select
U kunt de instructie CREATE EXTERNAL TABLE AS SELECT (CETAS) gebruiken om de queryresultaten op te slaan in de opslag.
Notitie
Wijzig deze waarden in de query zodat deze overeenkomen met uw omgeving:
- mydbname : wijzig deze in de naam van de database die u hebt gemaakt
- storage-account-sas: de Shared Access Signature voor een opslagaccount waarin u uw resultaten wilt schrijven
- your-storage-account-name: de naam van uw opslagaccount waarin u de resultaten wilt schrijven (zorg ervoor dat u een container met de naam CSV hebt of dat u de naam van de container hier ook wijzigt)
USE [mydbname];
GO
CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'storage-account-sas';
GO
CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
LOCATION = 'https://your-storage-account-name.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite]
);
GO
CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO
CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH (
LOCATION = 'populationParquet/',
DATA_SOURCE = [MyDataSource],
FILE_FORMAT = [ParquetFF]
) AS
SELECT
*
FROM
OPENROWSET(
BULK 'csv/population-unix/population.csv',
DATA_SOURCE = 'sqlondemanddemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
) WITH (
CountryCode varchar(4),
CountryName varchar(64),
Year int,
PopulationCount int
) AS r;
Notitie
U moet dit script wijzigen en de doellocatie wijzigen om het opnieuw uit te voeren. Externe tabellen kunnen niet worden gemaakt op de locatie waar u al gegevens hebt.
De externe tabel gebruiken
U kunt de externe tabel die is gemaakt via CETAS gebruiken als een gewone externe tabel.
Notitie
Wijzig de eerste regel in de query, dat wil gezegd [mydbname], zodat u de database gebruikt die u hebt gemaakt.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Opmerkingen
Zodra u de resultaten hebt opgeslagen, kunnen de gegevens in de externe tabel niet worden gewijzigd. U kunt dit script niet herhalen omdat CETAS de onderliggende gegevens die in de vorige uitvoering zijn gemaakt, niet overschrijft.
De enige ondersteunde uitvoertypen zijn momenteel Parquet en CSV.
Gerelateerde inhoud
Bekijk voor meer informatie over het uitvoeren van een query op verschillende bestandstypen de artikelen Query's uitvoeren op één CSV-bestand, Query uitvoeren op Parquet-bestandenen Query's uitvoeren op JSON-bestanden.