Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
K provedení následujících úloh můžete použít FUNKCI CREATE EXTERNAL TABLE AS SELECT (CETAS) ve vyhrazeném fondu SQL nebo bezserverovém fondu SQL:
Vytvoření externí tabulky
Výsledky příkazu Transact-SQL SELECT vyexportujte paralelně do:
- Hadoop
- Azure Storage Blob
- Azure Data Lake Storage Gen2
CETAS ve vyhrazeném datovém fondu SQL
Informace o vyhrazeném fondu SQL, využití a syntaxi CETAS najdete v článku CREATE EXTERNAL TABLE AS SELECT . Další informace o použití CTAS s vyhrazeným fondem SQL najdete v článku CREATE TABLE AS SELECT.
CETAS in serverless SQL pool
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 služby Azure Storage nebo Azure Data Lake Storage Gen2.
Úplnou syntaxi najdete v tématu CREATE EXTERNAL TABLE AS 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 složky aggregated_data, která se nachází v population_ds zdroji dat.
Tato ukázka spoléhá na přihlašovací údaje, zdroj dat a formát externího souboru vytvořený dříve. Refer to the external tables document. Pokud chcete uložit výsledky dotazu do jiné složky ve stejném zdroji dat, změňte argument LOCATION.
Pokud chcete uložit výsledky do jiného účtu úložiště, vytvořte a použijte jiný zdroj dat pro DATA_SOURCE argument.
Poznámka:
Ukázky, které následují, používají veřejný účet úložiště Azure Open Data. Je určený jen pro čtení. Pokud chcete tyto dotazy spustit, musíte zadat zdroj dat, ke kterému 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á jako zdroj pro CETAS externí tabulku. Spoléhá na přihlašovací údaje, zdroj dat, formát externího souboru a externí tabulku vytvořenou dříve. Refer to the external tables document.
-- 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 ukázkový kód šablony pro zápis CETAS s pohledem jako zdrojem a použitím spravované identity pro 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
- datum a čas
- datetime2
- datetimeoffset
- time
- decimal
- numeric
- float
- real
- bigint
- tinyint
- smallint
- int
- bigint
- bit
- peníze
- smallmoney
Poznámka:
S CETAS nelze použít LOBy větší než 1 MB.