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 kör frågorna. Initiera sedan objekten genom att köra installationsskriptet på databasen. Det här installationsskriptet skapar datakällor, databasomfattningsautentiseringsuppgifter 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, databasomfattningsautentiseringsuppgifter och externa filformat som används för att skriva data till utdatalagringen.
Skapa en extern tabell efter val
Du kan använda CETAS-instruktionen (CREATE EXTERNAL TABLE AS SELECT) för att lagra frågeresultatet i lagringen.
Kommentar
Ändra dessa värden i frågan så att de återspeglar din miljö:
- mydbname – ändra det till namnet på den databas som du skapade
- storage-account-sas – signaturen för delad åtkomst för ett lagringskonto där du vill skriva dina resultat
- your-storage-account-name – namnet på ditt lagringskonto där du vill skriva dina resultat (Kontrollera att du har en container med namnet "csv" eller att du ändrar namnet på containern här också)
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;
Kommentar
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 tabell som skapats via CETAS som en vanlig extern tabell.
Kommentar
Ändra den första raden i frågan, d.v.s. [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 kan data i den externa tabellen inte ändras. Du kan inte upprepa det här skriptet eftersom CETAS inte skriver över underliggande data som skapades i föregående körning.
De enda utdatatyper som stöds är för närvarande Parquet och CSV.
Relaterat innehåll
Mer information om hur du kör frågor mot olika filtyper finns i artiklarna Query Single CSV-fil, Query Parquet-filer och Query JSON-filer .