Megosztás a következőn keresztül:


CETAS a Synapse SQL-lel

A CREATE EXTERNAL TABLE AS SELECT (CETAS) parancsot használhatja dedikált SQL-készletben vagy kiszolgáló nélküli SQL-készletben a következő feladatok elvégzéséhez:

  • Külső tábla létrehozása

  • Exportálja párhuzamosan a Transact-SQL SELECT utasítás eredményeit a következőre:

    • Hadoop
    • Azure Storage Blob
    • 2. generációs Azure Data Lake Storage

CETAS dedikált SQL-készletben

Dedikált SQL-készlet, CETAS-használat és szintaxis esetén tekintse meg a CREATE EXTERNAL TABLE AS SELECT (KÜLSŐ TÁBLA LÉTREHOZÁSA SELECT-ként) című cikket. Emellett a dedikált SQL-készletet használó CTAS-sel kapcsolatos útmutatásért tekintse meg a CREATE TABLE AS SELECT című cikket.

CETAS kiszolgáló nélküli SQL-készletben

Kiszolgáló nélküli SQL-készlet használata esetén a CETAS használatával külső táblát hozhat létre, és exportálhatja a lekérdezési eredményeket az Azure Storage Blobba vagy Azure Data Lake Storage Gen2.

A teljes szintaxist lásd: CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).

Példák

Ezek a példák a CETAS használatával mentik a teljes népességet az év és az állam szerint összesítve egy aggregated_data mappába, amely az population_ds adatforrásban található.

Ez a minta a korábban létrehozott hitelesítő adatokra, adatforrásra és külső fájlformátumra támaszkodik. Tekintse meg a külső táblákat ismertető dokumentumot . Ha a lekérdezési eredményeket egy másik mappába szeretné menteni ugyanabban az adatforrásban, módosítsa a LOCATION argumentumot.

Ha az eredményeket egy másik tárfiókba szeretné menteni, hozzon létre és használjon másik adatforrást DATA_SOURCE argumentumhoz.

Megjegyzés

Az alábbi minták nyilvános Azure Open Data Storage-fiókot használnak. Csak olvasható. A lekérdezések végrehajtásához meg kell adnia azt az adatforrást, amelyhez írási engedéllyel rendelkezik.

-- 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

Az alábbi minta egy külső táblát használ a CETAS forrásaként. A korábban létrehozott hitelesítő adatokra, adatforrásra, külső fájlformátumra és külső táblára támaszkodik. Tekintse meg a külső táblákat ismertető dokumentumot .

-- 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

Általános példa

Ebben a példában egy sablonkódot láthatunk a CETAS forrásként való megírásához és a felügyelt identitás hitelesítésként való használatához.

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

Támogatott adattípusok

A CETAS az alábbi SQL-adattípusokkal rendelkező eredményhalmazok tárolására használható:

  • binary
  • varbinary
  • Char
  • varchar
  • nchar
  • nvarchar
  • smalldate
  • dátum
  • dátum/idő
  • datetime2
  • datetimeoffset
  • time
  • tizedes tört
  • numerikus
  • float
  • valós szám
  • bigint
  • tinyint
  • smallint
  • int
  • bigint
  • bit
  • Pénzt
  • smallmoney
  • uniqueidentifier

Megjegyzés

Az 1 MB-nál nagyobb LOB-k nem használhatók a CETAS-sel.

Következő lépések

Próbálja meg lekérdezni az Apache Sparkot Azure Synapse külső táblákhoz.