Aracılığıyla paylaş


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:

Üst bilgi, Windows stili yeni satır olmadan CSV dosyasının ilk 10 satırını gösteren ekran görüntüsü.

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, FIELDQUOTEdosyasında bulmayı beklemediğimiz için , ve ROWTERMINATOR olarak ayarlanır 0x0b .