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.
Kumpulan SQL tanpa server Synapse adalah layanan kueri tanpa server yang memungkinkan Anda menjalankan kueri SQL pada file yang ditempatkan di Azure Storage. Dalam panduan cepat ini, Anda mempelajari cara mengkueri berbagai jenis file menggunakan kolam SQL tanpa server. Untuk daftar format yang didukung, lihat OPENROWSET.
Panduan cepat ini memperlihatkan cara melakukan kueri pada 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 pandangan Anda (jika Anda ingin menggunakan pandangan).
- 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 panduan memulai 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 berkas 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 di bawah ini menunjukkan kemampuan inferensi skema otomatis dalam melakukan kueri pada file Parquet. Ini mengembalikan jumlah baris pada bulan September 2017 tanpa menentukan skema.
Catatan
Anda tidak perlu menentukan kolom dalam klausa OPENROWSET WITH ketika 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 SQL pool tanpa server.
Melakukan kueri pada file JSON
File sampel JSON
File disimpan dalam kontainer json, menggunakan folder buku, dan berisi satu entri buku 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
- Meminta berkas CSV
- Folder kueri dan beberapa file
- Kueri 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