Uložení výsledků dotazů do úložiště pomocí bezserverového fondu SQL ve službě Azure Synapse Analytics
V tomto článku se dozvíte, jak ukládat výsledky dotazů do úložiště pomocí bezserverového fondu SQL.
Požadavky
Prvním krokem je vytvoření databáze , ve které budete spouštět dotazy. Pak inicializujte objekty spuštěním instalačního skriptu v této databázi. Tento instalační skript vytvoří zdroje dat, přihlašovací údaje v oboru databáze a externí formáty souborů, které se používají ke čtení dat v těchto ukázkách.
Postupujte podle pokynů v tomto článku a vytvořte zdroje dat, přihlašovací údaje v oboru databáze a formáty externích souborů, které se používají k zápisu dat do výstupního úložiště.
Vytvořit externí tabulku jako výběr
K uložení výsledků dotazu do úložiště můžete použít příkaz CREATE EXTERNAL TABLE AS SELECT (CETAS).
Poznámka
Změňte první řádek v dotazu, tj. [mydbname], abyste používali databázi, kterou jste vytvořili.
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;
Poznámka
Musíte upravit tento skript a změnit cílové umístění, aby se spustil znovu. Externí tabulky nelze vytvořit v umístění, kde již máte nějaká data.
Použití externí tabulky
Externí tabulku vytvořenou prostřednictvím CETAS můžete použít jako běžnou externí tabulku.
Poznámka
Změňte první řádek v dotazu, tj. [mydbname], abyste používali databázi, kterou jste vytvořili.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Poznámky
Po uložení výsledků nelze data v externí tabulce změnit. Tento skript nelze opakovat, protože CETAS nepřepíše podkladová data vytvořená při předchozím spuštění. Hlasujte pro následující položky zpětné vazby, pokud některé z nich jsou ve vašich scénářích potřeba, nebo na webu Azure feedback navrhněte nové položky:
- Povolení vkládání nových dat do externí tabulky
- Povolení odstranění dat z externí tabulky
- Určení oddílů v CETAS
- Určení velikostí a počtů souborů
Jedinými podporovanými typy výstupu jsou Parquet a CSV. Pro ostatní typy můžete hlasovat na webu pro zpětnou vazbu k Azure.
Další kroky
Další informace o dotazování různých typů souborů najdete v článcích Dotazování jednoho souboru CSV, Dotazování souborů Parquet a Dotazování souborů JSON .