Örnek sorular
Wh Snowflake Storage MicropartitionsZorluk 1
Snowflake'te bir tabloya satır yüklenirken micro-partition'lar nasıl oluşur?
- aKullanıcı yükleme başlamadan önce partition sınırlarını elle tanımlamalıdır
- bSnowflake yüklenen satırları otomatik olarak micro-partition'lara gruplar✓
- cMicro-partition'lar yalnızca tabloda bir CLUSTER BY key tanımlandığında oluşur
- dYükleme bittikten sonra ayrı bir zamanlanmış warehouse işi micro-partition'ları oluşturur
Açıklama:Micro-partitioning Snowflake'te tamamen otomatiktir: satırlar yüklenirken Snowflake bunları kullanıcı partition key tanımlamadan ya da ek bir iş çalıştırmadan micro-partition'lara gruplar. CLUSTER BY yalnızca gelecekteki verinin nasıl organize edileceğini etkiler, partition oluşumunun ön koşulu değildir.
Wh Snowflake Storage MicropartitionsZorluk 2
Tek bir Snowflake micro-partition'ının sıkıştırılmamış veri olarak yaklaşık hedef boyutu nedir?
- a1 MB ile 8 MB arasında sıkıştırılmamış veri
- b1 GB ile 5 GB arasında sıkıştırılmamış veri
- c50 MB ile 500 MB arasında sıkıştırılmamış veri✓
- dTam olarak 128 MB, sabit bir sıkıştırılmamış veri değeri
Açıklama:Snowflake, micro-partition'ların 50 MB ile 500 MB arasında sıkıştırılmamış veri içermesini hedefler; disk üzerinde tutulan gerçek boyut Snowflake sıkıştırma uyguladığı için daha küçüktür. Bu tek bir sabit boyut değil, bir hedef aralıktır.
Wh Snowflake Storage MicropartitionsZorluk 2
Var olan bir Snowflake micro-partition'ı içindeki bir satırın bir UPDATE ile değiştirilmesi gerekiyor. Depolama katmanında gerçekte ne olur?
- aSnowflake değişen veriyle yeni bir micro-partition yazar; orijinal değiştirilmeden kalır✓
- bSnowflake satırın tam byte konumunu bulur ve mevcut micro-partition içinde üzerine yazar
- cSnowflake değişen satırı aynı micro-partition dosyasının sonuna ekler
- dSnowflake micro-partition'ı kilitler ve yalnızca etkilenen kolon değerlerini yeniden yazar
Açıklama:Micro-partition'lar immutable'dır. Bir UPDATE var olan bir micro-partition'ı asla yerinde değiştirmez; Snowflake güncelleme sonrası durumu tutan yeni micro-partition'lar üretir ve eski micro-partition'ın yerini bu yenileri alır.
Wh Snowflake Storage MicropartitionsZorluk 1
Snowflake, bir micro-partition içindeki kolon verisini kolonsal biçimde saklar. Bunun sorgu taraması açısından doğrudan faydası nedir?
- aSeçilen kolon sayısından bağımsız olarak her sorgunun aynı miktarda byte okumasını garanti eder
- bSnowflake'in veri hakkında herhangi bir istatistik tutma ihtiyacını ortadan kaldırır
- cHer sorgunun tablonun tüm kolonlarını tek bir birim olarak birlikte okumasını zorunlu kılar
- dBir sorgu yalnızca gerçekten referans verdiği kolonları tarar, tüm satırı değil✓
Açıklama:Her kolon bir micro-partition içinde bağımsız saklandığından, Snowflake bir sorgunun referans verdiği kolonları tarayabilir, tüm satırları okumak yerine; bu da taranan byte miktarını azaltır.
Wh Snowflake Storage MicropartitionsZorluk 2
Aşağıdakilerden hangisi Snowflake'in her micro-partition için otomatik olarak tuttuğu metadata'nın bir parçasıdır?
- aÇalışma zamanında sorgu sonuçlarını doğrulamak için kullanılan satır düzeyinde tam bir checksum
- bMicro-partition'ın saklandığı tam fiziksel disk sektörü
- cHer kolon için değer aralığı (min/max) ve distinct değer sayısı✓
- dO micro-partition'a şimdiye kadar dokunan her SQL ifadesinin bir kopyası
Açıklama:Snowflake her micro-partition için, sorgu optimizasyonunda kullanılan diğer özelliklerin yanı sıra, her kolon için değer aralığını ve distinct değer sayısını içeren metadata tutar.
Wh Snowflake Storage MicropartitionsZorluk 1
Snowflake micro-partition bağlamında 'pruning' ne anlama gelir?
- aSorguyla eşleşemeyecek micro-partition'ların taranmasını atlamak için saklı metadata'yı kullanmak✓
- bTime Travel için artık gerekli olmayan eski micro-partition'ları fiziksel olarak silmek
- cDiskteki boyutunu azaltmak için bir micro-partition'ı daha fazla sıkıştırmak
- dBir yükleme sırasında büyük bir micro-partition'ı birkaç küçük parçaya bölmek
Açıklama:Pruning, Snowflake'in sorgu optimize edicisinin, sorgunun filtreleriyle eşleşen satır içeremeyecek micro-partition'ların taranmasını atlamak için micro-partition başına metadata'yı (min/max aralıkları gibi) kullandığı süreçtir.