CETAS dengan Synapse SQL

Tip

Microsoft Fabric Data Warehouse adalah gudang relasional skala perusahaan pada fondasi data lake, dengan arsitektur siap masa depan, AI bawaan, dan fitur baru. Jika Anda baru menggunakan pergudangan data, mulailah dengan Fabric Data Warehouse. Beban kerja kumpulan SQL terdedikasi yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik waktu nyata, dan pelaporan.

Anda dapat menggunakan CREATE EXTERNAL TABLE AS SELECT (CETAS) di kumpulan SQL khusus atau kumpulan SQL tanpa server untuk menyelesaikan tugas-tugas berikut:

  • Membuat tabel eksternal

  • Ekspor, secara paralel, hasil pernyataan Transact-SQL SELECT ke:

    • Hadoop
    • Azure Storage Blob
    • Azure Data Lake Storage Gen2

CETAS di kumpulan SQL khusus

Untuk kumpulan SQL khusus, penggunaan dan sintaks CETAS, periksa artikel CREATE EXTERNAL TABLE AS SELECT . Selain itu, untuk panduan tentang CTAS menggunakan kumpulan SQL khusus, lihat artikel CREATE TABLE AS SELECT .

CETAS di kumpulan SQL tanpa server

Saat menggunakan kumpulan SQL tanpa server, CETAS digunakan untuk membuat tabel eksternal dan mengekspor hasil kueri untuk Azure Storage Blob atau Azure Data Lake Storage Gen2.

Untuk sintaks lengkapnya, lihat BUAT TABEL EKSTERNAL SEBAGAI SELECT (Transact-SQL).

Contoh

Contoh-contoh ini menggunakan CETAS untuk menyimpan total populasi yang dikumpulkan menurut tahun dan negara bagian ke folder aggregated_data yang terletak di datasource population_ds.

Sampel ini bergantung pada kredensial, sumber data, dan format file eksternal yang dibuat sebelumnya. Lihat dokumen tabel eksternal . Untuk menyimpan hasil kueri ke folder lain di sumber data yang sama, ubah argumen LOCATION.

Untuk menyimpan hasil ke akun penyimpanan yang berbeda, buat dan gunakan sumber data yang berbeda untuk argumen DATA_SOURCE.

Catatan

Sampel yang mengikuti menggunakan akun penyimpanan Open Data Azure publik. Ini baca-saja. Untuk menjalankan kueri ini, Anda perlu menyediakan sumber data yang Anda miliki izin untuk menulis.

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

Sampel berikut menggunakan tabel eksternal sebagai sumber untuk CETAS. Ini bergantung pada kredensial, sumber data, format file eksternal, dan tabel eksternal yang dibuat sebelumnya. Lihat dokumen tabel eksternal .

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

Contoh umum

Dalam contoh ini kita dapat melihat contoh kode templat untuk menulis CETAS dengan Tampilan sebagai sumber dan menggunakan Identitas Terkelola sebagai autentikasi.

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

Jenis data yang didukung

CETAS dapat digunakan untuk menyimpan kumpulan hasil dengan jenis data SQL berikut:

  • biner
  • varbinary
  • char
  • varchar
  • nchar
  • nvarchar
  • smalldate
  • tanggal
  • tanggalwaktu
  • datetime2
  • datetimeoffset
  • waktu
  • desimal
  • numerik
  • float
  • nyata
  • bigint
  • tinyint
  • smallint
  • int
  • bigint
  • bit
  • uang
  • smallmoney

Catatan

LOB yang lebih besar dari 1MB tidak dapat digunakan dengan CETAS.

Langkah selanjutnya