Dağıtık Sorgu İşleme
Dağıtık sorgu işleme, birçok düğüme yayılmış veriler üzerindeki sorguları değerlendirmekte, hız için paralellikten yararlanmakta ve dağıtık bir ortamda maliyete hakim olan ağ iletişimini en aza indirmektedir.
Tanım
Dağıtık sorgu işleme, birden çok konumda veya bölümde bulunan veriler üzerindeki bir sorgunun ayrıştırılması, optimize edilmesi ve yürütülmesidir; bu süreçte planın düğümler arasında işi koordine etmesi ve hem hesaplamayı hem de düğümler arası veri transferini en aza indirmesi gerekmektedir.
Kapsam
Bu konu, sorguların bölümlenmiş ve çoğaltılmış veriler üzerinde nasıl çalıştığını; paralellik biçimlerini (bölümlenmiş, ardışık ve bağımsız); yeniden bölümleme (repartition) ve yayın (broadcast) birleştirmeleri gibi paralel ve dağıtık birleştirme stratejilerini; yarı birleştirme (semijoin) gibi iletişimi azaltan teknikleri; ve ağ transferi ile veri yerleşimini hesaba katmak için maliyet tabanlı optimizasyonun genişletilmesini kapsamaktadır. Mantıksal bir sorgunun düğümler arasında nasıl ayrıştırıldığını ve planlandığını ele almaktadır. Veri yerleştirme kararlarını ve dağıtık işlemler için onay protokollerini hariç tutmaktadır.
Temel sorular
- Dağıtık bir plan hangi paralellik biçimlerinden (bölümlenmiş, ardışık, bağımsız) yararlanabilir?
- Girdiler düğümler arasında bölümlendiğinde birleştirmeler nasıl yürütülür?
- Yarı birleştirme (semijoin) konumlar arasında aktarılan veri miktarını nasıl azaltır?
- Ağ maliyeti baskın olduğunda optimizasyon nasıl değişir?
- Veri yerleşimi hangi planın en ucuz olduğunu nasıl etkiler?
Anahtar kavramlar
- bölümlenmiş paralellik
- ardışık paralellik
- bağımsız paralellik
- yeniden bölümleme (karıştırma) birleştirmesi
- yayın birleştirmesi
- yarı birleştirme (semijoin) azaltması
- iletişim maliyeti
- veri yerelleşimi
Temel kuramlar
- Sorgu yürütmede paralellik
- Dağıtık planlar, yanıt süresini azaltmak için bölümlenmiş paralellikten (aynı operatör ayrık veri bölümlerinde çalışır), ardışık paralellikten (bir zincirdeki operatörler eşzamanlı olarak çalışır) ve bağımsız paralellikten (ilişkisiz alt planlar aynı anda çalışır) yararlanmaktadır.
- Dağıtık ve paralel birleştirmeler
- Bölümlenmiş veriler üzerindeki birleştirmeler, yeniden bölümlemeyi (her iki girdiyi de birleştirme anahtarına göre karıştırma) veya küçük bir girdiyi tüm düğümlere yayınlamayı kullanmaktadır; bunlar arasında seçim, ilişki boyutlarına ve mevcut bölümlemeye bağlıdır.
- Yarı birleştirme (semijoin) ve iletişim minimizasyonu
- Yarı birleştirme (semijoin), bir ilişkiyi ağ üzerinden göndermeden önce yalnızca eşleşebilecek demetlere indirgemekte, böylece iletişim maliyetini düşürmektedir; bu teknik, SDD-1 gibi erken dönem dağıtık sorgu işlemcileri için merkezi bir öneme sahipti.
Klinik önem
Dağıtık sorgu işleme, analitik sistemlerin tek bir makinenin tutabileceğinden çok daha büyük veriler üzerindeki sorguları yanıtlamasını sağlayan şeydir ve ağ trafiğini en aza indirme ile paralelliği en üst düzeye çıkarma teknikleri, büyük ölçekli veri ambarlarının ve sorgu motorlarının hızını doğrudan belirlemektedir.
Tarihçe
Erken dönem dağıtık sorgu işleme, 1980 civarında yarı birleştirme (semijoin) tabanlı iletişim azaltmayı tanıtan SDD-1 sisteminde öncülük edilmiştir. DeWitt ve Gray tarafından incelenen 1980'ler ve 1990'ların paylaşımsız (shared-nothing) paralel veritabanları, yeniden bölümleme (repartition) ve yayın (broadcast) birleştirmelerini ve modern dağıtık sorgu motorlarının hala kullandığı paralellik taksonomisini oluşturmuştur.
Öne çıkan isimler
- Philip Bernstein
- David DeWitt
- M. Tamer Özsu
- Patrick Valduriez
İlgili konular
Temel eserler
- bernstein1981
- dewitt1992
- ozsu2011
Sıkça sorulan sorular
- Dağıtık sorgu işlemede ağ maliyeti neden bu kadar önemlidir?
- Dağıtık bir veritabanında en yavaş ve en çok çekişmeli kaynak genellikle düğümler arasındaki ağdır. Büyük ara sonuçları düğümler arasında göndermek, toplam sorgu süresine hakim olabilmektedir; bu nedenle optimize ediciler ve yarı birleştirme (semijoin) gibi teknikler, ek yerel hesaplama maliyetine rağmen mümkün olduğunca az veri aktarmaya odaklanmaktadır.
- Yayın (broadcast) birleştirmesi, yeniden bölümleme (repartition) birleştirmesi yerine ne zaman kullanılır?
- Yayın (broadcast) birleştirmesi, bir girdinin bir kopyasını her düğüme göndermekte ve bu girdi küçük olduğunda verimli olmaktadır. Yeniden bölümleme (karıştırma) birleştirmesi, her iki girdiyi de birleştirme anahtarına göre düğümler arasında yeniden dağıtmakta ve her iki ilişki de büyük olduğunda kullanılmaktadır. Optimize edici, seçim yapmak için yayınlamanın iletişim maliyetini karıştırmanın maliyetiyle karşılaştırmaktadır.