Daha önce yüklenmiş bir tablodan verileri yükleme

Daha önce yüklenmiş bir tablodan veri yüklemenin ve dönüştürmenin iki yolu vardır.

  • Resident LOAD - burada yeni tablo yüklemek için Resident koşunu sonraki bir LOAD deyiminde kullanırsınız.
  • Öncelikli yükleme - burada bir kaynak belirtmeden önceki LOAD veya SELECT deyiminden yükleme yaparsınız.

Resident mı, yoksa öncelikli LOAD mu?

Çoğu durumda, iki yöntemden herhangi biri kullanılarak aynı sonuç elde edilebilir. Öncelikli LOAD genellikle daha hızlı olan seçenektir, ancak Resident LOAD kullanmanız gereken durumlarla da karşılaşabilirsiniz:

  • LOAD deyimini işlemeden önce kayıtları sıralamak için Order_by cümlesini kullanmak istediğiniz durumlar.
  • Öncelikli LOAD deyiminin desteklenmediği şu öneklerden herhangi birini kullanmak istediğiniz durumlar:
    • Crosstable
    • Join
    • Intervalmatch

Resident LOAD

Daha önce yüklenmiş bir tablodan veri yüklemek için, Resident koşulunu bir LOAD deyimi içinde kullanabilirsiniz. Bu kullanım, SELECT deyimiyle yüklenmiş veriler üzerinde hesaplamalar yapmak istediğinizde ve tarih veya sayısal değer işleme gibi Qlik Sense fonksiyonlarını kullanma seçeneğiniz bulunmadığı durumlarda yararlı olur.

Example:  

Bu örnekte, tarih yorumlaması ilk Crosstable LOAD içinde yapılamadığından Resident yüklemesinde gerçekleştirilmektedir.

PreBudget: Crosstable (Month, Amount, 1) LOAD Account, Jan, Feb, Mar, … From Budget; Budget: Noconcatenate LOAD Account, Month(Date#(Month,'MMM')) as Month, Amount Resident PreBudget; Drop Table PreBudget;
Tip: Resident kullanımı için yaygın bir örnek, hesaplamalar veya filtreleme için geçici bir tablo kullanmak istediğiniz durumlardır. Geçici tablo ile amacınıza ulaştıktan sonra Drop table deyimi kullanılarak tablo bırakılmalıdır.

Öncelikli yükleme

Öncelikli yükleme özelliği bir tabloyu tek geçişte yüklemenizi, ancak yine de birbirini izleyen çeşitli dönüşümler tanımlayabilmenizi sağlar. Temel olarak, normalde yaptığınız şekilde From veya Resident gibi bir kaynak niteleyicisi belirtmeksizin aşağıdaki LOAD veya SELECT deyiminden yükleme yapan bir LOAD deyimidir. İstediğiniz sayıda LOAD deyimini bu şekilde yığınlayabilirsiniz. Önce en alttaki deyim değerlendirilir, sonra üstündeki deyim değerlendirilir ve en üstteki deyim değerlendirilinceye kadar bu böyle devam eder.

Aynı sonuca Resident kullanarak da ulaşabilirsiniz, ancak çoğu durumda öncelikli LOAD daha hızlı olacaktır.

Öncelikli yüklemenin bir diğer avantajı, hesaplamayı tek bir yerde tutabilmeniz ve üstte yer alan LOAD deyimlerinde yeniden kullanabilmenizdir.

Example 1: SELECT deyimi ile yüklenen verileri dönüştürme

Bir veritabanından verileri SELECT deyimi kullanarak yüklerseniz, SELECT deyimindeki verileri yorumlamak için Qlik Sense fonksiyonlarını kullanamazsınız. Bunun çözüm yolu, veri dönüştürme işlemini yaptığınız noktada SELECT deyiminin yukarısına bir LOAD deyimi eklemektir.

Bu örnekte, dize olarak saklanan bir tarihi yorumlamak için LOAD deyimi içinde Qlik Sense Date# fonksiyonunu kullanıyor ve önceki SELECT deyimini de kaynak olarak kullanıyoruz.

LOAD Date#(OrderDate,'YYYYMMDD') as OrderDate;
SQL SELECT OrderDate FROM … ;

Example 2: Hesaplamaları yeniden kullanarak kodunuzu basitleştirme

Bu örnekte, bir hesaplamayı kod içinde birçok kez kullanıyoruz:

LOAD Age(FromDate + IterNo() – 1, BirthDate ) as Age, Date(FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

Hesaplamayı ilk geçişe koyduğumuzda, öncelikli bir LOAD deyimindeki Age fonksiyonunda yeniden kullanabiliriz:

LOAD ReferenceDate, Age(ReferenceDate, BirthDate ) as Age; LOAD *, Date(FromDate + IterNo() – 1 ) as ReferenceDate Resident Policies While IterNo() <= ToDate - FromDate + 1 ;

Önceki yükleme sınırlamaları

  • Şu önekler, önceki LOAD ile birlikte kullanılamaz: Join, Crosstable ve Intervalmatch.
  • Benzersiz kayıtları yüklemek için distinct kullanıyorsanız distinct yalnızca hedef tabloyu etkilediğinden birinci load deyimine distinct öğesini yerleştirmeniz gerekir.

See also: