Mulai Cepat: Menggunakan kumpulan SQL tanpa server
Kumpulan SQL tanpa server Synapse adalah layanan kueri tanpa server yang memungkinkan Anda menjalankan kueri SQL pada file yang ditempatkan di Azure Storage. Dalam mulai cepat ini, Anda mempelajari cara mengkueri berbagai jenis file menggunakan kumpulan SQL tanpa server. Untuk daftar format yang didukung, lihat OPENROWSET.
Mulai cepat ini memperlihatkan cara mengkueri file CSV, Apache Parquet, 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.
- Visual Studio Code dengan ekstensi mssql adalah pengembang ringan lintas platform dan alat data 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 pada database sesuai permintaan Anda.
Mulai cepat ini menggunakan parameter berikut:
Parameter | Deskripsi |
---|---|
Alamat titik akhir layanan pool SQL tanpa server | Digunakan sebagai nama server |
Wilayah titik akhir layanan kumpulan SQL tanpa server | Digunakan untuk menentukan penyimpanan apa yang akan digunakan 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).
- Buat kredensial yang akan digunakan oleh kumpulan SQL tanpa server untuk mengakses file di penyimpanan.
Membuat database
Buat database Anda sendiri untuk keperluan demo. Anda bisa 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 untuk digunakan nanti di mulai cepat.
Gunakan perintah T-SQL 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 di penyimpanan. Jalankan cuplikan kode berikut untuk membuat sumber data yang digunakan dalam sampel di bagian ini. Ganti <strong-password-here>
dengan kata sandi yang kuat pilihan Anda.
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong-password-here>'
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2022-11-02&ss=b&srt=co&sp=rl&se=2042-11-26T17:40:55Z&st=2024-11-24T09:40:55Z&spr=https&sig=DKZDuSeZhuCWP9IytWLQwu9shcI5pTJ%2Fw5Crw6fD%2BC8%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Kueri file CSV
Gambar berikut menunjukkan pratinjau file yang akan dikueri:
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 selengkapnya, lihat cara Mengkueri 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 selengkapnya, lihat Kueri file Parquet menggunakan kumpulan SQL tanpa server.
Mengajukan kueri untuk file JSON
File sampel JSON
File disimpan dalam kontainer json, menggunakan buku folder, 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"
}
Kueri Sampel
Kueri berikut menunjukkan cara menggunakan JSON_VALUE untuk mengambil nilai skalar (judul, penerbit) dari buku dengan judul Metode Probabilistik dan Statistik dalam Kriptologi, Pengantar:
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'
Penting
Kami membaca seluruh file JSON sebagai satu baris atau kolom. Jadi FIELDTERMINATOR
, FIELDQUOTE
, dan ROWTERMINATOR
diatur ke 0x0b
karena kita tidak berharap untuk menemukannya dalam file.
Konten terkait
- Kueri file CSV
- Folder kueri dan beberapa file
- Mengajukan kueri untuk file tertentu
- Mengkueri file Parquet menggunakan kumpulan SQL tanpa server
- Kueri tipe berlapis dalam file Parquet dan JSON
- Mengkueri file JSON menggunakan kumpulan SQL tanpa server
- Membuat dan menggunakan tampilan menggunakan kumpulan SQL tanpa server
- Membuat dan menggunakan tabel eksternal asli
- Menyimpan hasil kueri ke penyimpanan