Synapse SQL kaynak tüketimi

Bu makalede Synapse SQL'in kaynak tüketimi modelleri açıklanmaktadır.

Sunucusuz SQL havuzu

Sunucusuz SQL havuzu, doğru boyutu seçmenizi gerektirmeyen sorgu başına ödeme hizmetidir. Sistem gereksinimleriniz temelinde otomatik olarak ayarlandığından sizi altyapınızı yönetmekten ve çözümünüz için doğru boyutu seçmekten kurtarır.

Ayrılmış SQL havuzu - Data Warehouse Birimleri (DWU) ve işlem Data Warehouse Birimleri (cDWU)

Fiyat ve performansı iyileştirmek için ideal veri ambarı birimi (DWU) sayısını seçme ve birim sayısını değiştirme hakkında öneriler.

Data Warehouse Birimleri

Synapse SQL havuzu, sağlanan analiz kaynaklarının bir koleksiyonunu temsil eder. Analiz kaynakları CPU, bellek ve GÇ'nin birleşimi olarak tanımlanır. Bu üç kaynak, Data Warehouse Birimleri (DWU) olarak adlandırılan işlem ölçeği birimleri halinde paketlenmiştir. DWU, hesaplama kaynakları ve performansının soyut, normalleştirilmiş bir ölçümünü temsil eder. Hizmet düzeyinizde yapılan bir değişiklik, sistem tarafından kullanılabilen DWU sayısını değiştirir. Buna karşılık, bu değişiklik sisteminizin performansını ve maliyetini ayarlar.

Daha yüksek performans için veri ambarı birimi sayısını artırabilirsiniz. Daha az performans için veri ambarı birimlerini azaltın. Depolama ve hesaplama maliyetleri ayrıca faturalandırılır, yani veri ambarı birimlerini değiştirmek depolama maliyetlerini etkilemez.

Veri ambarı birimlerinin performansı şu veri ambarı iş yükü ölçümlerini temel alır:

  • Standart veri ambarı sorgusunun çok sayıda satırı ne kadar hızlı tarayabileceği ve ardından karmaşık bir toplama gerçekleştirebileceği. Bu işlem G/Ç ve YOĞUN CPU kullanır.
  • Veri ambarı Azure Depolama Bloblarından veya Azure Data Lake'ten ne kadar hızlı veri alabilir? Bu işlem ağ ve CPU kullanımı yoğundur.
  • T-SQL komutunun CREATE TABLE AS SELECT bir tabloyu ne kadar hızlı kopyalayabileceğiniz. Bu işlem, verileri depolama alanından okumayı, aletin düğümleri arasında dağıtmayı ve yeniden depolamaya yazmayı içerir. Bu işlem CPU, GÇ ve yoğun ağ kullanımına yöneliktir.

Artan DWU'lar:

  • Taramalar, toplamalar ve CTAS deyimleri için sistemin performansını doğrusal olarak değiştirir
  • PolyBase yük işlemleri için okuyucu ve yazıcı sayısını artırır
  • Eşzamanlı sorgu ve eşzamanlılık yuvası sayısı üst sınırını artırır.

Hizmet Düzeyi Hedefi

Hizmet Düzeyi Hedefi (SLO), veri ambarınızın maliyet ve performans düzeyini belirleyen ölçeklenebilirlik ayarıdır. 2. Nesil için hizmet düzeyleri işlem veri ambarı birimlerinde (cDWU) ölçülür, örneğin DW2000c. 1. Nesil hizmet düzeyleri DWU cinsinden ölçülür, örneğin DW2000.

Hizmet Düzeyi Hedefi (SLO), veri ambarınızın maliyet ve performans düzeyini belirleyen ölçeklenebilirlik ayarıdır. 2. Nesil ayrılmış SQL havuzunun hizmet düzeyleri, veri ambarı birimlerinde (DWU), örneğin DW2000c cinsinden ölçülür.

Not

Azure Synapse Analytics 2. Nesil kısa süre önce 100 cDWU'ya kadar düşük işlem katmanlarını desteklemek için ek ölçeklendirme özellikleri ekledi. Şu anda 1. Nesil'de bulunan ve daha düşük işlem katmanları gerektiren mevcut veri ambarları artık ek ücret ödemeden şu anda kullanılabilir olan bölgelerde 2. Nesil'e yükseltilebilir. Bölgeniz henüz desteklenmiyorsa desteklenen bir bölgeye yükseltme yapabilirsiniz. Daha fazla bilgi için bkz. 2. Nesil'e yükseltme.

T-SQL'de SERVICE_OBJECTIVE ayarı, ayrılmış SQL havuzunuzun hizmet düzeyini ve performans katmanını belirler.

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

Performans Katmanları ve Data Warehouse Birimleri

Her performans katmanı, veri ambarı birimleri için biraz farklı bir ölçü birimi kullanır. Ölçek birimi doğrudan faturalamaya çevrildikçe bu fark faturaya yansıtılır.

  • 1. Nesil veri ambarları Data Warehouse Birimleri (DWU) cinsinden ölçülür.
  • 2. Nesil veri ambarları, işlem Data Warehouse Birimleri (cDWU) cinsinden ölçülür.

Hem DWU'lar hem de cDWU'lar, işlem ölçeğini artırmayı veya azaltmayı ve veri ambarını kullanmanız gerekmediğinde işlem duraklatmayı destekler. Bu işlemlerin tümü isteğe bağlıdır. 2. Nesil, performansı geliştirmek için işlem düğümlerinde yerel disk tabanlı bir önbellek kullanır. Sistemi ölçeklendirdiğinizde veya duraklattığınızda önbellek geçersiz kılınır ve bu nedenle en iyi performans elde edilmeden önce önbellek ısınma süresi gerekir.

Veri ambarı birimlerini artırdıkça, bilgi işlem kaynaklarını doğrusal olarak artırıyorsunuz. 2. Nesil, en iyi sorgu performansını ve en yüksek ölçeği sağlar. 2. Nesil sistemleri de önbelleği en iyi şekilde kullanır.

Kapasite sınırları

Her SQL sunucusunun (örneğin, myserver.database.windows.net) belirli sayıda veri ambarı birimine izin veren bir Veritabanı İşlem Birimi (DTU) kotası vardır. Daha fazla bilgi için bkz . iş yükü yönetimi kapasite sınırları.

İhtiyacınız olan veri ambarı birimi sayısını değerlendirme

İdeal veri ambarı birimi sayısı iş yükünüz ve sisteme yüklediğiniz veri miktarına bağlıdır.

İş yükünüz için en iyi DWU'ları bulma adımları:

  1. Başlangıç olarak daha küçük bir DWU seçin.
  2. Sisteme veri yüklerini test ettikçe uygulama performansınızı izleyin ve gözlemlediğiniz performansla karşılaştırıldığında seçilen DWU sayısını gözlemleyin.
  3. En yoğun etkinliğin periyodik dönemleri için ek gereksinimleri belirleyin. Etkinlikte önemli zirveler ve oluklar gösteren iş yüklerinin sık sık ölçeklendirilmesi gerekebilir.

SQL havuzu, çok büyük miktarlarda işlem ve sorgu boyutuna sahip veri sağlayabilen bir genişleme sistemidir. Özellikle daha büyük DWU'larda ölçeklendirmeye yönelik gerçek özelliklerini görmek için, CPU'ları beslemek için yeterli veriye sahip olduğunuzdan emin olmak için ölçeklendikçe veri kümesini ölçeklendirmenizi öneririz. Ölçek testi için en az 1 TB kullanmanızı öneririz.

Not

Sorgu performansı yalnızca iş işlem düğümleri arasında bölünebiliyorsa daha fazla paralelleştirme ile artar. Ölçeklendirmenin performansınızı değiştirmediğini fark ederseniz tablo tasarımınızı ve/veya sorgularınızı ayarlamanız gerekebilir. Sorgu ayarlama kılavuzu için bkz. Kullanıcı sorgularını yönetme.

İzinler

Veri ambarı birimlerini değiştirmek için ALTER DATABASE'de açıklanan izinler gerekir.

SQL DB Katkıda Bulunanı ve SQL Server Katkıda Bulunanı gibi Azure yerleşik rolleri DWU ayarlarını değiştirebilir.

Geçerli DWU ayarlarını görüntüleme

Geçerli DWU ayarını görüntülemek için:

  1. Visual Studio'da SQL Server Nesne Gezgini açın.
  2. Mantıksal SQL sunucusuyla ilişkili ana veritabanına bağlanın.
  3. sys.database_service_objectives dinamik yönetim görünümünden öğesini seçin. Örnek aşağıda verilmiştir:
SELECT  db.name [Database]
,        ds.edition [Edition]
,        ds.service_objective [Service Objective]
FROM    sys.database_service_objectives   AS ds
JOIN    sys.databases                     AS db ON ds.database_id = db.database_id
;

Veri ambarı birimlerini değiştirme

Azure portal

DWU'ları değiştirmek için:

  1. Azure portal açın, veritabanınızı açın ve Ölçeklendir'i seçin.

  2. Ölçek'in altında kaydırıcıyı sola veya sağa hareket ettirerek DWU ayarını değiştirin.

  3. Kaydet’i seçin. Bir onay iletisi görüntülenir. Onaylamak için evet'i veya iptal etmek için hayır'ı seçin.

PowerShell

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

DWU'ları değiştirmek için Set-AzSqlDatabase PowerShell cmdlet'ini kullanın. Aşağıdaki örnek, MyServer sunucusunda barındırılan MySQLDW veritabanı için hizmet düzeyi hedefini DW1000 olarak ayarlar.

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

Daha fazla bilgi için bkz. Azure Synapse Analytics için PowerShell cmdlet'leri

T-SQL

T-SQL ile geçerli DWUsettings'i görüntüleyebilir, ayarları değiştirebilir ve ilerleme durumunu denetleyebilirsiniz.

DWU'ları değiştirmek için:

  1. Sunucunuzla ilişkilendirilmiş ana veritabanına bağlanın.
  2. ALTER DATABASE TSQL deyimini kullanın. Aşağıdaki örnek, MySQLDW veritabanı için hizmet düzeyi hedefini DW1000c olarak ayarlar.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

REST API'leri

DWU'ları değiştirmek için Veritabanı Oluşturma veya Güncelleştirme REST API'sini kullanın. Aşağıdaki örnek, MyServer sunucusunda barındırılan MySQLDW veritabanı için hizmet düzeyi hedefini DW1000c olarak ayarlar. Sunucu ResourceGroup1 adlı bir Azure kaynak grubundadır.

PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8

{
    "properties": {
        "requestedServiceObjectiveName": DW1000
    }
}

Daha fazla REST API örneği için bkz. Azure Synapse Analytics için REST API'leri.

DWU değişikliklerinin durumunu denetleme

DWU değişikliklerinin tamamlanması birkaç dakika sürebilir. Otomatik olarak ölçeklendiriyorsanız, başka bir eyleme geçmeden önce belirli işlemlerin tamamlandığından emin olmak için mantık uygulamayı göz önünde bulundurun.

Veritabanı durumunu çeşitli uç noktalar üzerinden denetlemek, otomasyonu doğru bir şekilde uygulamanıza olanak tanır. Portal, bir işlemin ve veritabanlarının geçerli durumunun tamamlanmasının ardından bildirim sağlar, ancak durum programlama denetimine izin vermez.

Azure portal ile veritabanı durumunu ölçek genişletme işlemleri için denetleyemazsınız.

DWU değişikliklerinin durumunu denetlemek için:

  1. Sunucunuzla ilişkilendirilmiş ana veritabanına bağlanın.
  2. Veritabanı durumunu denetlemek için aşağıdaki sorguyu gönderin.
SELECT    *
FROM      sys.databases
;
  1. İşlemin durumunu denetlemek için aşağıdaki sorguyu gönderin
SELECT    *
FROM      sys.dm_operation_status
WHERE     resource_type_desc = 'Database'
AND       major_resource_id = 'MySQLDW'
;

Bu DMV, ayrılmış SQL havuzunuzda gerçekleştirilen işlem ve işlemin durumu (IN_PROGRESS veya COMPLETED) gibi çeşitli yönetim işlemleri hakkında bilgi döndürür.

Ölçeklendirme iş akışı

Bir ölçeklendirme işlemi başlattığınızda, sistem ilk olarak tüm açık oturumları öldürür ve tutarlı bir durum sağlamak için tüm açık işlemleri geri alır. Ölçeklendirme işlemleri için ölçeklendirme yalnızca bu işlem geri alma işlemi tamamlandıktan sonra gerçekleşir.

  • Bir ölçeği artırma işlemi için sistem tüm işlem düğümlerini ayırır, ek işlem düğümlerini sağlar ve ardından depolama katmanına yeniden bağlanır.
  • Ölçeği azaltma işlemi için sistem tüm işlem düğümlerini ayırır ve ardından yalnızca gerekli düğümleri depolama katmanına yeniden ekler.

Sonraki adımlar

Performansı yönetme hakkında daha fazla bilgi edinmek için bkz. İş yükü yönetimi için kaynak sınıfları ve Bellek ve eşzamanlılık sınırları.