Uygulama performansını optimize etme | Qlik Cloud Yardımı
Ana içeriğe geç Tamamlayıcı içeriğe geç

Uygulama performansını optimize etme

Uygulama performansı, azaltılmış uygulama boyutu, basitleştirilmiş veri modelleri ve küme analizi stratejik kullanımı ile iyileştirilebilir. Bu bölüm, performansın etkilenebileceği alanları ve uygulama performansını nasıl değerlendirip izleyebileceğinizi belirterek performans sorunlarından kaçınmanıza yardımcı olacaktır.

Uygulamanızın performansını performans değerlendirme aracını kullanarak izleyebilir ve ayrıca daha büyük motorları manuel olarak atayarak farklı motor boyutlarında nasıl performans gösterdiğini test edebilirsiniz. Daha fazla ayrıntı için bkz. Uygulama performansı değerlendirmesi ve Assigning engines to improve application performance.

Uygulama karmaşıklığı

Bunlar, sorunları teşhis etmeye yardımcı olabilecek genel kategorilerdir. En karmaşık uygulamalar en düşük performansa sahiptir.

Basit uygulamalar:

  • Karmaşık küme analizi veya If() ifadeleri içermez.
  • Büyük tablolar içermez.
  • Basit bir veri modeli vardır.
  • Basit hesaplamalar içerir.
  • Büyük veri hacimlerine sahip olabilir.

Orta düzey uygulamalar:

  • Birçok tablo içeren bir veri modeli vardır, ancak en iyi uygulamaları izler.
  • Küme analizi ve birkaç If() ifadesi kullanır.
  • Sayfalarda büyük veya geniş tabloları vardır (15 sütun veya daha fazla).

Karmaşık uygulamalar:

  • Çok karmaşık bir veri modeli vardır.

  • Büyük veri hacimlerine bağlanır.
  • Karmaşık hesaplamalar, grafikler ve tablolar içerir.

Büyük veri hacimleri

Büyük veri hacimlerine bağlanırken bu mimari stratejilerini uygulayabilirsiniz.

Bölümlendirme

QVDs dosyalarını zaman aralığı, bölge veya toplama düzeyi gibi boyutlara göre bölümlendirebilirsiniz. Örneğin, şunlara sahip olabilirsiniz:

  • En son iki yıla ait verileri içeren bir QVD.
  • İki yıldan daha eski geçmiş verileri içeren bir QVD.
  • Daha yüksek bir düzeyde toplanmış tüm verileri içeren bir QVD. Örneğin, tarih yerine ay bazında veya bireysel müşteriler yerine ülke bazında.

  • Tüm verileri içeren ve yalnızca küçük bir kullanıcı alt kümesi tarafından kullanılan büyük bir QVD.

Uygulamaları benzer bir şekilde bölümlendirebilirsiniz. Daha küçük uygulamalar çoğu kullanıcının analitik ihtiyaçlarını karşılayacaktır. Bu, bellek tasarrufu sağlar.

Ayrıca farklı bölgelere odaklanmış birden fazla uygulamanız olabilir. Bu şekilde kullanıcılar, ilgilenmedikleri veya erişim hakları olmayan verileri içeren bir uygulamayı açmazlar. bölüm erişimi aracılığıyla erişilemeyen veriler yine de belleği etkiler.

İsteğe Bağlı Uygulama Oluşturma (ODAG)

Qlik Sense isteğe bağlı uygulamaları, kullanıcılara büyük veri depolarının toplu görünümlerini sunar. Ayrıntılı analiz için verilerin ilgili alt kümelerini belirleyebilir ve yükleyebilirler.

Kullanıcı perspektifinden iki uygulama vardır:

  1. Toplanmış verileri içeren bir alışveriş sepeti.
  2. Ayrıntıları görüntülemek için kullanılan boş bir şablon uygulaması.

Kullanıcı, alışveriş sepeti uygulamasında seçimler yapar. Bir eşik karşılandığında, şablon uygulamasını istenen ayrıntılarla dolduran özel bir LOAD komut dosyası oluşturulur. Daha fazla bilgi için bkz. İsteğe bağlı uygulamalarla büyük veri yönetimi.

Uygulama zincirleme

Uygulama zincirleme (QlikView içinde belge zincirleme olarak bilinir), kullanıcıların düzenli olarak tükettiği toplanmış bir uygulama olduğu anlamına gelir. Bir kullanıcının daha fazla ayrıntıya ihtiyacı varsa, seçimler toplanmış uygulamadan bir ayrıntı uygulamasına aktarılabilir, böylece daha düşük bir ayrıntı düzeyini görüntüleyebilirler. Bu, kullanıcılar gereksiz ayrıntıları yüklemediği için bellek tasarrufu sağlar. Uygulama zincirleme, bir sayfaya düğme nesneleri eklenerek gerçekleştirilebilir. Daha fazla bilgi için bkz. Uygulama zinciri oluşturma.

Uygulama zincirleme ayrıca APIs aracılığıyla da desteklenir. Örneğin, özel uygulama zincirleme oluşturmak için Uygulama Tümleştirme API’si kullanabilirsiniz. Daha fazla bilgi için bkz. Uygulama Tümleştirme API’si (yalnızca İngilizce).

Dinamik görünümler

Dinamik görünümler, yüksek veri hacmi veya hızla değişen veri senaryoları için güncel görselleştirmeler sağlar. Dinamik görünümlerle çalışırken aşağıdakileri göz önünde bulundurun:

  • Dinamik görünümleri güncellediğinizde, veri kaynağı doğrudan yüklenir. Güncelleme performansı, temel veri kaynağının performansından etkilenir.

  • Dinamik görünüm şablonu uygulamaları, dinamik grafikler oluşturmanıza yardımcı olabilir.

Dinamik görünümlerin kullanımı hakkında daha fazla bilgi için bkz. Dinamik görünümlerle verileri yönetme.

Direct Query

Bellek içi uygulamalar önerilse de, Direct Query verileri orijinal kaynağında tutmanıza olanak tanır. Direct Query kullanımınızı optimize etmek için aşağıdakileri göz önünde bulundurun:

  • Direct Query performansı, temel veri kaynağının performansından büyük ölçüde etkilenir.

  • Karmaşık sorgular performans sorunlarına neden olabileceğinden, Direct Query veri modelinizi olabildiğince basit tutun.

Direct Query hakkında daha fazla bilgi için bkz. Bulut veritabanlarına doğrudan Direct Query ile erişme.

Veri modeli performansı

Bunlar, veri modeli performansını etkileyebilecek göstergelerdir. Her biri, uygulamanın kullanılabilirliğini artıracak en iyi uygulamadır.

Veri modeli performansı en iyi uygulamaları
Eylem Açıklama

Yapay anahtarların kaldırılması

Qlik Sense, iki veya daha fazla veri tablosunda iki ya da daha fazla ortak alan olduğunda yapay anahtarlar oluşturur. Bu, kodda veya veri modelinde bir hata olması anlamına gelebilir. Yapay anahtarları tanılamak için bkz. Yapay anahtarlar.

Döngüsel referansların veri modelinden kaldırılması

İki alanın birden fazla ilişkilendirmesi olduğunda döngüsel referanslar oluşur. Qlik Sense, tablolardan birine bağlantıyı değiştirerek bunları çözümlemeye çalışır. Ancak, tüm döngüsel referans uyarıları çözülmelidir, bkz. Döngüsel referansları anlama ve çözme.

Uygun veri ayrıntı düzeyi

Yalnızca gerekli verileri yüklemelisiniz. Örneğin, bir grup kullanıcının yalnızca haftaya, aya ve yıla göre bölünmüş verilere ihtiyacı vardır. Bellek tasarrufu sağlamak için yükleme komut dosyasındaki verileri toplayabilir veya toplanan verilere yükleyebilirsiniz. Bir kullanıcının daha düşük ayrıntı düzeyinde verileri görselleştirmesi gerekiyorsa ODAG veya belge zinciri oluşturmayı kullanabilirsiniz.

Mümkün olduğunda QVDs kullanılması

QVD, Qlik Sense uygulamasından dışa aktarılan veri tablosunu içeren bir dosyadır. Bu dosya biçimi, bir komut dosyasından veri okunurken hız için optimize edilmiştir ancak yine de çok kompakttır. Dosya biçimi bir koddan veri okuma sırasında hız sağlamak için optimize edilmiştir, ancak oldukça kompakt olan yapısını korumaktadır. Bir QVD dosyasından veri okumak, normalde diğer veri kaynaklarından okumaktan 10-100 kat daha hızlıdır. Daha fazla bilgi için bkz. QVD dosyalarıyla çalışma.

QVD dosyalarının yüklemede optimize edilmesi

QVD dosyaları iki modda okunabilir: standart (hızlı) ve optimize (daha hızlı). Seçilen mod, kod altyapısı tarafından otomatik olarak belirlenir.

Optimize edilmiş yüklerle ilgili bazı sınırlamalar vardır. Alanlar yeniden adlandırılabilir ancak bu işlemlerin tümü standart yüklemeyle sonuçlanır:

  • Yüklenen alanlardaki dönüştürmeler.
  • Qlik Sense uygulamasının, kayıtların paketini açmasına neden olan where cümlesini kullanma.
  • Yüklenen bir alanda Harita kullanma.

Artışlı yüklemelerden yararlanılması

Uygulamanız sürekli güncellenen veritabanlarından büyük miktarda veriye bağlanıyorsa, tüm veri kümesini yeniden yüklemek zaman alıcı olabilir. Bunun yerine, veritabanından yeni veya değiştirilmiş kayıtları almak için artışlı yüklemeleri kullanmalısınız. Daha fazla bilgi edinmek için bkz. Yeni ve güncellenmiş kayıtları artışlı yükleme ile yükleme.

Snowflake modelinin birleştirilmesi

Snowflake veri modeliniz varsa Join önekini veya başka eşleme ile bazılarını birleştirerek veri tablosu sayısını azaltabilirsiniz. Bu özellikle büyük olgu tabloları için önemlidir. İyi bir genel bir kural, tek bir büyük tabloya sahip olmaktır. Daha fazla bilgi için bkz. Birleştirmek veya Birleştirmemek.

Az sayıda alan içeren tabloların normal dışı tutulması

Birkaç alan içeren iki tablonuz varsa bunların birleştirilmesi performansı artırabilir. Daha fazla bilgi için bkz. Join ve Keep ile tabloları birleştirme.

Eşleme yüklemeleri içeren normal dışı arama (yaprak) tabloları

Yalnızca bir tablodan diğerine bir alan eklemeniz gerekiyorsa Join önekini kullanmamanız gerekir. ApplyMap arama işlevini kullanmalısınız, bkz. Birleştirmeme - ApplyMap kullanma.

Zaman damgalarının tarih alanından kaldırılması veya ayrılması

Zaman damgası mevcut olduğunda, dize temsili daha büyük olduğundan ve farklı değerlerin sayısı daha büyük olduğundan tarih alanları, alanı doldurabilir. Analiziniz için hassasiyet gerekli değilse, zaman damgasını ör. Timestamp(Floor(YourTimestamp,1/24)) öğesini kullanarak en yakın saate yuvarlayabilir ya da Date(Floor(YourTimestamp)) öğesini kullanarak saat bileşenini tamamen kaldırabilirsiniz.

Zaman damgası olmasını istiyorsanız bunu tarihten ayırabilirsiniz. Aynı Floor() işlevini kullanabilir ve ardından ayıklanan zamanla yeni bir alan oluşturmak için şuna benzer bir şey kullanabilirsiniz: Time(Frac(YourTimestamp)).

Gereksiz alanların veri modelinden kaldırılması

Veri modelinize yalnızca gerekli alanları yüklemelisiniz. Load * ve SELECT kullanmaktan kaçının. Şunları koruduğunuzdan emin olun:

  • Analiziniz için gerekli olan alanlar.
  • Uygulamada gerçekten kullanılan alanlar.

Yüksek veri hacimleriyle çalışılırken bağlantı tablolarından kaçınılması

Mümkün olduğunda bağlantı tablolarını kullanmanız gerekir. Ancak büyük veri hacimleriyle çalışıyorsanız birleştirilmiş tablolar, bağlantı tablolarından daha yüksek performans gösterebilir.

Birleştirilmiş boyutların yeni alanlara bölünmesi

Birleştirilmiş boyutları ayrı alanlara ayırmanız gerekir. Böylece alanlarınızdaki benzersiz değer oluşumu sayısı azalır. Bu, zaman damgalarının optimizasyonuna benzer.

Mümkün olduğunda AutoNumber kullanılması

Verilerinizi önce QVD dosyasından yükleyerek ve ardından değerleri simge anahtarlarına dönüştürmek üzere AutoNumber deyimini kullanarak bir optimize yükleme oluşturabilirsiniz. Daha fazla bilgi için bkz. AutoNumber

Veri adalarından kaçınılması

Veri adaları kullanışlı olabilir ancak genellikle performansı etkiler. Seçim için değer oluşturduğunuzda, değişkenler kullanınız.

QVD'lerin artışlı zaman dilimlerine göre depolanması

QVD'yi segmentler halinde (ör. aylık olarak) depolamanız gerekir. Bu daha küçük aylık QVD'ler, tüm verilere gerek olmayabilecek birçok farklı uygulamayı destekleyebilir.

Sayfa performansı

Bunlar, sayfaların ve görselleştirmelerin performansını artıracak en iyi uygulamalardır.

Sayfa performansı en iyi uygulamaları
Eylem Açıklama

Mümkün olduğunda If() işlevinden kaçınılır

If() işlevi bir toplama işlevi içinde kullanılırsa, kayıt düzeyinde çalışır ve birçok kez değerlendirilir.

Örneğin, bir toplamada 1000 kaydınız varsa, bir If() koşulu 1000 kez değerlendirilir. İfadeleri iç içe yerleştirirseniz bu hızla artabilir. Bunun yerine küme analizi kullanmalısınız. Toplamadan önce bir küme analizi filtresi uygulanır ve bu da daha hızlı bir yanıtla sonuçlanır. Bu yanıtlar ayrıca küme analizi aracılığıyla önbelleğe alınabilirken, If() alınamaz. Ayrıca veri modelinde diğer işlevleri ve değişiklikleri de düşünebilirsiniz.

Mümkün olduğunda bir toplama tablosu içindeki farklı tablolardan gelen alanlardan kaçınılır.

Bir toplama değerlendirildiğinde, hesaplama iki adımdan geçer:

  1. İlk adım, üzerinde hesaplama yapılacak ilgili kombinasyonları bulmaktır. Bu adım tek iş parçacıklıdır.

  2. İkinci adım hesaplamayı gerçekleştirmektir. Bu adım çok iş parçacıklıdır.

Tek iş parçacıklı kısım performansı önemli ölçüde etkileyebilir. Bir örnek, toplama içinde birden fazla alanınız olmasıdır, örneğin Sum(Quantity*ListPrice). Quantity değer tablosunda ve ListPrice ana ürünler tablosundaysa, motorun ürünü toplamaya başlamadan önce kombinasyonları bulmak için ilk olarak iki tabloyu birleştirmesi gerekir. Birleştirme tek iş parçacıklı kısımdır ve toplama çok iş parçacıklıdır. Her iki alan da aynı tabloda bulunursa, birleştirmeye gerek kalmaz ve toplama önemli ölçüde daha hızlı değerlendirilir.

Aggr() ve iç içe geçmiş Aggr() işlevleri minimum düzeyde kullanılır

Aggr() işlevi performansı büyük ölçüde etkiler. Yanlış kullanım hatalı sonuçlar verebilir. Örneğin, Aggr() işlevi içindeki boyutlardan farklı boyutlara sahip bir tabloda. Daha fazla bilgi için bkz. When should AGGR not be used?

Mümkün olduğunda küme analizi kullanılır

Mevcut seçimler tarafından tanımlanan normal kümeden farklı bir veri değerleri kümesi tanımlamak için küme analizini kullanabilirsiniz. Daha fazla bilgi için bkz. Set analizi.

Mümkün olduğunda dize karşılaştırmalarından kaçınılır

Dize karşılaştırmaları küme analizi kadar verimli değildir. Örneğin, Match(), MixMatch(), WildMatch() ve Pick() işlevlerinden kaçınmalısınız. Bunun yerine komut dosyasında bayraklar oluşturun veya küme analizi kullanın. Daha fazla bilgi için bkz. Koşullu fonksiyonlar ve Performance of conditional aggregations.

Yoğun hesaplamalar içeren nesnelerde hesaplama koşulları kullanılır

Hiçbir seçim olmadığında birçok kayda sahip görselleştirmeleriniz olabilir. En iyi uygulama olarak, nesnelere hesaplama koşulları ekleyin, böylece yalnızca belirli seçimler yapıldıktan sonra oluşturulurlar. Bu, çok büyük hiperküplerin oluşturulmasını durdurur. Örneğin: GetSelectedCount([Country])=1 OR GetPossibleCount([Country])=1. Bu senaryoda, kullanıcı tek bir ülke seçmedikçe veya yalnızca tek bir ülkenin mümkün olduğu başka seçimler yapmadıkça görselleştirme oluşturulmaz.

Hesaplamalar mümkün olduğunda komut dosyasında önceden hesaplanır

Veri modelinin en düşük ayrıntı düzeyindeki herhangi bir hesaplama komut dosyasında hesaplanmalıdır. Örneğin, bir tablodaki aynı kayıtta Sales ve Cost varsa, Sales - Cost AS Margin hesaplayarak marjı elde edebilirsiniz. Ayrıca, seçime göre değişmeyeceklerini veya farklı bir ayrıntı düzeyine bağlı olduklarını biliyorsanız diğer değerleri önceden toplayabilirsiniz.

Tablolar 15'ten az sütuna sahiptir ve hesaplama koşulları vardır

15 sütunlu bir tablo geniş olarak kabul edilebilir. Tablolarınız birçok kayıttan oluşuyorsa, tablo nesnesinde hesaplanan koşulları kullanmalısınız, böylece yalnızca belirli seçimler veya kriterler karşılandıktan sonra oluşturulur. Tablonuz çok genişse şunları göz önünde bulundurun:

  • Koşullu olarak gösterilen birden fazla daha küçük tablo oluşturmak.
  • Sütunları koşullu olarak göstermek için yöntemler kullanmak.
  • Tablolarınızı yalnızca analiziniz için gerekli olan alanlarla sınırlı tutmak.

Sayfalar aşırı sayıda nesneye sahip değildir

Kullanıcı sayfaya gittiğinde nesneler hesaplanır. Bir kullanıcı o sayfada her seçim yaptığında, mevcut durum önbellekte yoksa her nesne yeniden hesaplanacaktır. Birçok grafiğe sahip bir sayfanız varsa, kullanıcı neredeyse her seçimde her nesnenin hesaplanmasını beklemek zorunda kalacaktır. Bu, motora önemli bir yük bindirir. En iyi uygulama olarak, temiz ve minimal bir uygulama geliştirmek için Dashboard/Analysis/Reporting (DAR) konseptini izleyin. Daha fazla bilgi için bkz. DAR methodology.

Sayısal bayraklar, küme analizinde kullanılmak üzere komut dosyasında değerlendirilir

Bayraklarla küme analizi, dize karşılaştırmaları veya çarpma kullanmaktan daha verimli olabilir.

İfadeler için kullanılan ana öğeler veya değişkenler

Ana öğeler, yönetilen metriklerin sürükle ve bırak yöntemiyle taşınmasını sağlar ve ifadelerin önbelleğe alınmasını garanti eder. Örneğin, Sum(Sales), SUM(Sales) ifadesinden farklıdır. İfadeler yazım ve büyük/küçük harf durumuna göre önbelleğe alınır ve yeniden kullanılabilmeleri için kelimesi kelimesine eşleşmeleri gerekir.

Veri yükleme performansı

Qlik Cloud içindeki uygulamalarla çalışırken sorunsuz ve uyumlu bir deneyim için veri yüklemeyi optimize etmek önemlidir. Bu bölüm, performansı etkileyen faktörleri vurgular ve performans sorunlarının nasıl önleneceği konusunda rehberlik sağlar.

Qlik Data Gateway - Doğrudan Erişim

Verileri uygulamanıza yeniden yüklemek için Qlik Data Gateway - Doğrudan Erişim kullandığınızda, aşağıdaki faktörler performansı etkiler:

  • Data Gateway'i barındıran makine ile veritabanı arasındaki Bağlantı hızı ve gecikme süresi.

  • Data Gateway'i barındıran makine ile Qlik Cloud kiracınız arasındaki Bağlantı hızı ve gecikme süresi. İdeal olarak, gelişmiş performans için Data Gateway'i Qlik Cloud kiracınızla aynı bölgede barındırın.

Veritabanı depolama

Yavaş depolama bağlantıları yeniden yükleme sürelerini artırabilir. Şirket içinde veya bulutta barındırılan veritabanları için aşağıdakileri göz önünde bulundurun:

  • Şirket içi: Veritabanınız şirket içindeyse ve bir sunucuyu diğer uygulamalarla paylaşıyorsa, performansı bu diğer uygulamaların etkinliklerinden etkilenebilir.

  • Bulut: Doğru boyutlandırıldığında, bulut veritabanları genellikle şirket içi veritabanlarından daha iyi performans sunar. En iyi sonuçlar için, bulut depolamanız için Qlik Cloud kiracınıza yakın bir bölge seçin.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız lütfen bize bildirin!