Azure Synapse Analytics'te ayrılmış SQL havuzu için iş yükü sınıflandırması

Bu makalede, bir iş yükü grubu atamanın iş yükü sınıflandırma işlemi ve Azure Synapse ayrılmış SQL havuzlarıyla gelen isteklere önem derecesi açıklanmaktadır.

Sınıflandırma

İş yükü yönetimi sınıflandırması, kaynak sınıfları ve önem derecesi atanarak isteklere iş yükü ilkelerinin uygulanmasını sağlar.

Veri ambarı iş yüklerini sınıflandırmanın birçok yolu olsa da en basit ve en yaygın sınıflandırma yük ve sorgudur. Ekleme, güncelleştirme ve silme deyimleriyle verileri yüklersiniz. Seçmeleri kullanarak verileri sorgularsınız. Veri ambarı çözümü genellikle yük etkinliği için daha fazla kaynak içeren daha yüksek bir kaynak sınıfı atama gibi bir iş yükü ilkesine sahip olur. Yük etkinliklerine kıyasla daha düşük önem düzeyi gibi farklı bir iş yükü ilkesi sorgulara uygulanabilir.

Ayrıca yükünüzü alt sınıflandırabilir ve iş yüklerinizi sorgulayabilirsiniz. Alt sınıflandırma, iş yükleriniz için daha fazla denetim sağlar. Örneğin, sorgu iş yükleri küp yenilemelerinden, pano sorgularından veya geçici sorgulardan oluşabilir. Bu sorgu iş yüklerinin her birini farklı kaynak sınıflarıyla veya önem ayarlarıyla sınıflandırabilirsiniz. Yük, alt sınıflandırmadan da yararlanabilir. Büyük dönüştürmeler daha büyük kaynak sınıflarına atanabilir. Önemli satış verilerinin hava durumu verileri veya sosyal veri akışı öncesinde yükleyici olmasını sağlamak için daha yüksek öneme sahip olabilir.

Tüm deyimler kaynak gerektirmediğinden veya yürütmeyi etkilemek için öneme ihtiyaç duyduğu için sınıflandırılmamıştır. DBCC komutları, BEGIN, COMMIT ve ROLLBACK TRANSACTION deyimleri sınıflandırılmamıştır.

Sınıflandırma işlemi

Ayrılmış SQL havuzu sınıflandırması bugün kullanıcılara , sp_addrolemember kullanılarak kendisine karşılık gelen kaynak sınıfı atanmış bir role atanarak sağlanır. Bir kaynak sınıfında oturum açma dışında istekleri niteleyebilme özelliği bu özellik ile sınırlıdır. CREATE WORKLOAD CLASSIFIER söz dizimiyle daha zengin bir sınıflandırma yöntemi kullanıma sunuldu. Bu söz dizimiyle, ayrılmış SQL havuzu kullanıcıları parametre aracılığıyla workload_group bir isteğe önem ve ne kadar sistem kaynağı atandığı atayabilir.

Sınıflandırma ağırlığı

Sınıflandırma işleminin bir parçası olarak, hangi iş yükü grubunun atandığını belirlemek için ağırlıklama gerçekleştirilir. Ağırlık aşağıdaki gibi olur:

Sınıflandırıcı Parametresi Ağırlık
MEMBERNAME:USER 64
MEMBERNAME:ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

membername parametresi zorunludur. Ancak, belirtilen üye adı veritabanı rolü yerine veritabanı kullanıcısıysa, kullanıcı için ağırlık daha yüksektir ve bu nedenle sınıflandırıcı seçilir.

Bir kullanıcı birden çok sınıflandırıcıda atanmış veya eşleştirilen farklı kaynak sınıflarına sahip birden çok rolün üyesiyse, kullanıcıya en yüksek kaynak sınıfı ataması verilir. Bu davranış, mevcut kaynak sınıfı atama davranışıyla tutarlıdır.

Not

Yönetilen kimlikleri sınıflandırma (MI) davranışı, Azure Synapse çalışma alanlarındaki ayrılmış SQL havuzu ile tek başına ayrılmış SQL havuzu (eski adı SQL DW) arasında farklılık gösterir. Tek başına ayrılmış SQL havuzu MI, atanan kimliği korurken, Azure Synapse çalışma alanları için MI dbo olarak çalışır. Bu değiştirilemez. Varsayılan olarak dbo rolü smallrc olarak sınıflandırılır. dbo rolü için bir sınıflandırıcı oluşturmak, istekleri smallrc dışında bir iş yükü grubuna atamanıza olanak tanır. Tek başına dbo sınıflandırma için çok genelse ve daha geniş etkileri varsa, dbo rol sınıflandırmasıyla birlikte etiket, oturum veya zamana dayalı sınıflandırma kullanmayı göz önünde bulundurun.

Sistem sınıflandırıcıları

İş yükü sınıflandırması sistem iş yükü sınıflandırıcılarına sahiptir. Sistem sınıflandırıcıları, mevcut kaynak sınıfı rol üyeliklerini normal öneme sahip kaynak sınıfı kaynak ayırmalarıyla eşler. Sistem sınıflandırıcıları bırakılamaz. Sistem sınıflandırıcılarını görüntülemek için aşağıdaki sorguyu çalıştırabilirsiniz:

SELECT * FROM sys.workload_management_workload_classifiers where classifier_id <= 12

Kaynak sınıfı atamalarını sınıflandırıcılarla karıştırma

Sizin adınıza oluşturulan sistem sınıflandırıcıları, iş yükü sınıflandırmasına geçiş için kolay bir yol sağlar. Sınıflandırma önceliği olan kaynak sınıfı rol eşlemelerini kullanmak, önem derecesine sahip yeni sınıflandırıcılar oluşturmaya başladığınızda yanlış sınıflandırmaya neden olabilir.

Şu senaryoyu göz önünde bulundurun:

  • Mevcut bir veri ambarı, daha büyük kaynak sınıfı rolüne atanmış bir veritabanı kullanıcısı DBAUser'a sahiptir. Kaynak sınıfı ataması sp_addrolemember ile yapıldı.
  • Veri ambarı artık iş yükü yönetimiyle güncelleştirildi.
  • Yeni sınıflandırma söz dizimini test etmek için, DBARole (DBAUser'ın üyesi olduğu) veritabanı rolünün, bunları mediumrc ve yüksek önem düzeyine eşleyen bir sınıflandırıcısı oluşturulur.
  • DBAUser oturum açtığında ve bir sorgu çalıştırdığında, sorgu largerc'ye atanır. Çünkü bir kullanıcı rol üyeliğinden önceliklidir.

Yanlış sınıflandırma sorunlarını gidermeyi basitleştirmek için, iş yükü sınıflandırıcıları oluştururken kaynak sınıfı rol eşlemelerini kaldırmanızı öneririz. Aşağıdaki kod mevcut kaynak sınıfı rol üyeliklerini döndürür. İlgili kaynak sınıfından döndürülen her üye adı için sp_droprolemember çalıştırın.

SELECT  r.name AS [Resource Class]
,       m.name AS membername
FROM    sys.database_role_members rm
JOIN    sys.database_principals AS r ON rm.role_principal_id = r.principal_id
JOIN    sys.database_principals AS m ON rm.member_principal_id = m.principal_id
WHERE   r.name IN ('mediumrc','largerc','xlargerc','staticrc10','staticrc20','staticrc30','staticrc40','staticrc50','staticrc60','staticrc70','staticrc80');
--for each row returned run in the previous query
EXEC sp_droprolemember '[Resource Class]', membername;

Sonraki adımlar