Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Buat tabel eksternal dengan select
Anda dapat menggunakan pernyataan CREATE EXTERNAL TABLE AS SELECT (CETAS) untuk menyimpan hasil kueri ke penyimpanan.
Catatan
Ubah nilai-nilai ini dalam kueri untuk mencerminkan lingkungan Anda:
- mydbname - ubah menjadi nama database yang Anda buat
- storage-account-sas - tanda tangan akses bersama untuk akun penyimpanan tempat Anda ingin menulis hasil
- your-storage-account-name - nama akun penyimpanan tempat Anda ingin menulis hasil (Pastikan Anda memiliki kontainer yang disebut 'csv' atau Anda juga mengubah nama kontainer di sini)
USE [mydbname];
GO
CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'storage-account-sas';
GO
CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
LOCATION = 'https://your-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 dapat dibuat di 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], sehingga Anda 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 dimodifikasi. Anda tidak dapat mengulangi skrip ini karena CETAS tidak akan menimpa data dasar yang dibuat dalam eksekusi sebelumnya.
Satu-satunya jenis output yang didukung saat ini adalah Parquet dan CSV.
Konten terkait
Untuk informasi selengkapnya tentang cara mengkueri jenis file yang berbeda, lihat Kueri file CSV tunggal, Kueri file Parquet, dan artikel Kueri file JSON.