Share via


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 CETAS-instructie CREATE EXTERNAL TABLE AS SELECT (CREATE EXTERNAL TABLE AS SELECT) gebruiken om de queryresultaten op te slaan in de opslag.

Notitie

Wijzig de eerste regel in de query, d.w.z. [mydbname], zodat u de database gebruikt die u hebt gemaakt.

USE [mydbname];
GO

CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D';
GO

CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
    LOCATION = 'https://<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, d.w.z. [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

Nadat 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 uitvoerbewerking zijn gemaakt, niet overschrijft. Stem op de volgende feedbackitems als sommige in uw scenario's vereist zijn of stel de nieuwe objecten voor op de feedbacksite van Azure:

De enige ondersteunde uitvoertypen zijn Parquet en CSV. U kunt stemmen op de andere typen op de Azure-feedbacksite.

Volgende stappen

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.