Speichern von Abfrageergebnissen im Speicher mithilfe eines serverlosen SQL-Pools in Azure Synapse Analytics
In diesem Artikel erfahren Sie, wie Abfrageergebnisse mithilfe eines serverlosen SQL-Pools im Speicher gespeichert werden.
Voraussetzungen
Im ersten Schritt erstellen Sie eine Datenbank, in der Sie die Abfragen ausführen. Initialisieren Sie dann die Objekte, indem Sie das Setupskript für diese Datenbank ausführen. Mit diesem Setupskript werden die Datenquellen, die für die gesamte Datenbank gültigen Anmeldeinformationen und externe Dateiformate erstellt, die in diesen Beispielen zum Lesen von Daten verwendet werden.
Befolgen Sie die Anweisungen in diesem Artikel, um Datenquellen, datenbankgestützte Anmeldeinformationen und externe Dateiformate zu erstellen, die zum Schreiben von Daten in den Ausgabespeicher verwendet werden.
CREATE EXTERNAL TABLE AS SELECT
Sie können mithilfe der CETAS-Anweisung (CREATE EXTERNAL TABLE AS SELECT) die Abfrageergebnisse im Speicher speichern.
Hinweis
Ändern Sie die erste Zeile in der Abfrage (d. h. [mydbname]), sodass die von Ihnen erstellte Datenbank verwendet wird.
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;
Hinweis
Für die erneute Ausführung müssen Sie dieses Skript modifizieren und den Zielspeicherort ändern. Externe Tabellen können nicht an dem Speicherort erstellt werden, an dem bei Ihnen bereits Daten vorhanden sind.
Verwenden der externen Tabelle
Sie können die mithilfe von CETAS erstellte externe Tabelle wie eine reguläre externe Tabelle verwendet werden.
Hinweis
Ändern Sie die erste Zeile in der Abfrage (d. h. [mydbname]), sodass die von Ihnen erstellte Datenbank verwendet wird.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Bemerkungen
Nachdem Sie Ihre Ergebnisse gespeichert haben, können die Daten in der externen Tabelle nicht mehr geändert werden. Eine Wiederholung ist für dieses Skript nicht möglich, da von CETAS die zugrunde liegenden Daten, die bei der vorherigen Ausführung erstellt wurden, nicht überschrieben werden. Stimmen Sie für die folgenden Feedbackvorschläge, falls Sie einige davon für Ihre Szenarien benötigen, oder machen Sie auf der Azure-Feedbackseite neue Vorschläge:
- Ermöglichen des Einfügens von neuen Daten in eine externe Tabelle
- Ermöglichen des Löschens von Daten aus einer externen Tabelle
- Angeben von Partitionen in CETAS
- Angeben von Dateigrößen und Zählern
Es werden ausschließlich die Ausgabetypen „Parquet“ und „CSV“ unterstützt. Sie können auf der Azure-Feedbackwebsite für die anderen Typen abstimmen.
Nächste Schritte
Weitere Informationen zum Abfragen verschiedener Dateitypen finden Sie in den Artikeln zum Abfragen einer einzelnen CSV-Datei, Abfragen von Parquet-Dateien und Abfragen von JSON-Dateien.