Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm
Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.
Bu öğreticide, analiz hizmetlerinin içindeki ikinci motor olan depolama motoruna bir göz atacağız.
Üst düzey motor olan formül motorunu geçmiş bir eğitimde tartışmıştık. Kullanıcılar bu iki motorun da nasıl çalıştığını anladığında, DAX sorgularınızın performansını optimize etmek ve iyileştirmek daha kolay olur.
Depolama motorunun ana amacı, doğrudan veritabanıyla çalışmaktır.
Formül motorunun veritabanına doğrudan erişimi yoktur, bu nedenle normalde bu amaç için depolama motorundan geçer.
Depolama motorunun iki türü vardır: içe aktarma modu ve DirectQuery . Bileşik bir model oluşturmak için her iki türü de aynı veri modelinde karıştırabilir ve eşleştirebilirsiniz.
İçindekiler
Depolama Motorunda İçe Aktarma Moduyla Çalışma
İlk olarak, içe aktarma modundan bahsedelim. Bu aynı zamanda daha yaygın olarak Vertipaq olarak bilinir, ancak aynı zamanda xVelocity veya In Memory Columnar Database olarak da adlandırılır.
İçe aktarma modunun nasıl çalıştığı hakkında anlaşılması gereken dört kritik şey vardır.
İlk olarak Vertipaq, doğrudan veri kaynağından verilerin bir kopyasını oluşturur ve sıkıştırılmış biçimde RAM'de depolar .
İkinci olarak, içe aktarma modunda işlenen veriler, son yenileme işlemine dayalıdır . Bu, verilerinizi en son geçen hafta yenilediyseniz, uğraştığınız verilerin hala geçen haftaki verilerle aynı olduğu anlamına gelir. Bu, özellikle bir tablonun içe aktarma modunda ve diğer tablonun DirectQuery modunda olduğu bir bileşik kurulum kullanıyorsanız önemlidir.
Geçen hafta yenilenen Ürünler tablosunun içe aktarma modunda olduğunu varsayalım. Satış tablosuna gelince, boyutundan dolayı onu DirectQuery aracılığıyla yönlendirmeye karar verdiniz. Ayrıca, raporunuzu, Marka sütununu getirdiğiniz her iki tabloya ve aynı Satış tablosu üzerinden bir Toplam Satış ölçüsü oluşturmaya dayalı olarak oluşturduğunuzu varsayalım. Ayrıca Marka bazında Satış tutarını da görselleştirmek istiyorsunuz.
DirectQuery'den yeni ve güncellenmiş veriler ve Vertipaq'tan güncelliğini yitirmiş verilerle karşılaşabileceğiniz için önce içe aktarma modundan gelen verileri yenilemeniz gerekir. Bu, matrisinizde ve görselleştirmenizde birkaç boş satır bırakacaktır.
Vertipaq hakkında bilmeniz gereken bir sonraki şey, yalnızca , , , veya gibi temel işlemlerin yerel olarak mevcut olduğudur . Bu, sorgu planına dahil edilen daha karmaşık başka işlemler varsa, kodun bu bölümünü çözmek için depolama motorunun formül motorunu çağırması gerektiği anlamına gelir.
Son olarak, depolama motoru, Vertipaq'ın sütunlu yapısı nedeniyle yüksek düzeyde optimize edilmiş bir veritabanıdır . Bu, tüm verilerin satır satır değil, sütun sütun depolandığı anlamına gelir. Bu yapı nedeniyle, ilişkisel veri modelinizde dizinler oluştursanız bile Vertipaq her zaman DirectQuery bağlantısından daha hızlı olacaktır.
Depolama Motorunda DirectQuery ile Çalışma
LuckyTemplates analiz hizmetlerinde sahip olduğumuz bir sonraki seçenek DirectQuery'dir. DirectQuery bağlantısını kullanırsanız, analiz hizmetleri yalnızca formül altyapısı tarafından gönderilen sorgular için geçiş görevi görür.
Diyelim ki bir sorgu yazdınız. Formül motoru bir sorgu planı oluşturacaktır. Daha sonra sorguyu, halihazırda veritabanının ana diline çevrilmiş olan depolama motoruna iletecektir. Çoğu zaman, bu sorgular SQL'de gelir.
Sorgu DirectQuery kullanıyorsa her zaman güncel olmasını bekleyin. Verileri en son ne zaman yenilediğiniz konusunda endişelenmenize gerek yok.
DAX kodunu ve veri modelini optimize etme süreci, ilişkisel veritabanının nasıl oluşturulduğuna da bağlı olacaktır. Sütunlarınızda indeksleriniz varsa, sorgularınız her zaman optimize edilecektir. Ancak veritabanınız, analiz hizmetlerini veya LuckyTemplates'ı kullanarak rapor oluşturma açısından optimize edilmemişse, birkaç performans sorunuyla karşılaşabilirsiniz. Bu nedenle, veritabanlarınızı rapor geliştirme için oluşturulmuş hale getirirken kasıtlı olun.
Bileşik Modellerle Çalışma
Üçüncü seçenek, içe aktarma modunda bir tabloya ve DirectQuery'de başka bir tabloya sahip olabilmeniz için bileşik bir model oluşturmaktır.
Farklı kaynaklardan iki tablo kullandığınızda, formül motoru Vertipaq'a bir istek ve DirectQuery veri kaynağına başka bir istek gönderir. Her iki durumda da analiz hizmetleri veri önbelleğini hem Vertipaq'tan hem de DirectQuery'den alacaktır. Formül altyapısı daha sonra sonuçları son kullanıcıya sağlamadan önce JOIN, veya her iki veri önbelleğindeki herhangi bir yinelemeyi kullanır .
Raporunuzda ürünün markasına göre satış tutarını görselleştirmeye çalıştığınızı varsayalım. Formül motoru, ürünü, markayı ve ürün anahtarını alacağı Vertipaq'a bir talep gönderecektir. Ardından, DirectQuery'den satış, net fiyat, satış miktarı ve satış ürün anahtarını almaya çalışır.
Ürün anahtarına dayalı olarak iki veri önbelleğine sahip olduğunda, iki veri önbelleğini birleştirecek ve toplam satış tutarını hesaplayacaktır. Daha sonra sonuçları son kullanıcıya sunacaktır.
Depolama Motoru İle İlgili Diğer Kritik Noktalar
Artık farklı türlerini ele aldığımıza göre, DAX sorgularınızı optimize etmenize yardımcı olması için depolama motoru hakkında bilmeniz gereken birkaç kritik faktör daha var.
Daha önce de belirttiğim gibi, depolama motoru, veri önbelleğini, sıkıştırılmamış bir veri önbelleği biçiminde formül motoruna geri sağlar. İçe aktarma modundayken, işlem sırasında Vertipaq'a geri gönderilen istek bir xmSQL dilinde yürütülür.
xmSQL dili, SQL'e biraz benzer, ancak tamamen aynı değildir. Farklı bir eğitimde sorgu planlarından bahsederken xmSWL'den detaylı olarak bahsedeceğiz.
Depolama motorunun CPU'nuzda bulunan tüm çekirdekleri kullandığını unutmamak da önemlidir. Birden çok çekirdek kullanma yeteneği, veri modelinizde birden çok segment olması durumunda faydalıdır.
Diyelim ki LuckyTemplates'da 12 milyon satırlık bir tablonuz var. Hem Power Pivot hem de LuckyTemplates'da her segment 1 milyon satıra sığdığından, bu tablo daha sonra 12 segmente bölünecektir. Bu, genel olarak bir segmentin 8 milyon satırı barındırdığı analiz hizmetlerinden farklıdır.
Bu nedenle, CPU'mda altı çekirdeğim varsa, altı çekirdeğin tümü aynı anda 12 segmentin ilk altısını tarayacaktır. Bitirdiklerinde, sonraki altı bölüme geçecekler.
Ancak, varsayılan segmentin 8 milyon satır tuttuğu analiz hizmetleriyle çalışıyorsam, altı çekirdeğimden yalnızca ikisi kullanılacaktır - bir segment 8 milyon satırı işlerken diğeri 4 milyon satırı işleyecektir.
Karmaşık Sorgularda Çalışmak
Daha önce içe aktarma modunun yalnızca MIN, MAX, SUM, COUNT ve GROUPBY gibi temel işlemleri desteklediğinden bahsetmiştim. Peki, daha karmaşık sorgular üzerinde çalışırsanız ne olur?
Satır bağlamında bir IF ifadesi veya Ürünler ve Satış tabloları üzerinde SUMX gibi iç içe yineleme kullanmaya karar verdiğinizi varsayalım.
Bu durumda, depolama motoru sorguyu kendi başına çözemez. Ardından, karmaşık hesaplamayı depolama motorunun içinde satır satır çözmeye başlayacak olan formül motorunu çağıracaktır. Bazıları bunun her iki motorun birlikte çalıştığı olumlu bir senaryo olduğunu düşünebilir - ancak bu gerçeklerden uzaktır.
Görüyorsunuz, bu olduğunda, söz konusu sorguda bir callbackdataID olması durumunda depolama motoru tarafından üretilen veri önbelleği önbelleğe alınamaz. Bu nedenle, görseli yenilerseniz, aynı sorguyu birkaç saniye önce yürütmüş olsanız bile, aynı hesaplamanın hem formül motoru hem de depolama motoru tarafından yapılması gerekecektir. Bu, performans gecikmelerine ve kötü kullanıcı deneyimine yol açacaktır.
Ayrıca, depolama motorunun, sorguların DAX veya MDX kullanılarak yürütülüp yürütülmediğini bilmediğini unutmayın. Daha önce de belirttiğimiz gibi, sorgu planını aktarmadan önce sorguları doğru dile dönüştürmek formül motorunun işidir.
Son olarak, formül motoru, sorguları birer birer depolama motoruna gönderir. Bu, birden fazla segmente sahip olmanın gerçekten daha iyi olduğu anlamına gelir, böylece birden fazla segment aynı anda taranarak Vertipaq içindeki toplam tarama süresi azaltılabilir.
DAX For LuckyTemplates: DAX Studio'da Formül Motorlarını Kullanarak Optimize Etme
DAX Sorgu Optimizasyonu Teknikleri ve Dersleri
Sorgu Performansı ve DAX Studio Kurulumu
Çözüm
Depolama motorunun tüm ayrıntılarını anlamak, özellikle DAX Studio kullanıyorsanız, DAX sorgularınızı optimize etmenize gerçekten yardımcı olur. Formül motorunu açıklayan öğreticiyi de okuduysanız, daha iyi performans gösteren sorguların nasıl oluşturulacağı konusunda daha iyi kararlar verebilirsiniz.
Formül motoru en üst düzey motor olarak hizmet etse de, her iki motoru da maksimize etmezsek, yapabileceği kadar iyi performans gösteremeyeceğine şüphe yok.
Herşey gönlünce olsun,
Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.
Bir Excel Dosyasının Boyutunu Küçültmek için 6 Etkili Yöntem. Hızlı ve kolay yöntemler ile verilerinizi kaybetmeden yer açın.
Python'da Self Nedir: Gerçek Dünyadan Örnekler
R'de bir .rds dosyasındaki nesneleri nasıl kaydedeceğinizi ve yükleyeceğinizi öğreneceksiniz. Bu blog aynı zamanda R'den LuckyTemplates'a nesnelerin nasıl içe aktarılacağını da ele alacaktır.
Bu DAX kodlama dili eğitiminde, GENERATE işlevinin nasıl kullanılacağını ve bir ölçü başlığının dinamik olarak nasıl değiştirileceğini öğrenin.
Bu eğitici, raporlarınızdaki dinamik veri görselleştirmelerinden içgörüler oluşturmak için Çok Kanallı Dinamik Görseller tekniğinin nasıl kullanılacağını kapsayacaktır.
Bu yazıda, filtre bağlamından geçeceğim. Filtre bağlamı, herhangi bir LuckyTemplates kullanıcısının başlangıçta öğrenmesi gereken en önemli konulardan biridir.
LuckyTemplates Apps çevrimiçi hizmetinin çeşitli kaynaklardan oluşturulan farklı raporların ve içgörülerin yönetilmesine nasıl yardımcı olabileceğini göstermek istiyorum.
LuckyTemplates'da ölçü dallandırma ve DAX formüllerini birleştirme gibi teknikleri kullanarak kâr marjı değişikliklerinizi nasıl hesaplayacağınızı öğrenin.
Bu öğreticide, veri önbelleklerini gerçekleştirme fikirleri ve bunların DAX'ın sonuç sağlama performansını nasıl etkilediği tartışılacaktır.