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:
- Enable inserting new data into external table (Invoegen van nieuwe gegevens in een externe tabel inschakelen)
- Enable deleting data from external table (Verwijderen van gegevens uit een externe tabel inschakelen)
- Specify partitions in CETAS (Partities opgeven in CETAS)
- Specify file sizes and counts (Bestandsgrootten en -aantallen opgeven)
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.