Join ve Keep ile tabloları birleştirme
Join, iki tabloyu kullanan ve bunları bir tabloda birleştiren bir işlemidir. Sonuçta ortaya çıkan tablonun kayıtları, orijinal tablolardaki kayıtların birleşimleridir; bu genellikle sonuçta ortaya çıkan tablodaki herhangi bir birleşimin bir veya birkaç ortak alan için ortak bir değere sahip olması şeklinde, yani bir natural join ile, gerçekleştirilir. Qlik Sense uygulamasında, join işlemleri kod içinde gerçekleştirilebilir ve mantıksal tablolar oluşturur.
Zaten kodda bulunan tabloları birleştirmek mümkündür. Bu durumda Qlik Sense mantığı ayrı tabloları görmek yerine, tek bir dahili tablo olan birleştirme sonucunu görür. Bazı durumlarda bu gereklidir; ancak bazı dezavantajları da mevcuttur:
- Yüklü tablolar genellikle daha büyük hale gelir ve Qlik Sense daha yavaş çalışır.
- Bazı bilgiler kaybedilebilir: ilk tablodaki sıklık (kayıtların sayısı) artık kullanılamayabilir.
Tablolar Qlik Sense uygulamasında depolanmadan önce iki tablodan birini veya her ikisini tablo verilerinin kesişimine azaltma etkisine sahip olan Keep fonksiyonu, açık birleştirmelerin kullanılması gereken durumların sayısını azaltmak üzere tasarlanmıştır.
Join
Bir birleştirme gerçekleştirmenin en basit yolu, dahili tabloyu başka bir adlandırılmış tabloyla veya önceden oluşturulan son tabloyla birleştiren Join önekini kod içinde kullanmaktır. Birleştirme, iki tabloya ait değerlerin tüm olası bileşimlerini oluşturan bir dış birleştirme olur.
Örnek:
Sonuçta ortaya çıkan dahili tablo a, b, c ve d alanlarına sahiptir. Kayıtların sayısı, iki tablonun alan değerlerine bağlı olarak değişiklik gösterir.
Daha fazla bilgi için bkz. Join.
Join kullanma
Qlik Sense kod dilinde açık Join öneki, iki tablonun tam birleştirmesini gerçekleştirir. Sonuç bir tablodur. Bu tarz birleştirmeler çok büyük tabloların ortaya çıkmasına neden olabilir.
Aşağıdakileri yapın:
- Gelişmiş Kodlama Eğitimi uygulamasını açın.
- Veri yükleme düzenleyicisi'ne yeni bir kod bölümü ekleyin.
- Transactions bölümünü çağırın.
-
Sağ menüdeki DataFiles altında Veri seç'e tıklayın.
- Karşıya yükleyin ve ardından Transactions.csv öğesini seçin.
- Veri seçme kaynağı: penceresinde Kod yerleştir'e tıklayın.
- Karşıya yükleyin ve ardından Salesman.xlsx öğesini seçin.
- Veri seçme kaynağı: penceresinde Kod yerleştir'e tıklayın.
- Verileri yükle'ye tıklayın.
- Veri modeli görüntüleyicisi'ni açın. Veri modeli artık şöyle görünür:
Kodunuz şöyle görünmelidir:
Ancak Transactions ve Salesman tablolarının ayrılması istenen sonucu vermeyebilir. İki tablonun birleştirilmesi daha iyi olabilir.
Aşağıdakileri yapın:
- Birleştirilmiş tabloya bir ad vermek için ilk LOAD deyiminin üzerine şu satırı ekleyin:
- Transactions ve Salesman tablolarını birleştirmek için ikinci LOAD deyiminin üzerine şu satırı ekleyin:
- Verileri yükle'ye tıklayın.
- Veri modeli görüntüleyicisi'ni açın. Veri modeli artık şöyle görünür:
Transactions:
Join(Transactions)
Kodunuz şöyle görünmelidir:
Transactions:
LOAD
"Transaction ID",
"Salesman ID",
Product,
"Serial No",
"ID Customer",
"List Price",
"Gross Margin"
FROM [lib://DataFiles/Transactions.csv]
(txt, codepage is 28591, embedded labels, delimiter is ',', msq);
Join(Transactions)
LOAD
"Salesman ID",
Salesman,
"Distributor ID"
FROM [lib://DataFiles/Salesman.xlsx]
(ooxml, embedded labels, table is Salesman);
Transactions ve Salesman tablolarının tüm alanları artık tek bir Transactions tablosunda birleştirilmiştir.
Keep
Qlik Sense uygulamasının ana özelliklerinden biri, tabloları birleştirmek yerine tablolar arasında ilişkilendirmeler gerçekleştirmektir; bu da bellekteki alanı azaltır, hızı artırır ve büyük ölçüde esneklik sağlar. Keep fonksiyonu, açık birleştirmelerin kullanılması gereken durumların sayısını azaltmak üzere tasarlanmıştır.
İki LOAD veya SELECT deyimi arasındaki Keep öneki, tablolar Qlik Sense ortamında depolanmadan önce iki tablodan birini veya her ikisini tablo verilerinin kesişimine azaltır. Keep önekinin öncesinde her zaman Inner, Left veyaRight anahtar sözcüklerinden biri gelmelidir. Tablolardan kayıt seçimi, karşılık gelen birleştirme ile aynı şekilde gerçekleştirilir. Ancak, iki tablo birleştirilmez ve Qlik Sense içinde iki ayrı ayrı adlandırılmış tablo olarak depolanır.
Daha fazla bilgi için bkz. Keep.
Inner
Veri komut dosyasındaki Join ve Keep öneklerinden önce Inner öneki gelebilir.
Join öğesinden önce kullanılması durumunda, iki tablo arasındaki birleştirmenin iç birleştirme olması gerektiğini belirtir. Sonuç olarak elde edilen tablo yalnızca her iki tarafa ait tam veri kümesiyle iki tablo arasındaki bileşimleri içerir.
Keep öğesinden önce kullanılması durumunda, iki tablonun Qlik Sense içinde depolanmadan önce ortak kesişimlerine azaltılması gerektiğini belirtir.
Örnek:
Bu örneklerde Table1 ve Table2 kaynak tablolarını kullanıyoruz.
Bunların yalnızca örnek olduğunu unutmayın. Qlik Sense içinde tamamlanması gereken başka bir alıştırma yoktur.
A | B |
---|---|
1 | aa |
2 | cc |
3 | ee |
A | C |
---|---|
1 | xx |
4 | yy |
Inner Join
İlk olarak tablolar üzerinde Inner Join yapıyoruz ve her iki tablodan birleştirilen verilerle yalnızca bir satır (her iki tabloda da bulunan tek kayıt) içeren VTable ortaya çıkıyor.
A | B | C |
---|---|---|
1 | aa | xx |
Inner Keep
Bunun yerine Inner Keep uygularsanız hala iki tablonuz olur. İki tablo, A ortak alanı aracılığıyla ilişkilendirilir.
A | B |
---|---|
1 | aa |
A | C |
---|---|
1 | xx |
Daha fazla bilgi için bkz. Inner.
Left
Veri kod dosyasındaki Join ve Keep öneklerinden önce left öneki gelebilir.
Join öğesinden önce kullanılması durumunda, iki tablo arasındaki birleştirmenin sol birleştirme olması gerektiğini belirtir. Sonuç olarak elde edilen tablo yalnızca birinci tabloya ait tam veri kümesiyle iki tablo arasındaki bileşimleri içerir.
Keep öğesinden önce kullanılması durumunda, ikinci tablonun Qlik Sense içinde depolanmadan önce birinci tabloyla ortak kesişimine azaltılması gerektiğini belirtir.
Örnek:
Bu örneklerde Table1 ve Table2 kaynak tablolarını kullanıyoruz.
A | B |
---|---|
1 | aa |
2 | cc |
3 | ee |
A | C |
---|---|
1 | xx |
4 | yy |
İlk olarak tablolar üzerinde bir Left Join yapıyoruz ve Table1'den gelen tüm satırları, Table2 içindeki eşleşen satırlardan gelen alanlarla birleştirilmiş olarak içeren VTable ortaya çıkıyor.
A | B | C |
---|---|---|
1 | aa | xx |
2 | cc | - |
3 | ee | - |
Bunun yerine Left Keep uygularsanız hala iki tablonuz olur. İki tablo, A ortak alanı aracılığıyla ilişkilendirilir.
A | B |
---|---|
1 | aa |
2 | cc |
3 | ee |
A | C |
---|---|
1 | xx |
Daha fazla bilgi için bkz. Left.
Right
Qlik Sense kod dilindeki Join ve Keep öneklerinden önce right öneki gelebilir.
Join öğesinden önce kullanılması durumunda, iki tablo arasındaki birleştirmenin Sağ Birleştirme olması gerektiğini belirtir. Sonuç olarak elde edilen tablo yalnızca ikinci tabloya ait tam veri kümesiyle iki tablo arasındaki bileşimleri içerir.
Keep öğesinden önce kullanılması durumunda, birinci tablonun Qlik Sense içinde depolanmadan önce ikinci tabloyla ortak kesişimine azaltılması gerektiğini belirtir.
Örnek:
Bu örneklerde Table1 ve Table2 kaynak tablolarını kullanıyoruz.
A | B |
---|---|
1 | aa |
2 | cc |
3 | ee |
A | C |
---|---|
1 | xx |
4 | yy |
İlk olarak tablolar üzerinde bir Right Join yapıyoruz ve Table2'den gelen tüm satırları, Table1 içindeki eşleşen satırlardan gelen alanlarla birleştirilmiş olarak içeren VTable ortaya çıkıyor.
A | B | C |
---|---|---|
1 | aa | xx |
4 | - | yy |
Bunun yerine Right Keep uygularsanız hala iki tablonuz olur. İki tablo, A ortak alanı aracılığıyla ilişkilendirilir.
A | B |
---|---|
1 | aa |
A | C |
---|---|
1 | xx |
4 | yy |
Daha fazla bilgi için bkz. Right.