Azure Synapse SQL mimarisi nedir?
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 depolamadan ayrıldığından, işlemi sisteminizde verilerden bağımsız olarak ölçeklendirebilirsiniz.
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. Topoloji, düğümleri veya yük devretmeleri ekleyerek, kaldırarak 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 sorguyu yürütmek için dört işlem düğümü kullanan sunucusuz SQL havuzu gösterilmektedir.
Synapse SQL düğüm tabanlı bir mimari kullanır. Uygulamalar T-SQL komutlarını Synapse SQL için tek giriş noktası olan bir Denetim düğümüne 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 gerçekleştirir.
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. Depolama alanından 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ı yapabilirsiniz:
- 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 tüketiminiz için ayrı bir ücret uygulanır.
Sunucusuz SQL havuzu data lake dosyalarınızı sorgulamanıza olanak tanırken, ayrılmış SQL havuzu 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ımlara ayrılı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 Birer 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şlenmek üzere İş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. sistem görünümlerinde adları sys.pdw_nodes ile başlayan node_id sütununu arayarak İş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 İşlem düğümüne görev ve görev yürütülecek dosya kümesi atanır. Görev, aslında kullanıcının gönderdiği sorgunun 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 ayrılı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 kaynakları üst sınırına sahip ayrılmış BIR SQL havuzu, İşlem düğümü başına bir dağıtıma sahiptir. Minimum işlem kaynaklarına sahip ayrılmış BIR SQL havuzu, tek bir işlem düğümünde 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ı kararlı 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ılmayan tablo) karma dağıtılmış tablo olarak nasıl depolandığı gösterilmektedir.
- 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ırı sayısı, tabloların farklı boyutlarıyla gösterildiği gibi değişir.
Bir dağıtım sütununun seçiminde performans açısından 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, yükleri hazırlama tablosu olarak kullanıldığında hızlı performans oluşturup sunan 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 rastgele bir dağıtım seçilir ve ardından satır arabellekleri sıralı olarak dağıtımlara 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 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 ortaya çıkan ek yük vardır ve bu da 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ınmış çoğaltılmış bir tablo gösterilmektedir.
İlgili içerik
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'ın temel kavramlarını yararlı bulabilirsiniz.