Mulai Cepat: Menggunakan kumpulan SQL tanpa server
Kumpullan synapse serverless SQL adalah layanan kueri nirserver yang memungkinkan Anda menjalankan kueri SQL pada file yang ditempatkan di Azure Storage. Dalam panduan mulai cepat ini, Anda akan mempelajari cara membuat kueri untuk berbagai jenis file dengan menggunakan kumpulan SQL nirserver. Format yang didukung tercantum dalam OPENROWSET.
Panduan mulai cepat ini menampilkan kueri: file CSV, Apache Parket, dan JSON.
Prasyarat
Pilih klien SQL untuk menerbitkan kueri:
- Azure Synapse Studio adalah alat web yang dapat Anda gunakan untuk menelusuri file di penyimpanan dan membuat kueri SQL.
- Azure Data Studio adalah alat klien yang memungkinkan Anda menjalankan kueri dan buku catatan SQL di database Sesuai permintaan Anda.
- SQL Server Management Studio adalah alat klien yang memungkinkan Anda menjalankan kueri SQL di database Sesuai Permintaan Anda.
Parameter untuk panduan mulai cepat ini:
Parameter | Deskripsi |
---|---|
alamat titik akhir layanan kumpulan SQL nirserver | Digunakan sebagai nama server |
wilayah titik akhir layanan kumpulan SQL nirserver | Digunakan untuk menentukan penyimpanan apa yang akan kita gunakan dalam sampel |
Nama pengguna dan kata sandi untuk akses titik akhir | Digunakan untuk mengakses titik akhir |
Database yang digunakan untuk membuat tampilan | Database yang digunakan sebagai titik awal dalam sampel |
Pengaturan pertama kali
Sebelum menggunakan sampel:
- Buat database untuk tampilan Anda (jika Anda ingin menggunakan tampilan)
- Membuat info masuk yang akan digunakan oleh kumpulan SQL nirserver untuk mengakses file dalam penyimpanan
Membuat database
Buat database Anda sendiri untuk keperluan demo. Anda akan menggunakan database ini untuk membuat tampilan Anda dan untuk kueri sampel dalam artikel ini.
Catatan
Database hanya digunakan untuk melihat metadata, bukan data aktual. Tuliskan nama database yang akan digunakan nanti di Panduan Mulai Cepat.
Gunakan kueri berikut, mengubah mydbname
menjadi nama pilihan Anda:
CREATE DATABASE mydbname
Buatlah sumber data
Untuk menjalankan kueri menggunakan kumpulan SQL tanpa server, buat sumber data yang dapat digunakan kumpulan SQL tanpa server untuk mengakses file dalam penyimpanan. Jalankan cuplikan kode berikut untuk membuat sumber data yang digunakan dalam sampel di bagian ini:
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <enter very strong password here>
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28&ss=bf&srt=sco&sp=rl&st=2019-10-14T12%3A10%3A25Z&se=2061-12-31T12%3A10%3A00Z&sig=KlSU2ullCscyTS0An0nozEpo4tO5JAgGBvw%2FJX2lguw%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Kueri file CSV
Gambar berikut adalah pratinjau dari file yang akan diproses dengan kueri:
Kueri berikut menunjukkan cara membaca file CSV yang tidak berisi baris header, dengan baris baru bergaya Windows, dan kolom yang dipisahkan koma:
SELECT TOP 10 *
FROM OPENROWSET
(
BULK 'csv/population/*.csv',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
)
WITH
(
country_code VARCHAR (5)
, country_name VARCHAR (100)
, year smallint
, population bigint
) AS r
WHERE
country_name = 'Luxembourg' AND year = 2017
Anda dapat menyebuatkan skema pada waktu kompilasi kueri. Untuk contoh lainnya, lihat cara mengajukan kueri untuk file CSV.
Kueri file Parquet
Contoh berikut menunjukkan kemampuan inferensi skema otomatis dalam mengajukan kueri untuk file Parket. Ini mengembalikan jumlah baris pada bulan September 2017 tanpa menentukan skema.
Catatan
Anda tidak perlu menentukan kolom dalam OPENROWSET WITH
klausa saat membaca file Parquet. Dalam hal ini, kumpulan SQL nirserver menggunakan metadata dalam file Parket dan mengikat kolom berdasarkan nama.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Temukan informasi lebih lanjut tentang mengajukan kueri untuk file parket.
Mengajukan kueri untuk file JSON
File sampel JSON
File disimpan dalam kontainer json, folder buku, dan berisi entri buku tunggal dengan struktur berikut:
{
"_id":"ahokw88",
"type":"Book",
"title":"The AWK Programming Language",
"year":"1988",
"publisher":"Addison-Wesley",
"authors":[
"Alfred V. Aho",
"Brian W. Kernighan",
"Peter J. Weinberger"
],
"source":"DBLP"
}
Mengajukan kueri untuk file JSON
Kueri berikut menunjukkan cara menggunakan JSON_VALUE untuk mengambil nilai skalar (judul, penerbit) dari buku dengan judul Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected articles:
SELECT
JSON_VALUE(jsonContent, '$.title') AS title
, JSON_VALUE(jsonContent, '$.publisher') as publisher
, jsonContent
FROM OPENROWSET
(
BULK 'json/books/*.json',
DATA_SOURCE = 'SqlOnDemandDemo'
, FORMAT='CSV'
, FIELDTERMINATOR ='0x0b'
, FIELDQUOTE = '0x0b'
, ROWTERMINATOR = '0x0b'
)
WITH
( jsonContent varchar(8000) ) AS [r]
WHERE
JSON_VALUE(jsonContent, '$.title') = 'Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected Topics'
Penting
Kita membaca seluruh file JSON sebagai baris/kolom tunggal. Jadi, FIELDTERMINATOR, FIELDQUOTE, dan ROWTERMINATOR disetel ke 0x0b karena kita tidak berharap bisa menemukannya di dalam file.
Langkah berikutnya
Anda sekarang siap untuk melanjutkan dengan artikel berikut:
- Mengajukan kueri untuk file CSV tunggal
- Mengajukan kueri untuk folder dan beberapa file CSV
- Mengajukan kueri untuk file tertentu
- Kueri file Parquet
- Kueri untuk jenis Parquet berlapis
- Mengajukan kueri untuk file JSON
- Membuat dan menggunakan tampilan
- Membuat dan menggunakan tabel eksternal
- Pertahankan hasil kueri ke penyimpanan Azure
- Mengajukan kueri untuk file CSV tunggal