hızlı başlangıç: sunucusuz SQL havuzunu kullanma

Synapse sunucusuz SQL havuzu, Azure Depolama 'ye yerleştirilmiş dosyalarda SQL sorguları çalıştırmanıza olanak tanıyan 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'de listelenmiştir.

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

Önkoşullar

Sorguların gönderileceği SQL istemcisini seçin:

  • Azure Synapse Studio , depolamadaki dosyalara gözatıp SQL sorguları oluşturmayı 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 Açıklama
sunucusuz SQL havuzu hizmeti uç noktası adresi Sunucu adı olarak kullanılır
sunucusuz SQL havuzu hizmeti uç nokta 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ümler 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 istediğiniz durumlarda)
  • depolama alanındaki dosyalara erişmek için sunucusuz SQL havuzu tarafından kullanılacak kimlik bilgilerini oluşturun

Veritabanı oluşturma

Tanıtım amacıyla kendi veritabanınızı oluşturun. Bu veritabanını, bu makaledeki görünümlerinizi ve örnek sorguları oluşturmak için kullanacaksınız.

Not

Veritabanları, gerçek veriler için değil yalnızca görünüm meta verileri için kullanılır. Daha sonra hızlı başlangıçta kullanmak üzere kullandığınız veritabanı adını yazın.

mydbnameSeçtiğiniz bir ada geçiş yapmak için aşağıdaki sorguyu kullanın:

CREATE DATABASE mydbname

Veri kaynağı oluştur

sunucusuz SQL havuzunu kullanarak sorguları çalıştırmak için, sunucusuz SQL havuzunun depolama alanındaki 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ütün:

-- 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 verilmiştir:

üst bilgi içermeyen CSV dosyasının ilk 10 satırı, Windows stili yeni satır.

aşağıdaki sorgu, üst bilgi satırı içermeyen bir CSV dosyasının nasıl okunacağını gösterir, Windows stili yeni satır ve virgülle ayrılmış sütunlar:

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

Şemayı, sorgu derleme zamanında belirtebilirsiniz. Daha fazla örnek için bkz. CSV dosyasını sorgulama.

Parquet dosyalarını sorgulama

Aşağıdaki örnek, Parquet dosyalarını sorgulamak için otomatik Şema çıkarımı özelliklerini gösterir. Şemayı belirtmeden, Eylül 2017 ' deki satır sayısını döndürür.

Not

OPENROWSET WITHParquet dosyalarını okurken yan tümce içinde sütunlar belirtmeniz gerekmez. bu durumda, sunucusuz SQL havuzu, verileri parquet dosyasında 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ı sorgulamahakkında daha fazla bilgi edinin.

JSON dosyalarını sorgulama

JSON örnek dosyası

Dosyalar JSON kapsayıcısına, klasör kitaplarına depolanır ve aşağıdaki yapıyla tek defter 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 sorgu, Cryptology 'de dayalı ve Istatistiksel Yöntemler başlığına sahip bir kitapta skalar değerler (başlık, yayımcı) almak için JSON_VALUE kullanmayı gösterir, seçilen makalelere giriş:

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

Tüm JSON dosyasını tek satır/sütun olarak okuyoruz. Bu nedenle, dosya içinde bulmayı beklemediğimiz için FIELDSONLANDıRıCı, FIELDQUOTE ve ROWSONLANDıRıCı, 0x0B olarak ayarlanmıştır.

Sonraki adımlar

Şimdi aşağıdaki makalelerle devam etmeye hazırsınız: