Lagra frågeresultat till lagring med hjälp av en serverlös SQL-pool i Azure Synapse Analytics

I den här artikeln får du lära dig hur du lagrar frågeresultat till lagring med hjälp av en serverlös SQL-pool.

Förutsättningar

Det första steget är att skapa en databas där du ska köra frågorna. Initiera sedan objekten genom att köra installationsskriptet på databasen. Det här installationsskriptet skapar datakällor, databasbegränsade autentiseringsuppgifter och externa filformat som används för att läsa data i dessa exempel.

Följ anvisningarna i den här artikeln för att skapa datakällor, databasbegränsade autentiseringsuppgifter och externa filformat som används för att skriva data till utdatalagringen.

Skapa extern tabell efter val

Du kan använda instruktionen CREATE EXTERNAL TABLE AS SELECT (CETAS) för att lagra frågeresultaten i lagringen.

Anteckning

Ändra den första raden i frågan, t.ex. [mydbname], så att du använder databasen som du skapade.

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;

Anteckning

Du måste ändra det här skriptet och ändra målplatsen för att köra det igen. Det går inte att skapa externa tabeller på den plats där du redan har vissa data.

Använda den externa tabellen

Du kan använda den externa tabellen som skapats via CETAS, till exempel en vanlig extern tabell.

Anteckning

Ändra den första raden i frågan, t.ex. [mydbname], så att du använder databasen som du skapade.

USE [mydbname];
GO

SELECT
    CountryName, PopulationCount
FROM PopulationCETAS
WHERE
    [Year] = 2019
ORDER BY
    [PopulationCount] DESC;

Kommentarer

När du har lagrat dina resultat går det inte att ändra data i den externa tabellen. Du kan inte upprepa det här skriptet eftersom CETAS inte skriver över underliggande data som skapades i föregående körning. Rösta på följande feedbackobjekt om några av dessa krävs i dina scenarier eller föreslå de nya på azure-feedbackwebbplatsen:

De enda utdatatyper som stöds är Parquet och CSV. Du kan rösta på de andra typerna på webbplatsen för Azure-feedback.

Nästa steg

Mer information om hur du kör frågor mot olika filtyper finns i artiklarna Fråga en enskild CSV-fil, Query Parquet-filer och Query JSON-filer .