Gerçekleştirilmiş Görünüm nedir?
Gerçekleştirilmiş görünüm, daha hızlı veri alımı için birden çok mevcut tablodan gelen verilerin birleştirilmesiyle oluşturulmuş yinelenen bir veri tablosudur. Örneğin, müşteri ve ürün verileri için iki temel tabloya sahip bir perakende uygulaması düşünün. Bu uygulamada müşteri tablosu, müşterinin adı ve iletişim ayrıntıları gibi bilgileri, ürün tablosu ise ürün ayrıntı ve maliyetleri hakkındaki bilgileri içersin. Müşteri tablosu, her bir münferit müşterinin satın aldığı ürünlerin ürün ID'lerini depoluyor olsun. Bu durumda belirli müşteriler tarafından satın alınan ürünlerin ürün ayrıntılarını elde etmek için her iki tabloya da çapraz başvuru yapmanız gerekir. Bunun yerine, müşteri adlarını ve ilişkili ürün ayrıntılarını tek bir geçici tabloda depolayan bir gerçekleştirilmiş görünüm oluşturabilirsiniz. Bu gerçekleştirilmiş görünümde, geliştirilmiş veri okuma performansı için dizin yapıları kurabilirsiniz.
Gerçekleştirilmiş görünümlerin avantajları nelerdir?
Gerçekleştirilmiş görünümler, ilgili verilere erişmenin hızlı ve verimli bir yöntemidir. Veri kullanımı yoğun uygulamalarda, sorgu optimizasyonuna yardımcı olur. Aşağıda bazı önemli avantajları inceliyoruz.
Hız
Okuma sorguları, gerekli bilgileri toplamak için farklı tablolar ve veri satırları arasında tarama yapar. Gerçekleştirilmiş görünümler sayesinde, her seferinde yeni bilgileri işlemek yerine, verileri doğrudan yeni görünümünüzden sorgulayabilirsiniz. Sorgunuz ne kadar karmaşıksa gerçekleştirilmiş görünüm kullanarak o kadar çok zaman kazanırsınız.
Veri depolama kolaylığı
Gerçekleştirilmiş görünümler, karmaşık sorgu mantığını tek bir tabloda birleştirmenize olanak tanır. Bu, geliştiriciler açısından veri dönüşümlerini ve kod bakımını kolaylaştırır. Ayrıca, karmaşık sorguları daha yönetilebilir hale getirmeye yardımcı olabilir. Görünümde çoğaltmanız gereken veri miktarını azaltmak için veri alt kümelemeyi de kullanabilirsiniz.
Tutarlılık
Gerçekleştirilmiş görünümler, belirli bir anda yakalanan verilerin tutarlı bir görünümünü sağlar. Gerçekleştirilmiş görünümlerde okuma tutarlılığını yapılandırabilir ve eş zamanlılık denetiminin gerekli olduğu çok kullanıcılı ortamlarda bile verileri erişilebilir hale getirebilirsiniz.
Ayrıca gerçekleştirilmiş görünümler, kaynak veriler değişse veya silinse bile veri erişimi sağlar. Zamanla bu, gerçekleştirilmiş görünümleri zamana bağlı veri anlık yedeklerini raporlamak için kullanabileceğiniz anlamına gelir. Kaynak tablolardan izolasyon düzeyi, verileriniz arasında daha yüksek derecede tutarlılık olmasını sağlar.
Geliştirilmiş erişim denetimi
Belirli verilere kimlerin erişimi olduğunu kontrol etmek için, gerçekleştirilmiş görünüm kullanabilirsiniz. Kaynak tablolara erişim izni vermeden kullanıcılar için bilgileri filtreleyebilirsiniz. Kimin hangi verilere erişimi olduğunu, bunların ne kadarını görebileceğini ve ne kadarıyla etkileşime girebileceğini kontrol etmek istiyorsanız bu yaklaşım kullanışlıdır.
Gerçekleştirilmiş görünümlerin kullanım durumları nelerdir?
Birçok farklı senaryoda, gerçekleştirilmiş görünümlerden yararlanabilirsiniz.
Filtrelenmiş verileri dağıtın
Son verileri uzak bir iş gücü gibi birçok konuma dağıtmanız gerekiyorsa gerçekleştirilmiş görünümler size yardımcı olur. Gerçekleştirilmiş görünümleri kullanarak verileri çoğaltın ve birçok siteye dağıtın. Verilere erişmesi gereken kişiler, coğrafi olarak kendilerine en yakın çoğaltılmış veri deposuyla etkileşime girer.
Bu sistem, eş zamanlılık sağlar ve ağ yükünü azaltır. Salt okunur veritabanları için etkili bir yaklaşımdır.
Zaman serisi verilerini analiz edin
Gerçekleştirilmiş görünümler, veri kümelerinin zaman damgalı anlık yedeklerini sağlar. Böylece zaman içindeki bilgi değişikliklerini modelleyebilirsiniz. Aylık veya haftalık özetler gibi önceden işlenmiş veri toplamalarını depolayabilirsiniz. Bu kullanımlar, iş zekası ve raporlama platformları için yararlıdır.
Uzaktan veri etkileşimi
Dağıtılmış veritabanı sistemlerinde, uzak sunuculardaki verileri içeren sorguları optimize etmek için, gerçekleştirilmiş görünümleri kullanabilirsiniz. Uzak bir kaynaktan tekrar tekrar veri getirmek yerine, verileri getirip yerel bir gerçekleştirilmiş görünümde depolayabilirsiniz. Bu, ağ iletişimi ihtiyacını azaltır ve performansı artırır.
Örneğin, harici bir veritabanından veya bir API aracılığıyla veri alırsanız gerçekleştirilmiş görünüm bunları birleştirir ve işlenmesine yardımcı olur.
Periyodik toplu işleme
Gerçekleştirilmiş görünümler, periyodik toplu işlemenin gerekli olduğu durumlarda yararlıdır. Örneğin, bir finans kurumu gün sonu bakiyelerini ve faiz hesaplamalarını saklamak için gerçekleştirilmiş görünümleri kullanabilir. Veya her iş gününün sonunda yenilenebilen portföy performansı özetlerini saklayabilir.
Gerçekleştirilmiş görünümlerin işleyiş şekli nedir?
Gerçekleştirilmiş görünümler, belirli bir sorgunun sonuçlarını önceden işleyerek ve veritabanında fiziksel bir tablo halinde depolayarak çalışır. Önceden işlemeyi, veritabanı düzenli aralıklarla gerçekleştirir veya kullanıcılar belirli olaylarla tetikleyebilir. Yöneticiler, istenen amacı yerine getirmeye devam ettiklerinden emin olmak için gerçekleştirilmiş görünümlerin performansını ve kaynak kullanımını izler.
Burada, gerçekleştirilmiş görünümlerin işleyiş şekline genel bir bakış yer almaktadır.
Gerçekleştirilmiş görünüm oluşturun
Gerçekleştirilmiş görünüm oluşturmak için bir veya daha fazla kaynak tablodan istenen verileri alan bir sorgu tanımlayın. Bu sorgu; filtreleme, toplama, birleştirme ve gerekirse diğer işlemleri içerebilir.
Veritabanı başlangıçta, tanımlanan sorguyu kaynak verilerde çalıştırarak gerçekleştirilmiş görünümü doldurur. Sorgunun sonucu, veritabanında fiziksel bir tablo olarak depolanır ve bu tablo gerçekleştirilmiş görünümü temsil eder.
Gerçekleştirilmiş görünümü güncelleyin
Gerçekleştirilmiş görünümdeki verilerin, kaynak tablolardaki temel verilerde yapılan değişiklikleri yansıtacak şekilde periyodik olarak güncellenmesi gerekir. Veri yenileme sıklığı, kullanım durumuna ve gereksinimlerine bağlıdır.
Aşağıda birkaç yaygın veri yenileme yaklaşımını açıklıyoruz.
Tam yenileme
Gerçekleştirilmiş görünüm tamamen yeniden işlenir ve en son sorgu sonuçları üzerine yazılır. Bu en basit yaklaşımdır, ancak özellikle büyük gerçekleştirilmiş görünümler için kaynak kullanımı yoğun olabilir.
Artımlı yenileme
Gerçekleştirilmiş görünüme yalnızca temel verilerdeki değişiklikler uygulanır. Büyük veri kümeleri ve sık güncellemelerle uğraşırken, tam yenilemeden daha verimli olabilir.
İsteğe bağlı yenileme
Bazı sistemler, gerçekleştirilmiş görünümlerin belirli olaylar veya kullanıcı talepleriyle tetiklenen, isteğe bağlı yenilenmesine olanak tanır. Bu, verilerin ne zaman güncelleneceği konusunda daha fazla kontrol sunar. Ancak, gerçekleştirilmiş görünümün güncel kalmasını sağlamak için dikkatli bir yönetim gerektirir.
Farklı sistemlerdeki teknik varyasyonlar
Her veritabanı yönetim sistemi, gerçekleştirilmiş görünüm oluşturmak için farklı yöntemlere sahiptir.
Veritabanı yönetim sistemi |
Gerçekleştirilmiş görünümlerin işleyiş şekli |
PostgreSQL |
PostgreSQL ile tüm görünümü yeniden işleyerek, gerçekleştirilmiş görünümü manuel olarak yenilemeniz gerekir. Gerçekleştirilmiş görünümü oluşturduğunuz anda verilerle doldurursunuz. |
MySQL |
MySQL, gerçekleştirilmiş görünümleri desteklemez. |
Oracle |
Oracle, gerçekleştirilmiş görünümleri otomatik olarak yeniler. Ancak, isteğe bağlı yenileme seçeneğiniz de vardır. Görünümlerin sonuçları teslim etmeden önce yenilenmesi isteminde bulunan bir SQL ifadesi de yazabilirsiniz. |
SQL Server |
Gerçekleştirme, normal bir görünümün dizinini oluşturma adımı olduğundan SQL Server, "dizinlenmiş görünümler" adını kullanır. Dizinlenmiş görünümleriyle yalnızca temel SQL sorgularını gerçekleştirebilirsiniz. Bu görünümler, kullanıcı için otomatik olarak güncellenir. |
MongoDB |
MongoDB, bir NoSQL ortamı için gerçekleştirilmiş görünümlere benzer bir yetenek sunmak için toplama işlevlerini kullanır. |
Görünümler ile gerçekleştirilmiş görünümler arasındaki fark nedir?
İlişkisel veritabanlarında görünüm, verileri birden çok temel tabloda dönüştürüp birleştirerek oluşturulan geçici bir tablodur. Bu, veri depolamayan sanal bir tablodur. Bunun yerine, bir veya daha fazla kaynak tabloda sorguyla tanımlanır.
Kullanıcı, görünümü her sorguladığında veritabanı altyapısı, temel sorguyu kaynak tablolarda çalıştırarak sonuçları dinamik olarak işler. Bir görünümdeki veriler, her erişildiğinde doğrudan kaynak tablolardan türetildiği için her zaman günceldir.
Öte yandan gerçekleştirilmiş görünüm, belirli bir sorgunun sonuçlarını veritabanında fiziksel bir tablo olarak depolar. Gerçekleştirilmiş görünümdeki veriler, önceden işlenmiş ve depolanmıştır. Yani, görünüme her erişildiğinde sorguyu yeniden işlemeye gerek kalmadan, sonuçlar zaten kullanılabilir durumdadır.
Ancak, gerçekleştirilmiş görünümlerdeki veriler her zaman güncel değildir. Veri yeniliği ve sorgu performansı arasında denge kurmak için güncelleme sıklığını yapılandırmanız gerekir.
Gerçekleştirilmiş görünümlerin zorlukları nelerdir?
Gerçekleştirilmiş görünümler, dikkate alınması gereken başka bir veritabanı bileşeni olduğundan, bakım açısından bir karmaşıklık katmanı daha ekleyin. Sorgu ve verimlilik avantajlarını, olası depolama maliyetleri ve veri tutarlılığı sorunlarıyla dengelemelisiniz.
Gerçekleştirilmiş görünümlerinizin faydalı olmayı sürdürmesi için güncelleme tetikleyen etkili kurallar oluşturmanız gerekir. Gerçekleştirilmiş görünümlerinizi sıklıkla güncellemek, özellikle yoğun bir dönemdeyseniz sistem performansını etkileyebilir. Buna ek olarak, gerçekleştirilmiş görünümler de veri çoğaltması nedeniyle önemli miktarda yer kaplar. Sürekli güncellenen büyük bir veritabanınız varsa gerçekleştirilmiş görünümlerin depolama alanı gereksinimleri büyük olasılıkla yüksek olacaktır.
Gerçekleştirilmiş görünüm kullanacaksanız net yenileme kuralları ve planları belirlemeniz gerekir. Ayrıca veri tutarsızlıkları, yenileme hataları ve eklenen depolama yüküyle nasıl başa çıkacağınızı anlamalısınız.
AWS, gerçekleştirilmiş görünüm gereksinimleriniz konusunda size nasıl yardımcı olabilir?
Gerçekleştirilmiş görünümler, Amazon Redshift sorgu performansını artırmak için güçlü bir araçtır.
Amazon Redshift, makine öğrenimini kullanarak iş yükünü devamlı izler ve faydalı olacakları durumlarda yeni gerçekleştirilmiş görünümler oluşturur. Redshift'teki bu Otomatik Gerçekleştirilmiş Görünümler (AutoMV) özelliği, kullanıcı tarafından oluşturulan gerçekleştirilmiş görünümlerle aynı performans avantajlarını sağlar.
AutoMV özelliği size birçok yönden fayda sağlar:
- Gerçekleştirilmiş görünümleri oluşturma ve güncel tutma maliyetlerini, sorgu gecikmesi konusunda edineceğiniz avantajlarla dengeleyin
- Önceden oluşturulmuş AutoMV'leri izleyin ve artık faydalı olmuyorlarsa kaldırın
- Kullanıcı tarafından oluşturulan gerçekleştirilmiş görünümlerle aynı ölçüt ve kısıtlamaları kullanarak otomatik ve aşamalı bir şekilde yenileyin
Ayrıca geliştiricilerin AutoMV'den yararlanmak için sorguları revize etmesi gerekmez. Gerçekleştirilmiş görünümleri kullanmak için yeniden otomatik sorgu yazımı, sistem tarafından oluşturulan AutoMV'lerden yararlanabilecek sorguları saptar. Bu sorguları, AutoMV'leri otomatik olarak kullanacak şekilde yeniden yazarak sorgu verimliliğini artırır.
Hemen bir hesap oluşturarak AWS'de gerçekleştirilmiş görünümleri kullanmaya başlayın.