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:
- Mengaktifkan penyisipan data baru ke dalam tabel eksternal
- Mengaktifkan penghapusan data dari tabel eksternal
- Tentukan partisi dalam CETAS
- Tentukan ukuran dan jumlah file
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.