Azure Synapse SQL mimarisi

Bu makalede, SYNAPSE SQL 'ın mimari bileşenleri açıklanmaktadır.

Synapse SQL mimari bileşenleri

Synapse SQL, verilerin birden çok düğüm arasında işlem işlemesini dağıtmak için bir genişleme mimarisinden yararlanır. İşlem depolama alanından ayrıdır ve bu işlem, sisteminizi sisteminizdeki verilerden bağımsız olarak ölçeklendirmenizi sağlar.

adanmış SQL havuzunda, ölçek birimi, veri ambarı birimiolarak bilinen bir işlem gücü soyutlamasıdır.

sunucusuz SQL havuzu için, sunucusuz olmak üzere, sorgu kaynak gereksinimlerine uyum sağlamak için otomatik olarak ölçekleme yapılır. Düğüm veya yük devretme ekleme, kaldırma işlemleri sırasında zaman içinde topoloji değişiklikleri yaparken, değişikliklere uyum sağlar ve sorgunuzun yeterli kaynak içerdiğinden ve başarıyla sonlandırdığından emin olur. örneğin, aşağıdaki görüntüde bir sorgu yürütmek için 4 işlem düğümü kullanan sunucusuz SQL havuzu gösterilmektedir.

Synapse SQL mimarisi

Synapse SQL, düğüm tabanlı bir mimari kullanır. uygulamalar, Synapse SQL için tek giriş noktası olan bir denetim düğümüne, T SQL komutlarına bağlanır ve bu komutları verebilir.

Azure Synapse SQL denetim düğümü, paralel işleme sorgularını iyileştirmek için dağıtılmış bir sorgu altyapısını kullanır ve ardından çalışmalarını paralel olarak yapmak üzere işlem düğümlerine geçirir.

sunucusuz SQL havuzu denetim düğümü, kullanıcı sorgusunun dağıtılmış yürütülmesini iyileştirmek ve bu işlemi, işlem düğümlerinde yürütülecek daha küçük sorgulara bölerek dağıtmak üzere dağıtılmış sorgu iş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. Depolama alanından dosya (lar) ı okur, diğer görevlerden alınan sonuçları, grupları veya diğer görevlerden alınan verileri 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 ile, SQL Synapse kullanıldığında, depolama ihtiyaçlarınıza bakılmaksızın işlem gücünün bağımsız boyutlandırmadan faydalanabilir. sunucusuz SQL havuz ölçekleme otomatik olarak yapılır, ancak adanmış SQL havuzu için bir tane olabilir:

  • veri taşımadan, ayrılmış bir SQL havuzundaki 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 yararlanır. verileriniz Azure Depolama tarafından depolandığından ve yönetildiğinden, depolama tüketiminize yönelik ayrı bir ücret alınır.

sunucusuz SQL havuzu, data lake dosyalarınızı sorgulamanızı sağlar, ancak adanmış SQL havuzu veri gölü dosyalarınızda verileri sorgulamanızı ve bunları almanıza olanak sağlar. veriler adanmış SQL havuza eklendiğinde, sistem performansını iyileştirmek için veriler dağıtımlarla birleştirilir. Tabloyu tanımlarken verileri dağıtmak için hangi parçalama deseninin kullanılacağını seçebilirsiniz. Bu parçalı desenler 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. adanmış SQL havuzuna bir T-SQL sorgusu gönderdiğinizde denetim düğümü, her bir dağıtıma karşı paralel olarak çalışan sorgulara dönüştürür.

sunucusuz SQL havuzunda, dqp motoru, kullanıcı sorgusunun dağıtılmış yürütülmesini iyileştirmek ve hesaplamak için denetim düğümünde çalışır ve işlem düğümlerinde yürütülecek daha küçük sorgulara bölerek. Ayrıca, her düğüm tarafından işlenecek dosya kümelerini de atar.

İşlem düğümleri

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

adanmış SQL havuzunda dağıtımlar, işlenmek üzere işlem düğümlerine eşlenir. Daha fazla işlem kaynağı için ödeme yaparken, havuz dağıtımları kullanılabilir Işlem düğümlerine yeniden eşler. işlem düğümlerinin sayısı 1 ile 60 arasında değişir ve adanmış SQL havuzunun hizmet düzeyi tarafından belirlenir. Her Işlem düğümünün sistem görünümlerinde görünür bir düğüm KIMLIĞI vardır. Adları sys.pdw_nodes ile başlayan sistem görünümlerindeki node_id sütununa bakarak Işlem düğümü KIMLIĞINI görebilirsiniz. bu sistem görünümlerinin listesi için bkz. Synapse SQL sistem görünümleri.

sunucusuz SQL havuzunda, her işlem düğümüne görevi yürütmek için görev ve dosya kümesi atanır. Görev, aslında sorgu kullanıcısının gönderildiği bir parçası olan sorgu yürütme birimidir. Otomatik ölçeklendirme, Kullanıcı sorgusunu yürütmek için yeterli Işlem düğümlerinin kullanıldığını sağlamak üzere etkin olur.

Veri Taşıma Hizmeti

veri taşıma hizmeti (DMS), işlem düğümleri arasında veri hareketini koordine eden adanmış SQL havuzundaki veri aktarımı teknolojisidir. Bazı sorgular paralel sorguların doğru sonuçlar döndürmesini sağlamak için veri hareketi gerektirir. Veri taşıma gerektiğinde, DMS doğru verinin doğru konuma gelmesini sağlar.

Dağıtımları

dağıtım, adanmış SQL havuzundaki dağıtılmış veriler üzerinde çalışan paralel sorgular için temel depolama ve işleme birimidir. adanmış 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 bir sorgu, veri dağıtımlarından birinde çalışır. Her Işlem düğümü bir veya daha fazla 60 dağıtımlarını yönetir. en fazla işlem kaynağına sahip adanmış bir SQL havuzu, işlem düğümü başına bir dağıtıma sahiptir. en düşük işlem kaynaklarıyla ayrılmış bir SQL havuzunda, tek bir işlem düğümündeki tüm dağıtımlar vardır.

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.

karma olarak dağıtılan bir tabloya verileri bölmek için, adanmış SQL havuzu her bir satırı bir dağıtıma kesin olarak 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ış bir tablonun) karma olarak dağıtılan tablo olarak nasıl depolandığı gösterilmektedir.

Dağıtılmış tablo

  • Her satır bir dağıtıma aittir.
  • Belirleyici bir karma algoritması her satırı bir dağıtıma atar.
  • Dağıtım başına tablo satırı sayısı, farklı tablo boyutları tarafından gösterilen şekilde değişir.

Bir dağıtım sütununun seçimi için, ayrımlık, veri eğriltme ve sistemde çalışan sorgu türleri gibi performans konuları vardır.

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

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

Hepsini bir kez deneme dağıtılmış tablosu, verileri tabloda eşit olarak dağıtır ancak başka bir iyileştirme yapmaz. Önce bir dağıtım rastgele seçilir ve sonra, satır arabellekleri dağıtıma sırayla atanır. Verileri hepsini bir kez deneme tablosuna yüklemek hızlı bir işlemdir ancak sorgu performansı genellikle karma dağıtılmış tablolar ile daha iyi olabilir. Hepsini bir kez deneme tablolarında birleşimler, ek zaman alan reshuffling verileri gerektirir.

Ç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 bir tablo, her işlem düğümündeki tablonun tam bir kopyasını önbelleğe alır. Bu nedenle, bir tablonun çoğaltılması, bir JOIN veya toplanmadan önce işlem düğümleri arasında veri aktarımı gereksinimini ortadan kaldırır. Çoğaltılmış tablolar, küçük tablolar ile en iyi şekilde kullanılır. Ek depolama alanı gereklidir ve büyük tabloları pratik hale getirmek için veri yazarken tahakkuk eden ek yük vardır.

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

Çoğaltılmış tablo

Sonraki adımlar

artık Synapse SQL hakkında bir bit öğrenolduğunuza göre, bir adanmış SQL havuzunun hızla nasıl oluşturulacağını ve örnek verilerin nasıl yükleneceğiniöğrenin. veya sunucusuz SQL havuzunu kullanmayabaşlayabilirsiniz. Azure’da yeniyseniz yeni terimlerle karşılaşabileceğinizi için Azure sözlüğünü yararlı bulabilirsiniz.