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.
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.
Anteckning
Ä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;
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 tabell som skapats via CETAS som en vanlig extern tabell.
Anteckning
Ä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. You can't repeat this script because CETAS won't overwrite the underlying data created in the previous execution.
De enda utdatatyper som stöds är för närvarande Parquet och CSV.
Relaterat innehåll
För mer information om hur du kan fråga olika filtyper, se Fråga en enkel CSV-fil, Fråga Parquet-filer och Fråga JSON-filer artiklarna.