Azure Synapse SQL mimarisi

Bu makalede Synapse SQL'in mimari bileşenleri açıklanmaktadır. Ayrıca Azure Synapse SQL'in yüksek performans ve ölçeklenebilirlik elde etmek için dağıtılmış sorgu işleme özelliklerini Azure Depolama ile nasıl bir araya getirildiği de açıklanır.

Synapse SQL mimarisi bileşenleri

Synapse SQL, verilerin hesaplamalı işlenmesini birden çok düğüme dağıtmak için bir genişleme mimarisi kullanır. İşlem, sisteminizdeki verilerden bağımsız olarak işlem ölçeklendirmenizi sağlayan depolama alanından ayrıdır.

Ayrılmış SQL havuzu için ölçek birimi, veri ambarı birimi olarak bilinen işlem gücünün soyutlamasıdır.

Sunucusuz SQL havuzu için sunucusuz olan ölçeklendirme, sorgu kaynağı gereksinimlerini karşılamak için otomatik olarak gerçekleştirilir. Düğümleri veya yük devretmeleri ekleyerek, kaldırarak topoloji zaman içinde değiştikçe değişikliklere uyarlanır ve sorgunuzun yeterli kaynağa sahip olduğundan ve başarıyla tamamlandığından emin olur. Örneğin, aşağıdaki görüntüde bir sorguyu yürütmek için dört işlem düğümü kullanan sunucusuz SQL havuzu gösterilmektedir.

Synapse SQL mimarisinin ekran görüntüsü.

Synapse SQL düğüm tabanlı bir mimari kullanır. Uygulamalar, Synapse SQL için tek giriş noktası olan Denetim düğümüne T-SQL komutları bağlar ve yayımlar.

Azure Synapse SQL Denetimi düğümü, sorguları paralel işleme için iyileştirmek için dağıtılmış bir sorgu altyapısı kullanır ve ardından işlemlerini İşlem düğümlerine geçirerek işlerini paralel olarak yapar.

Sunucusuz SQL havuzu Denetim düğümü, kullanıcı sorgusunu İşlem düğümlerinde yürütülecek daha küçük sorgulara bölerek dağıtılmış yürütmeyi iyileştirmek ve yönetmek için Dağıtılmış Sorgu İşleme (DQP) altyapısını kullanır. Her küçük sorgu görev olarak adlandırılır ve dağıtılmış yürütme birimini temsil eder. Depolamadan dosyaları okur, diğer görevlerden, gruplardan veya diğer görevlerden alınan sipariş verilerinden sonuçları birleştirir.

İşlem düğümleri tüm kullanıcı verilerini Azure Depolama’da depolar ve paralel sorgular çalıştırır. Veri Taşıma Hizmeti (DMS), sorguları paralel olarak çalıştırmak ve doğru sonuçlar döndürmek için verileri düğümler arasında taşıyan, sistem düzeyindeki bir dahili hizmettir.

Ayrılmış depolama ve işlem sayesinde Synapse SQL kullanırken, depolama gereksinimlerinizden bağımsız olarak işlem gücünün boyutlandırılmasından faydalanabilirsiniz. Sunucusuz SQL havuzu ölçeklendirmesi otomatik olarak yapılırken, ayrılmış SQL havuzu için şunları yapabilir:

  • Verileri taşımadan ayrılmış bir SQL havuzu içinde işlem gücünü büyütün veya küçültün.
  • Verileri olduğu gibi bırakıp işlem kapasitesini duraklatır, böylece yalnızca depolama için ödeme yaparsınız.
  • Çalışma saatleri içinde işlem kapasitesini sürdürme.

Azure Depolama

Synapse SQL, kullanıcı verilerinizi güvende tutmak için Azure Depolama'yı kullanır. Verileriniz Azure Depolama tarafından depolanıp yönetildiğinden, depolama kullanımınız için ayrı bir ücret uygulanır.

Sunucusuz SQL havuzu data lake dosyalarınızı sorgulamanıza olanak tanırken, ayrılmış SQL havuzu da data lake dosyalarınızdaki verileri sorgulamanıza ve almanızı sağlar. Veriler ayrılmış SQL havuzuna alındığında, sistemin performansını iyileştirmek için veriler dağıtımlar halinde parçalanır. Tabloyu tanımlarken verileri dağıtmak için hangi parçalama deseninin kullanılacağını seçebilirsiniz. Bu parçalama desenleri desteklenir:

  • Karma
  • Hepsini Bir Kez Deneme
  • Çoğaltma

Denetim düğümü

Denetim düğümü mimarinin beynidir. Tüm uygulamalarla ve bağlantılarla etkileşim kuran ön uçtur.

Synapse SQL'de, dağıtılmış sorgu altyapısı paralel sorguları iyileştirmek ve koordine etmek için Denetim düğümünde çalışır. Ayrılmış SQL havuzuna bir T-SQL sorgusu gönderdiğinizde, Denetim düğümü bunu her dağıtımda paralel olarak çalışan sorgulara dönüştürür.

Sunucusuz SQL havuzunda DQP altyapısı, kullanıcı sorgusunu İşlem düğümlerinde yürütülecek daha küçük sorgulara bölerek dağıtılmış yürütmeyi iyileştirmek ve koordine etmek için Denetim düğümünde çalışır. Ayrıca her düğüm tarafından işlenecek dosya kümeleri atar.

İşlem düğümleri

İşlem düğümleri, hesaplama gücü sağlar.

Ayrılmış SQL havuzunda, dağıtımlar işlem için İşlem düğümleriyle eşleniyor. Daha fazla işlem kaynağı için ödeme yaptıktan sonra havuz, dağıtımları kullanılabilir İşlem düğümleriyle yeniden eşler. İşlem düğümlerinin sayısı 1 ile 60 arasında değişir ve ayrılmış SQL havuzunun hizmet düzeyine göre belirlenir. Her İşlem düğümü, sistem görünümlerinde görünen bir düğüm kimliğine sahiptir. İşlem düğümü kimliğini, adları sys.pdw_nodes başlayan sistem görünümlerinde node_id sütununu arayarak görebilirsiniz. Bu sistem görünümlerinin listesi için bkz. Synapse SQL sistem görünümleri.

Sunucusuz SQL havuzunda her İşlem düğümüne görev ve üzerinde görev yürütülecek dosya kümesi atanır. Görev, kullanıcının gönderdiği sorgu yürütme biriminin bir parçası olan dağıtılmış sorgu yürütme birimidir. Kullanıcı sorgusunu yürütmek için yeterli İşlem düğümlerinin kullanılmasını sağlamak için otomatik ölçeklendirme etkindir.

Veri Taşıma Hizmeti

Veri Taşıma Hizmeti (DMS), ayrılmış SQL havuzundaki veri taşıma teknolojisidir ve İşlem düğümleri arasında veri hareketini koordine eder. Bazı sorgular, paralel sorguların doğru sonuçlar döndürmesini sağlamak için veri taşıma gerektirir. Veri taşıma gerektiğinde, DMS doğru verilerin doğru konuma ulaştığından emin olur.

Dağıtım

Dağıtım, ayrılmış SQL havuzundaki dağıtılmış veriler üzerinde çalışan paralel sorgular için temel depolama ve işleme birimidir. Ayrılmış SQL havuzu bir sorgu çalıştırdığında, iş paralel olarak çalışan 60 daha küçük sorguya bölünür.

60 küçük sorgunun her biri veri dağıtımlarından birinde çalışır. Her İşlem düğümü, 60 dağıtımın bir veya daha fazlasını yönetir. İşlem düğümü başına en fazla işlem kaynağına sahip ayrılmış bir SQL havuzunun bir dağıtımı vardır. Minimum işlem kaynaklarına sahip ayrılmış bir SQL havuzu, tek bir işlem düğümündeki tüm dağıtımlara sahiptir.

Karma dağıtılmış tablolar

Karma dağıtılmış bir tablo, büyük tablolarsa birleştirmeler ve toplamalar için en yüksek sorgu performansını sunabilir.

Verileri karma dağıtılmış bir tabloya bölmek için ayrılmış SQL havuzu, her satırı belirlenimci bir şekilde tek bir dağıtıma atamak için bir karma işlevi kullanır. Tablo tanımında sütunlardan biri dağıtım sütunu olarak atanır. Karma işlevi, her satırı bir dağıtıma atamak için dağıtım sütunundaki değerleri kullanır.

Aşağıdaki diyagramda tam (dağıtılmamış tablo) tablosunun karma dağıtılmış tablo olarak nasıl depolandığı gösterilmektedir.

Karma dağıtım olarak depolanan bir tablonun ekran görüntüsü.

  • Her satır bir dağıtıma aittir.
  • Belirlenimci karma algoritması her satırı tek bir dağıtıma atar.
  • Dağıtım başına tablo satırlarının sayısı, tabloların farklı boyutlarıyla gösterildiği gibi değişir.

Dağıtım sütunu seçiminde performansla ilgili dikkat edilmesi gereken noktalar vardır. Örneğin, fark, veri dengesizliği ve sistemde çalışan sorgu türleri.

Hepsini bir kez deneme dağıtılmış tabloları

Hepsini bir kez deneme tablosu oluşturmak için en basit tablodur ve yükler için hazırlama tablosu olarak kullanıldığında hızlı performans sunar.

Hepsini bir kez deneme dağıtılmış tablosu, verileri tabloda eşit olarak dağıtır ancak başka bir iyileştirme yapmaz. Önce rastgele bir dağıtım seçilir ve ardından satır arabellekleri dağıtımlara sıralı olarak atanır. Verileri hepsini bir kez deneme tablosuna yüklemek hızlıdır, ancak sorgu performansı genellikle karma dağıtılmış tablolarla daha iyi olabilir. Hepsini bir kez deneme tablolarındaki birleştirmeler, verilerin yeniden karıştırılabilmesini gerektirir ve bu da fazladan zaman alır.

Çoğaltılmış tablolar

Çoğaltılmış bir tablo, küçük tablolar için en hızlı sorgu performansını sağlar.

Çoğaltılan tablo, her işlem düğümünde tablonun tam bir kopyasını önbelleğe alır. Bu nedenle, bir tablonun çoğaltılması, birleştirme veya toplamadan önce işlem düğümleri arasında veri aktarma gereksinimini ortadan kaldırır. Çoğaltılmış tablolar, küçük tablolar ile en iyi şekilde kullanılır. Ek depolama gereklidir ve veri yazarken oluşan ek yük, büyük tabloların pratik olmamasını sağlar.

Aşağıdaki diyagramda, her işlem düğümündeki ilk dağıtımda önbelleğe alınan çoğaltılmış bir tablo gösterilmektedir.

Her işlem düğümündeki ilk dağıtımda önbelleğe alınan çoğaltılmış tablonun ekran görüntüsü.

Sonraki adımlar

Synapse SQL hakkında biraz bilgi edindiğinize göre, ayrılmış bir SQL havuzunu hızlı bir şekilde oluşturmayı ve örnek verileri yüklemeyi öğrenin. Sunucusuz SQL havuzunu kullanmaya da başlayabilirsiniz. Azure'da yeniyseniz, yeni terminolojiyle karşılaştığınızda Azure sözlüğü yararlı olabilir.