Menyimpan hasil kueri ke penyimpanan menggunakan kumpulan SQL tanpa server di Azure Synapse Analytics

Dalam artikel ini, Anda akan mempelajari cara menyimpan hasil kueri ke penyimpanan menggunakan kumpulan SQL tanpa server.

Prasyarat

Langkah pertama Anda adalah membuat database tempat Anda akan menjalankan kueri. Kemudian menginisialisasi objek dengan mengeksekusi skrip penyiapan pada database itu. Skrip penyiapan ini akan membuat sumber data, informasi masuk lingkup database, dan format file eksternal yang digunakan untuk membaca data dalam sampel ini.

Ikuti instruksi dalam artikel ini untuk membuat sumber data, informasi masuk lingkup database, dan format file eksternal yang digunakan untuk menulis data ke dalam penyimpanan output.

Membuat tabel eksternal sebagai pilih

Anda dapat menggunakan pernyataan CREATE EXTERNAL TABLE AS SELECT (CETAS) untuk menyimpan hasil kueri ke penyimpanan.

Catatan

Ubah baris pertama dalam kueri, yaitu, [mydbname], untuk menggunakan database yang Anda buat.

USE [mydbname];
GO

CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D';
GO

CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
    LOCATION = 'https://<storage account name>.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite]
);
GO

CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO

CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH (
        LOCATION = 'populationParquet/',
        DATA_SOURCE = [MyDataSource],
        FILE_FORMAT = [ParquetFF]
) AS
SELECT
    *
FROM
    OPENROWSET(
        BULK 'csv/population-unix/population.csv',
        DATA_SOURCE = 'sqlondemanddemo',
        FORMAT = 'CSV', PARSER_VERSION = '2.0'
    ) WITH (
        CountryCode varchar(4),
        CountryName varchar(64),
        Year int,
        PopulationCount int
    ) AS r;

Catatan

Anda harus mengubah skrip ini dan mengubah lokasi target untuk mengeksekusinya kembali. Tabel eksternal tidak bisa dibuat pada lokasi tempat Anda sudah memiliki beberapa data.

Menggunakan tabel eksternal

Anda dapat menggunakan tabel eksternal yang dibuat melalui CETAS seperti tabel eksternal biasa.

Catatan

Ubah baris pertama dalam kueri, yaitu, [mydbname], untuk menggunakan database yang Anda buat.

USE [mydbname];
GO

SELECT
    CountryName, PopulationCount
FROM PopulationCETAS
WHERE
    [Year] = 2019
ORDER BY
    [PopulationCount] DESC;

Keterangan

Setelah Anda menyimpan hasil, data dalam tabel eksternal tidak dapat diubah. Anda tidak dapat mengulangi skrip ini karena CETAS tidak akan menimpa data awal yang dibuat dalam eksekusi sebelumnya. Pilih item umpan balik berikut jika beberapa di antaranya diperlukan dalam skenario Anda, atau usulkan yang baru di situs umpan balik Azure:

Satu-satunya jenis output yang didukung adalah Parquet dan CSV. Anda dapat memilih jenis lain di situs umpan balik Azure.

Langkah berikutnya

Untuk informasi selengkapnya tentang cara mengkueri jenis file yang berbeda, lihat Kueri file CSV tunggal, Kueri file Parquet, dan artikel Kueri file JSON.