Hızlı Başlangıç: Sunucusuz SQL havuzunu kullanma

Synapse sunucusuz SQL havuzu, Azure Depolama'a 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çimler OPENROWSET'te listelenir.

Bu hızlı başlangıçta sorgulama gösterilmektedir: CSV, Apache Parquet ve JSON dosyaları.

Ö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.
  • Azure Data Studio, SQL sorgularını ve not defterini İsteğe bağlı veritabanınızda çalıştırmanızı sağlayan bir istemci aracıdır.
  • SQL Server Management Studio, SQL sorgularını İsteğe bağlı veritabanınızda çalıştırmanızı sağlayan bir istemci aracıdır.

Bu hızlı başlangıç için parametreler:

Parametre Tanım
sunucusuz SQL havuzu hizmet uç noktası adresi Sunucu adı olarak kullanılır
sunucusuz SQL havuzu hizmet uç noktası bölgesi Örneklerde hangi depolamayı kullanacağımızı 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 veritabanı oluşturma (görünümleri kullanmak istemeniz durumunda)
  • Sunucusuz SQL havuzu tarafından depolamadaki dosyalara erişmek için kullanılacak kimlik bilgileri oluşturma

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 kullanacaksınız.

Dekont

Veritabanları yalnızca görüntüleme meta verileri için kullanılır, gerçek veriler için kullanılmaz. Daha sonra Hızlı Başlangıç'ta kullanmak için kullandığınız veritabanı adını yazın.

Aşağıdaki sorguyu kullanarak istediğiniz bir ada değiştirin 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 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:

-- 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
);

CSV dosyalarını sorgulama

Aşağıdaki görüntüde sorgulanacak dosyanın önizlemesi yer alır:

First 10 rows of the CSV file without header, Windows style new line.

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 dosyası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.

Dekont

Parquet dosyalarını okurken yan tümcesinde 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

Parquet dosyalarını sorgulama hakkında daha fazla bilgi edinin.

JSON dosyalarını sorgulama

JSON örnek dosyası

Dosyalar json kapsayıcısında, klasör kitaplarında depolanır ve aşağıdaki yapıya sahip tek 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"
}

JSON dosyalarını sorgulama

Aşağıdaki sorguda, JSON_VALUE kullanarak Şifrelemede Olasılıksal ve İstatistiksel Yöntemler, Seçili Makalelere Göre Giriş başlıklı bir kitaptan skaler değerlerin (başlık, yayımcı) nasıl alındığı 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 by Selected Topics'

Önemli

JSON dosyasının tamamını tek satır/sütun olarak okuyoruz. Bu nedenle, FIELDTERMINATOR, FIELDQUOTE ve ROWTERMINATOR 0x0b olarak ayarlanır çünkü dosyada bulmayı beklemeyiz.

Sonraki adımlar

Artık aşağıdaki makalelere devam etmeye hazırsınız: