Aracılığıyla paylaş


Synapse POC playbook'u: Azure Synapse Analytics'te ayrılmış SQL havuzu ile veri ambarı

Bu makalede, ayrılmış SQL havuzu için etkili bir Azure Synapse Analytics kavram kanıtı (POC) projesi hazırlamaya ve çalıştırmaya yönelik üst düzey bir metodoloji sunun.

Dekont

Bu makale, Azure Synapse kavram kanıtı playbook makale serisinin bir bölümünü oluşturur. Seriye genel bakış için bkz . Azure Synapse kavram kanıtı playbook'u.

Bahşiş

Ayrılmış SQL havuzlarını kullanmaya yeni başladıysanız Azure Synapse Analytics kullanarak Veri Ambarları ile çalışma öğrenme yolunu izlemenizi öneririz.

POC için hazırlanma

Azure Synapse POC hedeflerinize karar vermeden önce, ayrılmış bir SQL havuzunun sektör lideri performans sağlamak için işlem ve depolamayı nasıl ayırdığını öğrenmek için önce Azure Synapse SQL mimarisi makalesini okumanızı öneririz.

Sponsorları ve olası engelleyicileri belirleme

Azure Synapse hakkında bilgi sahibi olduktan sonra POC'nizin gerekli desteğe sahip olduğundan ve hiçbir engele ulaşmadığından emin olmanız gerekir. Şunu yapmalısınız:

  • Kuruluşunuzun verileri buluta taşıma ve bulutta depolama konusunda sahip olduğu tüm kısıtlamaları veya ilkeleri belirleyin.
  • Bulut tabanlı bir veri ambarı projesi için yönetici ve iş sponsorluğunu belirleme.
  • İş yükünüzün Azure Synapse için uygun olduğunu doğrulayın. Daha fazla bilgi için bkz . Azure Synapse Analytics'te ayrılmış SQL havuzu mimarisi.

Zaman çizelgesini ayarlama

POC, başarıyı tanımlayan belirli, ölçülebilir hedeflere ve ölçümlere sahip kapsamlı, zamana bağlı bir alıştırmadır. İdeal olarak, sonuçların anlamlı olması için iş gerçekliği konusunda bir temele sahip olması gerekir.

POC'ler zaman kutusuna alındıkları zaman en iyi sonuca sahiptir. Zaman kutusu, bir etkinliğe sabit ve maksimum zaman birimi ayırır. Deneyimimizde iki hafta, çok fazla kullanım örneğinin veya karmaşık test matrislerinin yükü olmadan çalışmayı tamamlamak için yeterli zaman sağlar. Bu sabit süre içinde çalışırken bu zaman çizelgesini izlemenizi öneririz:

  1. Veri yükleme: Üç gün veya daha kısa
  2. Sorgulama: Beş gün veya daha kısa
  3. Katma değerli testler: İki gün veya daha az

Bazı ipuçları şunlardır:

  • Planınızdaki görevleri tamamlamak için ihtiyacınız olacak süreyle ilgili gerçekçi tahminler yapın.
  • POC'nizi tamamlama süresinin veri kümenizin boyutu, veritabanı nesnelerinin sayısı (tablolar, görünümler ve saklı yordamlar), veritabanı nesnelerinin karmaşıklığı ve test edilecek arabirim sayısıyla ilgili olacağını fark edin.
  • POC'nizin dört haftadan uzun süre çalışacağını tahmin ediyorsanız kapsamı yalnızca en önemli hedeflere odaklanacak şekilde azaltmayı göz önünde bulundurun.
  • POC'yi kullanmaya başlamadan önce zaman çizelgesi için tüm müşteri adayı kaynaklarından ve sponsorlardan destek alın.

Herhangi bir ani engel olmadığını belirledikten ve zaman çizelgesini ayarladıktan sonra, üst düzey bir mimarinin kapsamını belirleyebilirsiniz.

Üst düzey kapsamlı mimari oluşturma

Gelecekteki üst düzey mimarilerde büyük olasılıkla birçok veri kaynağı ve veri tüketicisi, büyük veri bileşenleri ve makine öğrenmesi ile yapay zeka veri tüketicileri bulunur. POC hedeflerinizin ulaşılabilir olmasını sağlamak için (ve belirlediğiniz zaman çizelgesinin sınırları içinde) bu bileşenlerden hangisinin POC'nin bir parçasını oluşturacağını ve hangilerinin dışlanacağını belirleyin.

Ayrıca, zaten Azure kullanıyorsanız aşağıdakileri belirleyin:

  • POC sırasında kullanabileceğiniz mevcut Azure kaynakları. Örneğin, kaynaklar Microsoft Entra Id veya Azure ExpressRoute olabilir.
  • Kuruluşunuzun hangi Azure bölgelerini tercih ediyor?
  • Üretim dışı POC çalışması için kullanabileceğiniz bir abonelik.
  • Azure'a ağ bağlantınızın aktarım hızı.

    Önemli

    POC'nizin üretim çözümlerini olumsuz etkilemeden bu aktarım hızının bir kısmını tüketebildiğini kontrol edin.

Geçiş seçeneklerini uygulama

Eski bir veri ambarı sisteminden Azure Synapse'e geçiş gerçekleştiriyorsanız, göz önünde bulundurmanız gereken bazı sorular şunlardır:

  • Geçiş yapıyor ve mevcut Ayıklama, Dönüştürme ve Yükleme (ETL) işlemlerinde ve veri ambarı tüketiminde mümkün olduğunca az değişiklik yapmak istiyor musunuz?
  • Geçiş yapıyor ancak yol boyunca bazı kapsamlı geliştirmeler yapmak mı istiyorsunuz?
  • Tamamen yeni bir veri analizi ortamı mı oluşturuyorsunuz (bazen yeşil alan projesi olarak da adlandırılır)?

Şimdi, ağrı noktalarınızı dikkate almanız gerekir.

Geçerli ağrı noktalarını belirleme

POC'niz, mevcut sorun noktalarınızı ele almak için olası çözümleri kanıtlamak için kullanım örnekleri içermelidir. Dikkate alınacak bazı sorular şunlardır:

  • Azure Synapse'in geçerli uygulamanızda hangi boşlukları doldurmasını bekliyorsunuz?
  • Hangi yeni iş ihtiyaçlarını desteklemeniz gerekiyor?
  • Hangi hizmet düzeyi sözleşmelerini (SLA) karşılamanız gerekiyor?
  • İş yükleri (ETL, toplu sorgular, analiz, raporlama sorguları veya etkileşimli sorgular gibi) ne olacak?

Ardından, POC başarı ölçütlerinizi ayarlamanız gerekir.

POC başarı ölçütlerini ayarlama

PoC'yi neden yaptığınızı belirleyin ve net hedefler tanımladığınızdan emin olun. PoC'nizden hangi çıkışları istediğinizi ve bunlarla ne yapmayı planladığınızı bilmeniz de önemlidir.

PoC'nin sınırlı bir kavram kümesini hızla kanıtlamak veya test etmek için kısa ve odaklanmış bir çaba olması gerektiğini unutmayın. Kanıtlayacak uzun bir öğe listeniz varsa, bunları birden çok POC'ye bölmek isteyebilirsiniz. POC'lerin aralarında geçitler olabilir, böylece sonraki POC'ye devam edip etmeyeceğinizi belirleyebilirsiniz.

Bazı örnek POC hedefleri şunlardır:

  • Büyük karmaşık raporlama sorgularımızın sorgu performansının yeni SLA'larımıza uygun olacağını bilmemiz gerekir.
  • Etkileşimli kullanıcılarımızın sorgu performansını bilmemiz gerekir.
  • Mevcut ETL süreçlerimizin uygun olup olmadığını ve geliştirmelerin nerede yapılması gerektiğini bilmemiz gerekiyor.
  • ETL çalışma zamanlarımızı ne kadar kısaltıp kısaltamayacağımızı bilmemiz gerekir.
  • Synapse Analytics'in verilerimizin güvenliğini sağlamak için yeterli güvenlik özelliklerine sahip olduğunu bilmemiz gerekir.

Ardından bir test planı oluşturmanız gerekir.

Test planı oluşturma

Hedeflerinizi kullanarak, bu hedefleri desteklemek ve tanımlanan çıkışlarınızı sağlamak için çalıştırılacak belirli testleri belirleyin. Her hedef ve beklenen çıkış için en az bir teste sahip olduğunuzdan emin olmak önemlidir. Ölçülebilir sonuçlar sağlamak için çalıştıracağınız belirli sorguları, raporları, ETL'yi ve diğer işlemleri belirleyin.

Ortaya çıkan tablo yapısı sorularını netleştirmek için birden çok test senaryosu ekleyerek testlerinizi geliştirin.

İyi planlama genellikle etkili bir POC yürütmesi tanımlar. Tüm paydaşların her POC hedefini açıkça belirtilen test çalışmaları ve başarı ölçümleri kümesiyle bağdaştıran yazılı bir test planını kabul etmelerini sağlayın.

Test planlarının çoğu performans ve beklenen kullanıcı deneyimiyle ilgilidir. Aşağıda bir test planı örneği verilmiştir. İş gereksinimlerinizi karşılamak için test planınızı özelleştirmek önemlidir. Test ettiğiniz şeyi açıkça tanımlamak, bu sürecin ilerleyen bölümlerinde kar payı ödeyecektir.

Goal Test etme Beklenen sonuçlar
Büyük karmaşık raporlama sorgularımızın sorgu performansının yeni SLA'larımıza uygun olacağını bilmemiz gerekiyor - Karmaşık sorguların sıralı testi
- Belirtilen SLA'lara karşı karmaşık sorguların eşzamanlılık testi
- A, B ve C sorgularının sırasıyla 10, 13 ve 21 saniye içinde tamamlanması
- 10 eşzamanlı kullanıcıyla A, B ve C sorgularını ortalama 11, 15 ve 23 saniyede tamamlar
Etkileşimli kullanıcılarımızın sorgu performansını bilmemiz gerekiyor - 50 kullanıcılık beklenen eşzamanlılık düzeyinde seçili sorguların eşzamanlılık testi.
- Sonuç kümesi önbelleğe alma ile önceki sorguyu çalıştırın
- 50 eşzamanlı kullanıcıda ortalama yürütme süresinin 10 saniyenin altında olması ve sonuç kümesi önbelleğe alınmaması beklenir
- 50 eşzamanlı kullanıcıda, sonuç kümesi önbelleğe alma ile ortalama yürütme süresinin beş saniyenin altında olması beklenir
Mevcut ETL işlemlerimizin SLA içinde çalıştırılıp çalıştırılamayacağını bilmemiz gerekiyor - Üretim yüklerini taklit etmek için bir veya iki ETL işlemi çalıştırma - Çekirdek olgu tablosuna artımlı olarak yüklemenin 20 dakikadan kısa sürede tamamlanması gerekir (hazırlama ve veri temizleme dahil)
- Boyut işlemenin beş dakikadan kısa sürmesi gerekiyor
Veri ambarı, verilerimizin güvenliğini sağlamak için yeterli güvenlik özelliklerine sahip olduğunu bilmemiz gerekir - Ağ güvenliğini (VNet ve özel uç noktalar), erişim denetimini (satır düzeyi güvenlik, dinamik veri maskeleme) gözden geçirin ve etkinleştirin - Verilerin kiracımızdan asla ayrılmadığını kanıtlayın.
- Müşteri içeriğinin kolayca güvenli hale getirildiğinden emin olun

Ardından POC veri kümesini tanımlamanız ve doğrulamanız gerekir.

POC veri kümesini tanımlama ve doğrulama

Kapsamı belirlenmiş testleri kullanarak artık bu testleri Azure Synapse'te yürütmek için gereken veri kümesini belirleyebilirsiniz. Aşağıdakileri göz önünde bulundurarak veri kümenizi gözden geçirin:

  • Veri kümesinin içerik, karmaşıklık ve ölçek açısından üretim veri kümenizi yeterince temsil ettiğini doğrulayın.
  • Temsili performans elde etmeyebileceği için çok küçük (1 TB'tan az) bir veri kümesi kullanmayın.
  • POC tam veri geçişini tamamlamaya yönelik olmadığından çok büyük bir veri kümesi kullanmayın.
  • Her tablo için dağıtım desenini, dizin oluşturma seçeneğini ve bölümleyi belirleyin. Dağıtım, dizin oluşturma veya bölümleme ile ilgili herhangi bir soru varsa, bunları yanıtlamak için POC'nize testler ekleyin. Bazı tablolar için birden fazla dağıtım seçeneğini veya dizin oluşturma seçeneğini test etmek isteyebileceğinizi unutmayın.
  • POC veri kümesini buluta taşımaya yönelik engelleyiciler için işletme sahiplerine danışın.
  • Güvenlik veya gizlilikle ilgili tüm endişeleri belirleyin.

Önemli

Verileri buluta taşımadan önce işletme sahiplerine engelleyicileri denetlediğinizden emin olun. Verileri buluta taşımadan önce yapılması gereken güvenlik veya gizlilik endişelerini veya veri gizleme gereksinimlerini belirleyin.

Ardından, uzman ekibini bir araya getirmeniz gerekir.

Ekibi bir araya getirme

Ekip üyelerini ve POC'nizi destekleme taahhüdünü belirleyin. Ekip üyeleri şunları içermelidir:

  • POC projesini çalıştırmak için bir proje yöneticisi.
  • Gereksinimleri ve sonuçları denetlemek için bir iş temsilcisi.
  • POC veri kümesinin verilerini kaynak olarak almak için bir uygulama veri uzmanı.
  • Azure Synapse uzmanı.
  • POC testlerini iyileştirmek için uzman bir danışman.
  • Belirli POC proje görevleri için gerekli olacak ancak süresi boyunca gerekli olmayan kişiler. Bu destekleyici kaynaklar arasında ağ yöneticileri, Azure yöneticileri veya Microsoft Entra yöneticileri yer alabilir.

Bahşiş

POC'nize yardımcı olması için bir uzman danışmanıyla etkileşime geçilmesi önerilir. Microsoft'un iş ortağı topluluğu , Azure Synapse'i değerlendirmenize, değerlendirmenize veya uygulamanıza yardımcı olabilecek uzman danışmanların küresel kullanılabilirliğine sahiptir.

Artık tamamen hazır olduğuna göre, POC'nizi uygulamaya koymanın zamanı geldi.

POC'yi uygulamaya alma

Aşağıdakileri göz önünde bulundurmak önemlidir:

  • HERHANGI bir üretim projesinin disiplini ve titizliğiyle POC projenizi uygulayın.
  • POC'yi plana göre çalıştırın.
  • POC kapsamınızın büyümesini veya değişmesini önlemek için bir değişiklik isteği işlemine sahip olun.

Testlerin başlayabilmesi için önce test ortamını ayarlamanız gerekir. Dört aşama içerir:

  1. Kurulum
  2. Veri yükleme
  3. Sorgulama
  4. Katma değerli testler

Image shows the four test environment stages: Setup, Data loading, Querying, and Value added tests.

Kurulum

Aşağıdaki adımları izleyerek Azure Synapse'te poc ayarlayabilirsiniz:

  1. Synapse çalışma alanı sağlamak ve POC test planına göre depolama ve izinler ayarlamak için bu hızlı başlangıcı kullanın.
  2. Synapse çalışma alanına ayrılmış bir SQL havuzu eklemek için bu hızlı başlangıcı kullanın.
  3. Ağ ve güvenliği gereksinimlerinize göre ayarlayın.
  4. POC ekip üyelerine uygun erişim izni verin. Ayrılmış SQL havuzlarına erişmek için kimlik doğrulaması ve yetkilendirme hakkındaki bu makaleye bakın.

Bahşiş

DW500c hizmet düzeyini (veya altında) kullanarak kod ve birim testi geliştirmenizi öneririz. DW1000c hizmet düzeyini (veya üzerini) kullanarak yük ve performans testleri çalıştırmanızı öneririz. İşlem faturalamasını durdurmak için ayrılmış SQL havuzunun işlemini istediğiniz zaman duraklatabilirsiniz ve bu da maliyet tasarrufu sağlar.

Veri yükleme

Ayrılmış SQL havuzunu ayarladıktan sonra verileri yüklemek için şu adımları izleyebilirsiniz:

  1. Verileri Azure Blob Depolama yükleyin. POC için, yerel olarak yedekli depolama (LRS) ile genel amaçlı bir V2 depolama hesabı kullanmanızı öneririz. Verileri Azure Blob Depolama geçirmek için çeşitli araçlar olsa da, en kolay yol dosyaları depolama kapsayıcısına kopyalayabilen Azure Depolama Gezgini kullanmaktır.
  2. Verileri ayrılmış SQL havuzuna yükleyin. Azure Synapse iki T-SQL yükleme yöntemini destekler: PolyBase ve COPY deyimi. İki yöntemden birini kullanmak üzere ayrılmış SQL havuzuna bağlanmak için SSMS'yi kullanabilirsiniz.

Ayrılmış SQL havuzuna ilk kez veri yüklediğinizde, hangi dağıtım desenini ve dizin seçeneğini kullanacağınızı göz önünde bulundurmanız gerekir. Ayrılmış SQL havuzu her ikisini de destekler ancak varsayılan ayarlara güvenmek en iyi yöntemdir. Varsayılan ayarlar hepsini bir kez deneme dağıtımı ve kümelenmiş columnstore dizini kullanır. Gerekirse, bu ayarları daha sonra bu makalenin devamında açıklanan şekilde ayarlayabilirsiniz.

Aşağıdaki örnekte COPY yükleme yöntemi gösterilmektedir:

--Note when specifying the column list, input field numbers start from 1
COPY INTO
    test_1 (Col_1 default 'myStringDefault' 1, Col_2 default 1 3)
FROM
    'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/'
WITH (
    FILE_TYPE = 'CSV',
    CREDENTIAL = (IDENTITY = 'Storage Account Key' SECRET = '<Your_Account_Key>'),
    FIELDQUOTE = '"',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '0x0A',
    ENCODING = 'UTF8',
    FIRSTROW = 2
);

Sorgulama

Veri ambarının birincil amacı, veri ambarının sorgulanması gereken analiz gerçekleştirmektir. Çoğu POC, önce sıralı olarak ve sonra eşzamanlı olarak veri ambarında az sayıda temsili sorgu çalıştırarak başlar. Test planınızda her iki yaklaşımı da tanımlamanız gerekir.

Sıralı sorgu testleri

SSMS'de sıralı sorgu testlerini çalıştırmak kolaydır. Yeterince büyük bir kaynak sınıfına sahip bir kullanıcı kullanarak bu testleri çalıştırmak önemlidir. Kaynak sınıfı, ayrılmış SQL havuzunda sorgu yürütme için işlem kaynaklarını ve eşzamanlılığı yöneten önceden belirlenmiş bir kaynak sınırıdır. Basit sorgular için önceden tanımlanmış staticrc20 kaynak sınıfını kullanmanızı öneririz. Daha karmaşık sorgular için önceden tanımlanmış staticrc40 kaynak sınıfını kullanmanızı öneririz.

Aşağıdaki ilk sorgunun, sorguyu izlemeye yönelik bir mekanizma sağlamak için bir sorgu etiketi kullandığına dikkat edin. İkinci sorgu, etikete sys.dm_pdw_exec_requests göre arama yapmak için dinamik yönetim görünümünü kullanır.

/* Use the OPTION(LABEL = '') Syntax to add a query label to track the query in DMVs */
SELECT TOP (1000)
    *
FROM
    [dbo].[Date]
OPTION (LABEL = 'Test1');

/* Use sys.dm_pdw_exec_requests to determine query execution duration (ms) */
SELECT
    Total_elapsed_time AS [Elapsed_Time_ms],
    [label]
FROM
    sys.dm_pdw_exec_requests
WHERE
    [label] = 'Test1';

Eşzamanlı sorgu testleri

Sıralı sorgu performansını kaydettikten sonra birden çok sorguyu eşzamanlı olarak çalıştırabilirsiniz. Bu şekilde, ayrılmış SQL havuzunda çalışan bir iş zekası iş yükünün benzetimini yapabilirsiniz. Bu testi çalıştırmanın en kolay yolu bir stres testi aracı indirmektir. En popüler araç, üçüncü taraf bir açık kaynak aracı olan Apache JMeter'dir.

Araç belirli bir eşzamanlılık düzeyi için en düşük, en yüksek ve ortanca sorgu sürelerini bildirir. Örneğin, 100 eşzamanlı sorgu oluşturan bir iş zekası iş yükünün benzetimini yapmak istediğinizi varsayalım. JMeter'i bu 100 eşzamanlı sorguyu döngüde çalıştıracak şekilde ayarlayabilir ve ardından kararlı durum yürütmesini gözden geçirebilirsiniz. Bu özelliğin uygunluğunu değerlendirmek için sonuç kümesi önbelleği açık veya kapalı olarak yapılabilir.

Sonuçlarınızı belgelemeye özen gösterin. Aşağıda bazı sonuçlara bir örnek verilmişti:

Eşzamanlılık # Sorgular çalıştırılır DWU En az süre En uzun süre (S) Ortanca süreler
100 1,000 5.000 3 10 5
50 5.000 5.000 3 6 4

Karma iş yükü testleri

Karma iş yükü testi, eşzamanlı sorgu testlerinin bir uzantısıdır. İş yükü karışımına bir veri yükleme işlemi ekleyerek iş yükü gerçek bir üretim iş yükünün benzetimini daha iyi yapacaktır.

Verileri iyileştirme

Azure Synapse'te çalışan sorgu iş yüküne bağlı olarak, veri ambarınızın dağıtımlarını ve dizinlerini iyileştirmeniz ve testleri yeniden çalıştırmanız gerekebilir. Daha fazla bilgi için bkz . Azure Synapse Analytics'te ayrılmış SQL havuzları için en iyi yöntemler.

Kurulum sırasında görülen en yaygın hatalar şunlardır:

  • Büyük sorgular çok düşük bir kaynak sınıfıyla çalışır.
  • Ayrılmış SQL havuzu hizmet düzeyi DWU'ları iş yükü için çok düşük.
  • Büyük tablolar karma dağıtım gerektirir.

Sorgu performansını geliştirmek için şunları yapabilirsiniz:

Katma değerli testler

Sorgu performansı testi tamamlandıktan sonra, hedeflenen kullanım örneklerinizi karşılayıp karşılamadığını doğrulamak için belirli özellikleri test etmek iyi bir zaman. Bu özellikler şunları içerir:

Son olarak, POC sonuçlarınızı yorumlamanız gerekir.

POC sonuçlarını yorumlama

Veri ambarınız için test sonuçlarını aldıktan sonra bu verileri yorumlamak önemlidir. Kullanabileceğiniz yaygın bir yaklaşım, çalıştırmaları fiyat/performans açısından karşılaştırmaktır. Basitçe söylemek gerekirse, fiyat/performans, DWU veya hizmet donanımı başına fiyat farklarını kaldırır ve her performans testi için tek bir karşılaştırılabilir sayı sağlar.

Bir örnek aşağıda verilmiştir:

Test etme Test süresi DWU DWU için $/hr Test maliyeti
Test 1 10 dk 1000 12 abd doları/saat 2 ABD doları
Test 2 30 dk 500 $6/hr 3 ABD doları

Bu örnek, test çalıştırması başına 3 ABD doları ile karşılaştırıldığında test çalıştırması başına 2 ABD doları karşılığında test 1'in DWU1000 daha uygun maliyetli olduğunu görmeyi kolaylaştırır.

Dekont

Bu metodolojiyi, bir POC'deki satıcılar arasında sonuçları karşılaştırmak için de kullanabilirsiniz.

Özetle, tüm POC testlerini tamamladıktan sonra sonuçları değerlendirmeye hazır olursunuz. POC hedeflerinin karşılanıp karşılanmadığını ve istenen çıkışların toplanıp toplanmadığını değerlendirerek başlayın. Ek testin nerede garanti edildiğine ve sorulan ek sorulara dikkat edin.

Sonraki adımlar