Hızlı Başlangıç: Sunucusuz SQL havuzunu kullanma
Synapse sunucusuz SQL havuzu, Azure Depolama'ya yerleştirilen dosyalarda SQL sorguları çalıştırmanızı sağlayan sunucusuz bir sorgu hizmetidir. Bu hızlı başlangıçta sunucusuz SQL havuzunu kullanarak çeşitli dosya türlerini sorgulamayı öğreneceksiniz. Desteklenen biçimlerin listesi için bkz . OPENROWSET.
Bu hızlı başlangıçta CSV, Apache Parquet ve JSON dosyalarını sorgulama işlemi gösterilmektedir.
Önkoşullar
Sorguların gönderileceği SQL istemcisini seçin:
- Azure Synapse Studio , depolamadaki dosyalara göz atmak ve SQL sorguları oluşturmak için kullanabileceğiniz bir web aracıdır.
- mssql uzantısına sahip Visual Studio Code, isteğe bağlı veritabanınızda SQL sorguları ve not defterleri çalıştırmanızı sağlayan platformlar arası basit bir geliştirici ve veri aracıdır.
- SQL Server Management Studio , isteğe bağlı veritabanınızda SQL sorguları çalıştırmanıza olanak tanıyan bir istemci aracıdır.
Bu hızlı başlangıçta aşağıdaki parametreler kullanılır:
Parametre | Açıklama |
---|---|
Sunucusuz SQL havuzu hizmet uç noktası adresi | Sunucu adı olarak kullanılır |
Sunucusuz SQL havuzu hizmet uç noktası bölgesi | Örneklerde hangi depolamanın kullanılacağını belirlemek için kullanılır |
Uç nokta erişimi için kullanıcı adı ve parola | Uç noktaya erişmek için kullanılır |
Görünüm oluşturmak için kullanılan veritabanı | Örneklerde başlangıç noktası olarak kullanılan veritabanı |
İlk kez kurulum
Örnekleri kullanmadan önce:
- Görünümleriniz için bir veritabanı oluşturun (görünümleri kullanmak istemeniz durumunda).
- Sunucusuz SQL havuzu tarafından depolamadaki dosyalara erişmek için kullanılacak kimlik bilgileri oluşturun.
Veritabanı oluşturma
Tanıtım amacıyla kendi veritabanınızı oluşturun. Bu veritabanını, görünümlerinizi oluşturmak ve bu makaledeki örnek sorgular için kullanabilirsiniz.
Not
Veritabanları yalnızca görüntüleme meta verileri için kullanılır, gerçek veriler için kullanılmaz. Hızlı başlangıcın ilerleyen bölümlerinde kullanmak üzere veritabanı adını yazın.
Aşağıdaki T-SQL komutunu kullanarak istediğiniz bir ada geçin <mydbname>
:
CREATE DATABASE <mydbname>
Veri kaynağı oluşturma
Sunucusuz SQL havuzunu kullanarak sorgu çalıştırmak için sunucusuz SQL havuzunun depolamadaki dosyalara erişmek için kullanabileceği bir veri kaynağı oluşturun. Bu bölümdeki örneklerde kullanılan veri kaynağını oluşturmak için aşağıdaki kod parçacığını yürütebilirsiniz. değerini, seçtiğiniz güçlü bir parolayla değiştirin <strong-password-here>
.
-- 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
);
CSV dosyalarını sorgulama
Aşağıdaki görüntüde sorgulanacak dosyanın önizlemesi gösterilmektedir:
Aşağıdaki sorgu, Üst bilgi satırı içermeyen, Windows stili yeni satır ve virgülle ayrılmış sütunlar içeren bir CSV dosyasının nasıl okunduğunu gösterir:
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
Sorgu derleme zamanında şema belirtebilirsiniz. Daha fazla örnek için bkz. CSV dosyalarını sorgulama.
Parquet dosyalarını sorgulama
Aşağıdaki örnekte Parquet dosyalarını sorgulamaya yönelik otomatik şema çıkarımı özellikleri gösterilmektedir. Eylül 2017'de şema belirtmeden satır sayısını döndürür.
Not
Parquet dosyalarını okurken yan tümcesindeki OPENROWSET WITH
sütunları belirtmeniz gerekmez. Bu durumda sunucusuz SQL havuzu Parquet dosyasındaki meta verileri kullanır ve sütunları ada göre bağlar.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Daha fazla bilgi için bkz . Sunucusuz SQL havuzunu kullanarak Parquet dosyalarını sorgulama.
JSON dosyalarını sorgulama
JSON örnek dosyası
Dosyalar, klasör kitapları kullanılarak bir json kapsayıcısında depolanır ve aşağıdaki yapıya sahip tek bir kitap girişi içerir:
{
"_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"
}
Örnek sorgu
Aşağıdaki sorguda, JSON_VALUE kullanarak Şifrelemede Olasılıksal ve İstatistiksel Yöntemler, Giriş başlıklı bir kitaptan skaler değerleri (başlık, yayımcı) alma işlemleri gösterilmektedir:
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'
Önemli
JSON dosyasının tamamını tek bir satır veya sütun olarak okuyoruz. Bu nedenle FIELDTERMINATOR
, FIELDQUOTE
dosyasında bulmayı beklemediğimiz için , ve ROWTERMINATOR
olarak ayarlanır 0x0b
.
İlgili içerik
- CSV dosyalarını sorgulama
- Klasörleri ve birden çok dosyayı sorgulama
- Belirli dosyaları sorgulama
- Sunucusuz SQL havuzunu kullanarak Parquet dosyalarını sorgulama
- Parquet ve JSON dosyalarında iç içe türleri sorgulama
- Sunucusuz SQL havuzunu kullanarak JSON dosyalarını sorgulama
- Sunucusuz SQL havuzunu kullanarak görünüm oluşturma ve kullanma
- Yerel dış tablolar oluşturma ve kullanma
- Sorgu sonuçlarını depolamaya depolama