Azure Synapse Analytic'te ayrılmış SQL havuzu (eski adı SQL DW) için bilgi sayfası

Bu bilgi sayfası, ayrılmış SQL havuzu (eski adıyla SQL DW) çözümleri oluşturmaya yönelik yararlı ipuçları ve en iyi yöntemleri sağlar.

Aşağıdaki grafikte ayrılmış SQL havuzuyla (eski adıyla DW SQL) veri ambarı tasarlama işlemi gösterilmektedir:

Sketch

Tablolardaki sorgular ve işlemler

Veri ambarınızda çalıştırılacak birincil işlemleri ve sorguları önceden bildiğinizde, bu işlemler için veri ambarı mimarinizi öncelik sırasına koyabilirsiniz. Bu sorgular ve işlemler şunları içerebilir:

  • Bir veya iki olgu tablosunu boyut tabloları ile birleştirme, birleşik tabloyu filtreleme ve sonra sonuçları bir veri reyonuna ekleme.
  • Olgu satışınıza yönelik büyük veya küçük güncelleştirmeler yapma.
  • Tablolarınıza yalnızca veri ekleme.

İşlemlerin türlerini önceden bilmeniz, tablolarınızın tasarımını iyileştirmenize yardımcı olur.

Veri geçişi

İlk olarak verilerinizi Azure Data Lake Storage veya Azure Blob Depolama yükleyin. Ardından, verilerinizi hazırlama tablolarına yüklemek için COPY deyimini kullanın. Aşağıdaki yapılandırmayı kullanın:

Tasarım Öneri
Dağıtım Hepsini Bir Kez Deneme
Dizinleme Yığın
Bölümleme Hiçbiri
Kaynak Sınıfı largerc veya xlargerc

Veri geçişi, veri yükleme ve Ayıklama, Yükleme ve Dönüştürme (ELT) işlemi hakkında daha fazla bilgi edinin.

Dağıtılmış veya çoğaltılmış tablolar

Tablo özelliklerini bağlı olarak aşağıdaki stratejileri kullanın:

Tür İdeal olduğu öğe... İzlenmesi gereken şey...
Çoğaltılmış * Sıkıştırmadan sonra 2 GB'tan az depolama alanına sahip bir yıldız şemasındaki küçük boyut tabloları (~5x sıkıştırma) * Birçok yazma işlemi tablodadır (insert, upsert, delete, update gibi)

* Data Warehouse Birimleri (DWU) sağlamayı sık sık değiştirirsiniz

* Yalnızca 2-3 sütun kullanıyorsunuz ancak tablonuzda birçok sütun var

* Çoğaltılan bir tablonun dizinini oluşturursunuz
Hepsini Bir Kez Deneme (varsayılan) * Geçici/hazırlama tablosu

* Bariz birleştirme tuşu veya iyi aday sütunu yok
* Veri taşıma nedeniyle performans yavaş
Karma * Olgu tabloları

* Büyük boyut tabloları
* Dağıtım anahtarı güncelleştirilemiyor

İpuçları:

  • Hepsini Bir Kez Deneme ile başlayın, ancak yüksek düzeyde paralel bir mimariden yararlanmak için karma dağıtım stratejisini amaçlayın.
  • Genel karma anahtarların aynı veri biçimine sahip olduğundan emin olun.
  • Varchar biçiminde dağıtmayın.
  • Sık birleştirme işlemleri ile bir olgu tablosuna yönelik genel karma anahtar içeren boyut tabloları karma dağıtılmış olabilir.
  • Verilerdeki eğrilikleri analiz etmek için sys.dm_pdw_nodes_db_partition_stats komutunu kullanın.
  • Sorguların ardındaki veri hareketlerini analiz etmek, yayın süresini izlemek ve karıştırma işlemlerini izlemek için sys.dm_pdw_request_steps kullanın. Bu, dağıtım stratejinizi gözden geçirmek için faydalıdır.

Çoğaltılmış tablolar ve dağıtılmış tablolar hakkında daha fazla bilgi edinin.

Tablonuzu dizinleme

Dizinleme, tabloların hızlı şekilde okunması için faydalıdır. Gereksinimlerinize göre kullanabileceğiniz bir dizi benzersiz teknoloji vardır:

Tür İdeal olduğu öğe... İzlenmesi gereken şey...
Yığın * Hazırlama/geçici tablo

* Küçük aramalar içeren küçük tablolar
* Tüm aramalar tablonun tamamını tarar
Kümelenmiş dizin * 100 milyon satıra kadar olan tablolar

* Yalnızca 1-2 sütunun yoğun kullanıldığı büyük tablolar (100 milyondan fazla satır)
* Çoğaltılmış tabloda kullanılır

* Birden çok birleştirme ve Gruplandırma ölçütü işlemlerini içeren karmaşık sorgularınız var

* Dizine alınan sütunlarda güncelleştirmeler yaparsınız: bellek alır
Kümelenmiş columnstore dizini (CCI) (varsayılan) * Büyük tablolar (100 milyondan fazla satır) * Çoğaltılmış tabloda kullanılır

* Tablonuzda çok büyük güncelleştirme işlemleri yaparsınız

* Tablonuzu fazla bölümlendirmeniz gerekir: satır grupları farklı dağıtım düğümlerine ve bölümlerine yayılmaz

İpuçları:

  • Kümelenmiş bir dizin üzerinde, filtreleme için yoğun şekilde kullanılan bir sütuna kümelenmemiş bir dizin eklemek isteyebilirsiniz.
  • CCI ile bir tablodaki belleği nasıl yöneteceğiniz konusunda dikkatli olun. Veri yüklediğinizde, kullanıcının (veya sorgunun) büyük bir kaynak sınıfından avantaj elde etmesini istersiniz. Kırpmadan ve çok sayıda küçük sıkıştırılmış satır grupları oluşturmaktan kaçınmaya dikkat edin.
  • Gen2’de, CCI tabloları performansı en üst düzeye çıkarmak için işlem düğümlerinde yerel olarak önbelleğe alınır.
  • CCI için, satır gruplarınızın sıkıştırmasının zayıf olması nedeniyle düşük performans gerçekleşebilir. Bu durumda CCI’nizi yeniden derleyin veya yeniden düzenleyin. Sıkıştırılmış satır grubu başına en az 100.000 satır istiyorsunuz. Bir satır grubunda 1 milyon satır olması idealdir.
  • Artımlı yük sıklığı ve boyutuna bağlı olarak, dizinlerinizi yeniden düzenlerken veya yeniden derlerken otomatikleştirme sağlamak istersiniz. Bahar temizliği her zaman yararlıdır.
  • Bir satır grubunun kırpmak istediğinizde stratejik olun. Açık satır grupları ne kadar büyüktür? Yaklaşan günlerde ne kadar veri yüklemeyi bekliyorsunuz?

Dizinler hakkında daha fazla bilgi edinin.

Bölümleme

Büyük bir olgu tablonuz (1 milyardan fazla satır) olduğunda tablonuzu bölümleyebilirsiniz. Durumların yüzde 99’unda bölüm anahtarı, tarihi temel almalıdır.

ELT gerektiren hazırlama tabloları ile bölümlemeden yararlanabilirsiniz. Bu, veri yaşam döngüsü yönetimini kolaylaştırır. Özellikle kümelenmiş columnstore dizininde olgunuzu veya hazırlama tablonuzu aşırı bölümlememeye dikkat edin.

Bölümler hakkında daha fazla bilgi edinin.

Artımlı yükleme

Verilerinizi artımlı olarak yükleyecekseniz ilk olarak verilerinizi yüklemeye daha büyük kaynak sınıfları ayırdığınızdan emin olun. Kümelenmiş columnstore dizinlerine sahip tablolara yüklenirken bu özellikle önemlidir. Diğer ayrıntılar için bkz. kaynak sınıfları .

ELT işlem hatlarınızı veri ambarınıza otomatikleştirmek için PolyBase ve ADF V2 kullanmanızı öneririz.

Geçmiş verilerinizdeki büyük bir güncelleştirme toplu işlemi için INSERT, UPDATE ve DELETE kullanmak yerine tabloya saklamak istediğiniz verileri yazmak için CTAS kullanmayı göz önünde bulundurun.

İstatistiklerin bakımını yapın

Verilerinizde önemli değişiklikler olacağından, istatistiklerin güncelleştirilmesi önemlidir. Önemli değişiklikler olup olmadığını belirlemek için güncelleştirme istatistiklerine bakın. Güncelleştirilmiş istatistikler sorgu planlarınızı iyileştirir. Tüm istatistiklerinizi tutmanız çok uzun sürerse, hangi sütunlarda istatistikler olduğu konusunda daha seçici olun.

Güncelleştirmelerin sıklığını da tanımlayabilirsiniz. Örneğin, yeni değerlerin eklenme ihtimali olan tarih sütunlarını her gün güncelleştirmeyi tercih edebilirsiniz. En çok faydayı, birleştirmelerin bulunduğu sütunlar, WHERE yan tümcesinde kullanılan sütunlar ve GROUP BY içinde bulunan sütunlar için istatistik tutarak elde edebilirsiniz.

İstatistikler hakkında daha fazla bilgi edinin.

Kaynak sınıfı

Kaynak grupları, sorgulara bellek ayırmanın bir yolu olarak kullanılır. Sorgu veya yükleme hızını artırmak için daha fazla bellek gerekiyorsa, daha yüksek kaynak sınıfları ayırmanız gerekir. Çevirme tarafında büyük kaynak sınıfları kullanılması, eşzamanlılığı etkiler. Tüm kullanıcılarınızı büyük bir kaynak sınıfına taşımadan önce bunu dikkate almak istersiniz.

Sorguların çok uzun sürdüğünü fark ederseniz, kullanıcılarınızın büyük kaynak sınıflarında çalışmadığından emin olun. Büyük kaynak sınıfları birçok eşzamanlı yuva kullanır. Bunlar diğer sorguların kuyruğa alınmasına neden olabilir.

Son olarak, ayrılmış SQL havuzunun 2. Nesil'ini (eski adıyla DW SQL) kullanarak her kaynak sınıfı 1. Nesil'den 2,5 kat daha fazla bellek alır.

Kaynak sınıfları ve eşzamanlılık ile çalışma hakkında daha fazla bilgi edinin.

Maliyetinizi düşürme

Azure Synapse temel özelliklerinden biri, işlem kaynaklarını yönetebilme özelliğidir. Kullanmadığınız zaman ayrılmış SQL havuzunuzu (eski adıyla DW SQL) duraklatabilir ve işlem kaynaklarının faturasını durdurabilirsiniz. Performans taleplerinizi karşılamak için kaynakları ölçeklendirebilirsiniz. Duraklatmak için Azure portalını veya PowerShell’i kullanın. Ölçeklendirmek için Azure portal, PowerShell, T-SQL veya REST API kullanın.

Azure İşlevleri ile istediğiniz anda otomatik ölçeklendirme yapın:

Image showing a button labeled

Performans için mimarinizi iyileştirme

Hub ve bağlı bileşen mimarisindeki SQL Database ve Azure Analysis Services’in dikkate alınmasını öneririz. Bu çözüm, bir yandan SQL Database ve Azure Analysis Services’teki gelişmiş güvenlik özelliklerini kullanırken diğer yandan farklı kullanıcı grupları arasında iş yükü yalıtımı sağlayabilir. Bu, kullanıcılarınıza sınırsız eşzamanlılık sağlamanın da bir yoludur.

Azure Synapse Analytics'te ayrılmış SQL havuzundan (eski SQL DW) yararlanan tipik mimariler hakkında daha fazla bilgi edinin.

Ayrılmış SQL havuzundan (eski SQL DW) SQL veritabanlarındaki uçlarınızı tek tıklamayla dağıtın:

Image showing a button labeled