Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby wykonać następujące zadania, możesz użyć polecenia CREATE EXTERNAL TABLE AS SELECT (CETAS) w dedykowanej puli SQL lub bezserwerowej puli SQL:
Tworzenie tabeli zewnętrznej
Eksportuj równolegle wyniki instrukcji Transact-SQL SELECT do:
- Hadoop
- Azure Storage Blob
- Azure Data Lake Storage Gen2
CETAS w dedykowanej puli SQL
W przypadku dedykowanej puli SQL, zapoznaj się ze składnią i użytkowaniem CETAS w artykule CREATE EXTERNAL TABLE AS SELECT. Aby uzyskać wskazówki dotyczące korzystania z funkcji CTAS przy użyciu dedykowanej puli SQL, zobacz artykuł CREATE TABLE AS SELECT (TWORZENIE TABELI JAKO SELECT).
CETAS w bezserwerowej puli SQL
W przypadku korzystania z bezserwerowej puli SQL funkcja CETAS służy do tworzenia tabeli zewnętrznej i eksportowania wyników zapytań do obiektu blob usługi Azure Storage lub usługi Azure Data Lake Storage Gen2.
Aby uzyskać pełną składnię, zobacz CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).
Przykłady
W tych przykładach użyto instrukcji CETAS, aby zapisać łączną populację zagregowaną według roku i stanu w folderze aggregated_data znajdującym się w population_ds źródle danych.
Ten przykład opiera się na wcześniej utworzonym poświadczeniu, źródle danych i formacie pliku zewnętrznego. Zapoznaj się z dokumentem zewnętrznych tabel. Aby zapisać wyniki zapytania w innym folderze w tym samym źródle danych, zmień argument LOCATION.
Aby zapisać wyniki na innym koncie magazynu, utwórz i użyj innego źródła danych jako argument DATA_SOURCE.
Uwaga
Przykłady, które zostały przygotowane przy użyciu publicznego konta magazynowego Azure Open Data. Tylko do odczytu. Aby wykonać te zapytania, musisz podać źródło danych, dla którego masz uprawnienia do zapisu.
-- 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
W poniższym przykładzie użyto tabeli zewnętrznej jako źródła dla CETAS. Opiera się na poświadczeniach, źródle danych, formacie pliku zewnętrznego i utworzonej wcześniej tabeli zewnętrznej. Zapoznaj się z dokumentem tabel zewnętrznych.
-- 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
Przykład ogólny
W tym przykładzie przedstawiono przykład kodu szablonu do pisania instrukcji CETAS z widokiem jako źródłem i użyciem tożsamości zarządzanej jako uwierzytelniania.
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
Obsługiwane typy danych:
CETAS może być używane do przechowywania zestawów wyników przy użyciu następujących typów danych SQL:
- binarny
- varbinary
- char
- varchar
- nchar
- nvarchar
- mała data
- data
- data i czas
- datetime2
- datetimeoffset
- czas
- dziesiętny
- numeryczny
- liczba zmiennoprzecinkowa
- rzeczywiste
- bigint
- tinyint
- smallint
- int
- bigint
- bit
- pieniądze
- smallmoney
Uwaga
Nie można używać obiektów LOB większych niż 1 MB w połączeniu z CETAS.