Snowflake warehouse boyutlandırma: doğru boyutu ölçerek bulmak
Beceri rehberi

Snowflake warehouse boyutlandırma: doğru boyutu ölçerek bulmak

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 6 dk okuma

Snowflake sanal ambar boyutunu ölçerek seçme yöntemi: büyütme ve çoğaltma farkı, otomatik askıya alma, kuyruk ve taşma belirtileri, maliyet dengesi örneklerle.

Warehouse ne yapar, boyut neyi değiştirir?

Snowflake'te veri depolama ile hesaplama ayrıdır. Veriler merkezî depolamada durur; sorguları çalıştıran işlem gücü ise sanal ambarlardır (virtual warehouse). Bir warehouse çalıştığı sürece kredi tüketir, durdurulduğunda tüketmez. Boyut, warehouse'un sahip olduğu işlem kaynağı miktarını belirler: X-Small'dan başlayıp büyüyen bir dizi vardır ve her bir üst boyut, bir alttakinin yaklaşık katı kadar kaynağa sahiptir. Saatlik kredi tüketimi de boyutla birlikte artar.

Bu yapının önemli sonucu şudur: büyük warehouse her zaman daha pahalı olmaz. Bir sorgu büyük warehouse'ta kısa sürede biterse, toplam kredi tüketimi küçük warehouse'ta uzun sürede bitene yakın olabilir. Bazı sorgular için büyütmek hem hızlı hem ekonomik olur; bazıları için ise yalnızca maliyeti artırır. Doğru boyut tahminle değil, ölçümle bulunur.

İki farklı sorunu karıştırmamak gerekir: tek bir sorgunun yavaş olması ve çok sayıda sorgunun aynı anda gelmesi. İlki için warehouse'u büyütmek, ikincisi için kümeleri çoğaltmak gerekir.

Büyütmek (scale up) ile çoğaltmak (scale out) arasındaki fark

Büyütmek, aynı warehouse'un boyutunu artırmaktır. Tek tek ağır sorgular, büyük birleştirmeler ve sıralamalar için uygundur; daha fazla kaynak bu sorgunun süresini kısaltır.

Çoğaltmak, çok kümeli (multi-cluster) warehouse ayarıyla aynı boyutta birden fazla küme çalıştırmaktır. Amaç tek sorguyu hızlandırmak değil, eşzamanlı sorguların kuyrukta beklemesini önlemektir. Çok sayıda analistin aynı anda panoya baktığı sabah saatleri bunun tipik örneğidir. Her sorgu hafiftir ama sayıları fazladır. Çok kümeli warehouse özelliğinin hangi Snowflake sürümünde sunulduğunu resmî belgeden doğrulayın; bu özellik sürüme bağlıdır.

Karar için basit bir tanı: tek sorgu uzun sürüyor ve sorgu profilinde diske taşma görünüyorsa büyütün. Sorgular çalışırken sürekli kuyrukta bekliyorsa ve her biri tek başına hızlıysa, kümeleri çoğaltın ya da yükü ayrı warehouse'lara bölün.

Boyutu ölçerek seçmek: adım adım yöntem

Gerçekçi bir boyutlandırma çalışması şu adımlarla yürür: • Temsilî sorguları seçin: raporun en yavaş ve en sık çalışan sorguları. • Önbelleğin etkisini ayırın. Aynı sorgu ikinci kez çalıştığında sonuç önbelleğinden gelebilir. Karşılaştırmada önbelleği kapatan oturum ayarını kullanın ya da farklı parametrelerle çalıştırın. • En küçük makul boyutta çalıştırın, süreyi ve sorgu profilini kaydedin. • Bir üst boyuta geçip tekrarlayın. Süre belirgin biçimde kısalıyorsa kaynak darboğazdı; çok az kısalıyorsa büyütmek işe yaramıyor, sorun başka yerde (kötü yazılmış sorgu, kümeleme eksikliği). • Süre ve kredi tüketimini birlikte değerlendirin. Süre yarıya inip tüketim aynı kalıyorsa büyük boyut açıkça kazançlıdır. • Sonucu bir tabloya yazın ve karar notu bırakın.

Bir warehouse'u yanlış boyutla yıllarca çalıştırmak çok yaygındır. Çünkü ilk kurulumda 'bir orta boyut' seçilir ve bir daha bakılmaz. Boyutlandırmayı periyodik gözden geçirme maddesine çevirin.

Sorgu profilinde ne arayacaksınız?

Sorgu profili (Query Profile), bir sorgunun hangi adımda ne kadar zaman harcadığını gösterir. Boyutlandırma için bakılacak işaretler: • Yerel veya uzak diske taşma (spilling): işlem belleğe sığmıyor demektir. Bu, büyütmenin gerçekten faydalı olacağının en güçlü işaretidir. • Çok sayıda mikro bölüm taranıyor: tarama sorgunun büyük kısmını oluşturuyorsa sorun boyut değil, veri düzeni ya da filtre yazımıdır. Kümeleme anahtarı, filtre sütunları, gereksiz sütun seçimi gözden geçirilmelidir. • Kuyrukta bekleme: sorgunun çalışmadan önce harcadığı süre uzunsa sorun eşzamanlılıktır; büyütmek çözmez, çoğaltmak ya da ayırmak gerekir. • Önbellekten okuma: sorguların büyük kısmı önbellekten geliyorsa warehouse'un sık sık askıya alınması önbelleği boşaltabilir; otomatik askıya alma süresi bu açıdan düşünülmelidir.

Bu işaretleri okumayı öğrenmek, 'yavaşsa büyüt' refleksinden kurtarır. Sorgu profili ayrıca yanlış birleştirme koşulları gibi mantık hatalarını da görünür kılar; bazı yavaş sorgular büyütmek yerine yeniden yazılarak hızlanır.

Otomatik askıya alma, otomatik devam ve iş yükü ayrımı

Warehouse maliyetinin büyük kısmı, boşta bekleyen ama çalışır durumda olan warehouse'lardan gelir. Bunu iki ayar yönetir: • AUTO_SUSPEND: warehouse'un boşta kaldığında kaç saniye sonra durdurulacağı. Çok uzun tutulursa boşta kredi yanar, çok kısa tutulursa önbellek sık sık boşalır ve her yeniden başlatma bir bekleme getirir. • AUTO_RESUME: bir sorgu geldiğinde warehouse'un kendiliğinden başlaması. Genellikle açık bırakılır.

Örnek bir tanım:

CREATE WAREHOUSE rapor_wh WAREHOUSE_SIZE = 'XSMALL' AUTO_SUSPEND = <saniye> AUTO_RESUME = TRUE;

Bir warehouse'u yeniden boyutlandırmak için ALTER WAREHOUSE komutu kullanılır; yeni boyut sonraki sorgulardan itibaren geçerli olur, çalışan sorgular etkilenmez.

İş yükü ayrımı en etkili boyutlandırma yöntemlerinden biridir. Veri yükleme, dönüştürme, analist sorguları ve pano sorgularını aynı warehouse'ta çalıştırmak, her birinin gereksinimini bir ortak paydaya zorlar. Ayrı warehouse'larla her iş yükü kendi boyutunda çalışır ve maliyet iş yüküne göre izlenebilir hâle gelir. Dönüştürme işi için büyük ama kısa süreli, pano için küçük ama sürekli açık bir warehouse sık görülen düzendir.

Maliyeti kontrol altında tutmak

Boyutlandırma kararı maliyet yönetişimiyle birlikte düşünülmelidir. Şu araçlar öne çıkar: • Kaynak izleyiciler (resource monitors): belirli bir kredi kotası aşıldığında uyarı verir ya da warehouse'u durdurur. Kontrolsüz bir sorgunun büyük faturaya yol açmasını önler. • Sorgu zaman aşımı: bir sorgunun çalışabileceği azami süreyi sınırlar. Hatalı bir birleştirme sonsuz çalışmasın diye kullanılır. • Kullanım izleme: hesap kullanım şemasındaki görünümlerle hangi warehouse'un ne kadar kredi tükettiği, hangi kullanıcının ve sorgunun payı olduğu izlenir.

Örnek senaryo: bir ekip, panolar yavaş diye warehouse'u birkaç boyut büyütüyor. Maliyet artıyor ama pano hâlâ yavaş. Sorgu profili incelendiğinde asıl sorunun her açılışta tüm tabloyu tarayan bir filtresiz sorgu olduğu görülüyor. Sorgu düzeltilince küçük warehouse yeterli oluyor. Bu örnek, boyutlandırmadan önce sorgu kalitesine bakmanın neden gerekli olduğunu gösterir.

Güncel kredi birim fiyatları ve edition farkları için Snowflake'in resmî fiyat sayfasına bakın; bu sayfada fiyat verilmez.

Sık hatalar ve kontrol listesi

  • Tek bir büyük warehouse'ta her şeyi çalıştırmak: iş yüklerini ayırın.
  • Auto-suspend'i kapalı bırakmak: boşta yanan kredinin en yaygın nedenidir.
  • Boyutu yalnızca ilk sorguya göre seçmek: önbellek sonuçları yanıltır.
  • Kuyruk sorununu büyüterek çözmeye çalışmak: eşzamanlılık için kümeleri çoğaltın.
  • Hiç gözden geçirmemek: iş yükü değişir, boyut da yeniden değerlendirilmelidir.
  • Yeni sorgu yazarken kullanılan geliştirme warehouse'unun üretim boyutunda olması.

Kontrol listesi: her warehouse için amaç, sahip, boyut gerekçesi, auto-suspend ayarı ve kaynak izleyici tanımlı mı? Dönemsel bir kullanım raporunda en çok tüketen birkaç warehouse'u inceleyin. Bu alışkanlık, Snowflake maliyetini bütçeye bağlamanın en kolay yoludur.

Bu beceriyi Mindset programlarında nerede çalışırsınız

Warehouse yönetimi ve boyutlandırma, Snowflake İleri Seviye: Performans ve Maliyet Optimizasyonu eğitiminin 'Warehouse Boyutlandırma ve Eşzamanlılık' ve 'Maliyet Yönetişimi ve Bitirme Çalışması' modüllerinin konusudur. Snowflake ile Veri Sorgulama eğitiminin 'Virtual Warehouse Yönetimi ve Performans' modülü ise temel kavramları verir. Veri mühendisleri, platform yöneticileri ve bulut maliyetinden sorumlu FinOps ekipleri için uygundur.

Kurumsal ekiplerde, farklı departmanların aynı Snowflake hesabını paylaştığı durumlarda iş yükü ayrımı ve maliyet sahipliği konusunu netleştirmek isteyen platform ekipleri için işe yarar.

İlgili Mindset programı

Snowflake İleri Seviye: Performans ve Maliyet Optimizasyonu

Sık sorulanlar

Sık sorulan sorular

Warehouse'u büyütmek sorguyu her zaman hızlandırır mı?

Hayır. Sorgu kaynak darboğazındaysa, özellikle diske taşma varsa hızlanır. Sorun veri düzeni, kötü filtre ya da kuyrukta bekleme ise büyütmek çok az fark yaratır. Sorgu profilini okuyup nedeni belirledikten sonra karar verin.

Çok kümeli warehouse ne zaman gerekir?

Çok sayıda kullanıcı eşzamanlı sorgu gönderdiğinde ve sorgular kuyrukta beklediğinde. Her sorgu tek başına hızlıysa, ek küme eşzamanlı yükü karşılar. Bu özelliğin kullanılabilirliği Snowflake sürümüne bağlıdır; resmî belgeden kontrol edin.

Auto-suspend süresi ne kadar olmalı?

Tek bir doğru değer yoktur. Kısa süre boşta krediyi azaltır ama önbelleği sık boşaltır ve yeniden başlatma gecikmesi getirir. Aralıklı kullanılan geliştirme warehouse'larında kısa, sürekli sorgu alan pano warehouse'larında daha uzun süre tercih edilir; kullanım düzenine bakarak ayarlayın.

Boyutu değiştirmek çalışan sorguları etkiler mi?

Çalışan sorgular mevcut kaynaklarla tamamlanır. Yeni boyut, sonradan başlayan sorgulardan itibaren geçerli olur; yoğun saatte warehouse'u küçültmek bu yüzden yeni sorguların daha yavaş çalışmasına yol açabilir. Karşılaştırma için aynı sorguyu önce eski, sonra yeni boyutta çalıştırıp süresini ve tüketilen krediyi yan yana koyun. Bu yüzden boyutlandırma denemelerinde değişiklikten sonra yeni sorgularla ölçüm yapmak gerekir.

Snowflake Warehouse Boyutu Nasıl Seçilir