Ana içeriğe geç

QVD dosyaları

QVD (QlikView Data) dosyası, Qlik Sense veya QlikView uygulamasından dışa aktarılmış bir veri tablosu içeren bir dosyadır. QVD, yerel bir Qlik biçimidir ve yalnızca Qlik Sense uygulamasına yazılabilir ve QlikView tarafından okunabilir. Dosya biçimi bir Qlik Sense kodundan veri okuma sırasında hız sağlamak için optimize edilmiştir, ancak oldukça kompakt olan yapısını korumaktadı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.

QVD dosyaları iki modda okunabilir: standart (hızlı) ve optimize (daha hızlı). Seçilen mod, Qlik Sense kod altyapısı tarafından otomatik olarak belirlenir. Optimize mod yalnızca tüm yüklü alanların herhangi bir dönüşüm (alanlar üzerinde etkili olan formüller) olmadan okunduğu durumlarda kullanılabilir, ancak alanların yeniden adlandırılmasına izin verilir. Qlik Sense uygulamasının kayıtların paketini açmasına neden olan bir Where cümlesi de optimize yüklemeyi devre dışı bırakır.

QVD dosyası tam olarak bir veri tablosu içerir ve üç parçadan oluşur:

  • Tablodaki alanları, sonraki bilgilerin düzenini ve bazı diğer meta verileri açıklayan bir XML üst bilgisi (UTF-8 karakter kümesinde).
  • Bayt dolgulamalı biçimdeki sembol tabloları.
  • Bit dolgulamalı biçimdeki gerçek tablo verisi.

QVD dosyaları birçok amaçla kullanılabilir. Dört ana kullanım kolayca tanımlanabilir. Birden fazla kullanım, belirli bir durum için geçerli olabilir:

  • Veri yükleme hızını artırma
  • Değişmeyen veya yavaş değişen giriş verilerinin QVD dosyalarında ara belleğe alınmasıyla, kod yürütme büyük veri kümeleri için önemli ölçüde hızlandırılır.

  • Veritabanı sunucularında yükü azaltma
  • Harici veri kaynaklarından alınan verilerin miktarı da önemli ölçüde azaltılabilir. Bu, harici veritabanları ve ağ trafiği üzerindeki iş yükünü azaltır. Ayrıca, birkaç Qlik Sense kodunun aynı verileri paylaştığı durumlarda, verilerin kaynak veritabanından bir QVD dosyasına bir kez yüklenmesi gerekir. Diğer uygulamalar aynı verileri bu QVD dosyasıyla kullanabilir.

  • Birden çok Qlik Sense uygulamasına ait verileri birleştirme.
  • Binary kod deyimiyle, tek bir Qlik Sense uygulamasından başka bir tanesine veri yüklemek mümkündür; ancak QVD dosyalarıyla, bir Qlik Sense kodu herhangi bir sayıda Qlik Sense uygulamasına ait verileri birleştirebilir. Bu, farklı iş birimlerine ait benzer verileri birleştiren uygulamalar için yeni olasılıkların önünü açar.

  • Artışlı yükleme
  • Yaygın olarak görülen birçok durumda QVD fonksiyonu, büyümekte olan bir veritabanından özel olarak yeni kayıtlar yüklenerek artışlı yüklemeyi kolaylaştırmak için kullanılabilmektedir.

QVD dosyaları oluşturma

QVD dosyası iki şekilde oluşturulabilir:

  • Qlik Sense kodundaki Store komutunu kullanarak açık oluşturma ve adlandırma.
  • Kod içinde önceden okunan bir tablonun veya bunun bir parçasının seçtiğiniz bir konumdaki açıkça adlandırılmış bir dosyaya dışa aktarılmasını belirtin.

  • Koddan otomatik oluşturma ve bakım.
  • Qlik Sense bir load veya select deyiminden önce Buffer önekini kullanarak, belirli koşullar altında veriler yeniden yüklenirken orijinal veri kaynağının yerine kullanılabilecek bir QVD dosyasını otomatik olarak oluşturur.

Sonuç olarak elde edilen QVD dosyaları arasında örneğin okuma hızı açısından bir fark yoktur.

Store

Bu kod işlevi, adları QVD, CSV veya txt olan bir dosya oluşturur.

Söz Dizimi:  

Store[ *fieldlist from] table into filename [ format-spec ];

Deyim yalnızca bir veri tablosundan alanları dışa aktarabilir. Birkaç tablodan alanlar dışa aktarılacaksa, dışa aktarılması gereken veri tablosunu oluşturmak için kodda önceden açık bir join yapılmalıdır.

Metin değerleri, CSV dosyasına UTF-8 biçiminde dışa aktarılır. Bir sınırlayıcı belirtilebilir, bkz. LOAD. Bir CSV dosyasına yönelik store deyimi BIFF dışa aktarımı desteklemez.

Store mytable into [lib://DataFiles/xyz.qvd]; Store * from mytable into [lib://DataFiles/xyz.qvd]; Store myfield from mytable into [lib://DataFiles/xyz.qvd]; Store myfield as renamedfield, myfield2 as renamedfield2 from mytable into [lib://DataFiles/xyz.qvd]; Store mytable into [lib://DataFiles/myfile1.txt]; Store mytable into [lib://DataFiles/myfile2.csv];

  1. Gelişmiş Kodlama Eğitimi uygulamasını açın.
  2. Product kod bölümüne tıklayın.
  3. Kodun sonuna şunu ekleyin:
  4. Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

    Kodunuz şöyle görünmelidir:

    CrossTable(Month, Sales) LOAD     Product,     "Jan 2014",     "Feb 2014",     "Mar 2014",     "Apr 2014",     "May 2014" FROM [lib://DataFiles/Product.xlsx]  (ooxml, embedded labels, table is Product);  Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

  5. Verileri yükle'ye tıklayın.
  6. Product.qvd dosyası artık dosya listesinde olmalıdır.

    Bu veri dosyası, Crosstable kodunun sonucudur ve her bir kategori (Product, Month, Sales) için bir sütun olmak üzere üç sütunlu bir tablodur. Bu veri dosyası, artık tüm Product kod bölümünü değiştirmek için kullanılabilir.

QVD dosyalarından veri okuma

Aşağıdaki yöntemlerle, QVD dosyası Qlik Sense uygulamasına okunabilir veya uygulama tarafından bu dosyaya erişilebilir:

  • QVD dosyasını açık veri kaynağı olarak yükleme. QVD dosyalarına, tüm diğer metin dosyası türlerinde (csv, fix, dif, biff, vb.) olduğu gibi Qlik Sense kodundaki bir load deyimi ile referansta bulunulabilir.
  • LOAD * from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1, fieldname2 from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1 as newfieldname1, fieldname2 as newfieldname2 from [lib://DataFiles/xyz.qvd](qvd);
  • Arabelleğe alınan QVD dosyalarını otomatik olarak yükleme. Buffer öneki load veya select deyimlerinde kullanıldığında, okumaya yönelik açık deyimler gerekli değildir. Qlik Sense, orijinal LOAD veya SELECT deyimiyle veri almaya kıyasla, QVD dosyasına ait verileri ne ölçüde kullanacağını belirler.
  • QVD dosyalarına koddan erişme. Birkaç kod fonksiyonu (tümü QVD ile başlayan), QVD dosyasının XML üst bilgisinde bulunan verilerle ilgili çeşitli bilgileri almak için kullanılabilir.

  1. Product kod bölümündeki kodun tamamını derleme dışında bırakın.
  2. Aşağıdaki kodu girin:
  3. Load * from [lib://DataFiles/ProductData.qvd](qvd);			

  4. Verileri yükle'ye tıklayın.
  5. Veriler QVD dosyasından yüklenir.

    Veri yükleme ilerleme penceresi

    Veri yükleme ilerleme penceresi.
Bilgi notuArtışlı yüklemeler için QVD dosyalarını kullanma hakkında bilgi almak için Qlik Community bölümündeki blog gönderisine göz atın: Overview of Qlik Incremental Loading (Qlik Artışlı Yüklemelere Genel Bakış)

Buffer

QVD dosyaları Buffer önekiyle otomatik olarak oluşturulabilir ve korunabilir. Bu önek, koddaki çoğu LOAD ve SELECT deyiminde kullanılabilir. QVD dosyalarının deyimin sonucunu önbelleğe/arabelleğe almak için kullanıldığını belirtir.

Söz Dizimi:  

Buffer [ (option [ , option])] ( loadstatement | selectstatement ) option::= incremental | stale [after] amount [(days | hours)]

Bir seçenek kullanılmazsa, kodun ilk yürütülmesiyle oluşturulan QVD belleği süresiz olarak kullanılır.

Örnek:  

Buffer load * from MyTable;

stale [after] amount [(days | hours)]

Amount, zaman dönemini belirten bir sayıdır. Decimals kullanılabilir. Atlandığında birimin günler olduğu varsayılır.

stale after seçeneği, orijinal verilerde basit bir zaman damgasının bulunmadığı durumlarda tipik olarak veritabanı kaynaklarıyla kullanılır. stale after cümlesi, basit bir şekilde, QVD belleğinin oluşturulma zamanında başlayan ve sonrasında geçerli sayılmayacağı bir zaman dönemi belirtir. Bu zamandan önce QVD belleği veriler için kaynak olarak kullanılır ve bundan sonra orijinal veri kaynağı kullanılır. Bu durumda QVD bellek dosyası otomatik olarak güncelleştirilir ve yeni bir dönem başlar.

Örnek:  

Buffer (stale after 7 days) load * from MyTable;

Incremental

incremental seçeneği, temel bir dosyanın yalnızca bir bölümünü okuma özelliğini etkinleştirir. Dosyanın önceki boyutu, QVD dosyasının XML üst bilgisinde depolanır. Bu, özellikle günlük dosyalarıyla kullanışlıdır. Önceki bir durumda yüklenen tüm kayıtlar QVD dosyasından okunurken, takip eden yeni kayıtlar orijinal kaynaktan okunur ve son olarak güncelleştirilmiş bir QVD dosyası oluşturulur.

incremental seçeneğinin yalnızca LOAD deyimleriyle ve metin dosyalarıyla kullanılabileceğini ve eski verilerin değiştirildiği veya silindiği durumlarda artışlı yüklemenin kullanılamayacağını unutmayın.

Örnek:  

Buffer (incremental) load * from MyLog.log;

QVD bellekleri normalde, oluşturduğu uygulamadaki tam kod yürütme boyunca herhangi bir konumda artık kendisine referansta bulunulmadığında veya oluşturduğu uygulama artık var olmadığında kaldırılır. Belleğin içeriklerini QVD veya CSVdosyası olarak tutmak isterseniz Store deyimi kullanılmalıdır.

  1. Yeni bir uygulama oluşturun ve ona bir ad verin.
  2. Veri yükleme düzenleyicisi'ne yeni bir kod bölümü ekleyin.
  3. Sağ menüdeki DataFiles altında Veri seç'e tıklayın.

  4. Karşıya yükleyin ve ardından Cutlery.xlsx öğesini seçin.
  5. Veri seçme kaynağı: penceresinde Kod yerleştir'e tıklayın.
  6. Load deyimindeki alanları derleme dışında bırakın ve load deyimini şu şekilde değiştirin:
  7. Buffer LOAD *

    Kodunuz şöyle görünmelidir:

    Buffer LOAD * //     "date", //     item, //     quantity FROM [lib://DataFiles/Cutlery.xlsx] (ooxml, embedded labels, table is Sheet1);

  8. Verileri yükle'ye tıklayın.
  9. İlk veri yüklemenizde veriler Cutlery.xlsx dosyasından yüklenir.

    Veri yükleme ilerleme penceresi

    Veri yükleme ilerleme penceresi.

    Buffer deyimi de bir QVD dosyası oluşturarak Qlik Sense içinde depolar. Bulut dağıtımında, bulut üzerindeki bir dizinde depolanır.

  10. Yeniden Veri yükle'ye tıklayın.
  11. Bu sefer veriler, verileri ilk defa yüklediğinizde Buffer deyimi tarafından oluşturulan QVD dosyasından yüklenir.
  12. Veri yükleme ilerleme penceresi

    Veri yükleme ilerleme penceresi.

Teşekkürler!

Bu dersi tamamladınız ve umarız Qlik Sense uygulamasında kodlama yapma hakkında daha fazla bilgi edindiniz. Diğer derslerle ilgili daha fazla bilgi için lütfen web sitemizi ziyaret edin.