CETAS se Synapse SQL
Pomocí příkazu CREATE EXTERNAL TABLE AS SELECT (CETAS) ve vyhrazeném fondu SQL nebo bezserverovém fondu SQL můžete provést následující úlohy:
Vytvoření externí tabulky
Exportujte paralelně výsledky příkazu Transact-SQL SELECT do:
- Hadoop
- Azure Storage Blob
- Azure Data Lake Storage Gen2
CETAS ve vyhrazeném fondu SQL
Informace o vyhrazeném fondu SQL, využití a syntaxi CETAS najdete v článku CREATE EXTERNAL TABLE AS SELECT . Pokyny k CTAS s využitím vyhrazeného fondu SQL najdete v článku CREATE TABLE AS SELECT .
CETAS v bezserverovém fondu SQL
Při použití bezserverového fondu SQL se CETAS používá k vytvoření externí tabulky a exportu výsledků dotazů do objektů blob nebo Azure Data Lake Storage Gen2 služby Azure Storage.
Úplnou syntaxi najdete v tématu VYTVOŘENÍ EXTERNÍ TABULKY JAKO SELECT (Transact-SQL).
Příklady
Tyto příklady používají CETAS k uložení celkového počtu obyvatel agregovaných podle roku a stavu do aggregated_data složky, která se nachází v population_ds zdroji dat.
Tato ukázka závisí na přihlašovacích údajích, zdroji dat a formátu externího souboru vytvořeném dříve. Projděte si dokument externích tabulek . Pokud chcete výsledky dotazu uložit do jiné složky ve stejném zdroji dat, změňte argument UMÍSTĚNÍ.
Pokud chcete výsledky uložit do jiného účtu úložiště, vytvořte a použijte jiný zdroj dat pro argument DATA_SOURCE.
Poznámka
Následující ukázky používají veřejný účet úložiště Azure Open Data Storage. Je jen pro čtení. Pokud chcete tyto dotazy spustit, musíte zadat zdroj dat, pro který máte oprávnění k zápisu.
-- use CETAS to export select statement with OPENROWSET result to storage
CREATE EXTERNAL TABLE population_by_year_state
WITH (
LOCATION = 'aggregated_data/',
DATA_SOURCE = population_ds,
FILE_FORMAT = census_file_format
)
AS
SELECT decennialTime, stateName, SUM(population) AS population
FROM
OPENROWSET(BULK 'https://azureopendatastorage.dfs.core.windows.net/censusdatacontainer/release/us_population_county/year=*/*.parquet',
FORMAT='PARQUET') AS [r]
GROUP BY decennialTime, stateName
GO
-- you can query the newly created external table
SELECT * FROM population_by_year_state
Následující ukázka používá externí tabulku jako zdroj pro CETAS. Spoléhá na přihlašovací údaje, zdroj dat, formát externího souboru a externí tabulku vytvořenou dříve. Projděte si dokument externích tabulek .
-- use CETAS with select from external table
CREATE EXTERNAL TABLE population_by_year_state
WITH (
LOCATION = 'aggregated_data/',
DATA_SOURCE = population_ds,
FILE_FORMAT = census_file_format
)
AS
SELECT decennialTime, stateName, SUM(population) AS population
FROM census_external_table
GROUP BY decennialTime, stateName
GO
-- you can query the newly created external table
SELECT * FROM population_by_year_state
Obecný příklad
V tomto příkladu vidíme příklad kódu šablony pro zápis CETAS se zobrazením jako zdrojem a použitím spravované identity jako ověřování.
CREATE DATABASE [<mydatabase>];
GO
USE [<mydatabase>];
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
CREATE DATABASE SCOPED CREDENTIAL [WorkspaceIdentity] WITH IDENTITY = 'Managed Identity';
GO
CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO
CREATE EXTERNAL DATA SOURCE [SynapseSQLwriteable] WITH (
LOCATION = 'https://<mystoageaccount>.dfs.core.windows.net/<mycontainer>/<mybaseoutputfolderpath>',
CREDENTIAL = [WorkspaceIdentity]
);
GO
CREATE EXTERNAL TABLE [dbo].[<myexternaltable>] WITH (
LOCATION = '<myoutputsubfolder>/',
DATA_SOURCE = [SynapseSQLwriteable],
FILE_FORMAT = [ParquetFF]
) AS
SELECT * FROM [<myview>];
GO
Podporované datové typy
CETAS lze použít k ukládání sad výsledků s následujícími datovými typy SQL:
- binární
- Varbinary
- char
- varchar
- Nchar
- nvarchar
- smalldate
- date
- datetime
- datetime2
- Datetimeoffset
- time
- decimal
- numerické
- float
- real
- bigint
- tinyint
- smallint
- int
- bigint
- bit
- Peníze
- Smallmoney
- uniqueidentifier
Poznámka
LOB větší než 1 MB nelze se systémem CETAS používat.
Další kroky
Zkuste dotazovat Apache Spark na Azure Synapse externí tabulky.