Farklı tablolardan veri yüklerken, aynı şeyi belirten alan değerlerinin her zaman tutarlı şekilde adlandırılmadığını unutmayın. Bu tutarlılık eksikliği sinir bozucu olmanın yanı sıra, ilişkileri de engeller; sorunun çözülmesi gerekir. Bu, alan değerlerinin karşılaştırılması için bir eşleme tablosu oluşturarak düzenli bir şekilde gerçekleştirilebilir.
Eşleme tabloları
mapping load veya mapping select ile yüklenen tablolar, diğer tablolardan farklı bir şekilde işlenir. Bunlar, belleğin ayrı bir alanında depolanır ve yalnızca kod yürütme sırasında eşleme tabloları olarak kullanılır. Bunlar kod yürütmenin ardından otomatik olarak bırakılır.
Kurallar:
- Eşleme tablosu, birincisi karşılaştırma değerlerini içerecek ve ikincisi istenen eşleme değerlerini içerecek şekilde iki sütuna sahip olmalıdır.
- İki sütun adlandırılmalıdır, ancak adlar kendi içinde ilgili olmamalıdır. Sütun adları, normal dahili tablolardaki alan adlarıyla bağlantılı değildir.
Eşleme tablosu kullanma
Ülkeleri listeleyen birkaç tablo yüklerken, anı ülkenin birkaç farklı ada sahip olduğunu görebilirsiniz. U.S.A. bu örnekte US, U.S., ve United States olarak listelenmektedir.
Birleştirilmiş tabloda Amerika Birleşik Devletleri'ni belirten üç farklı kaydın oluşmasını engellemek için, gösterilene benzer bir tablo oluşturun ve bunu bir eşleme tablosu olarak yükleyin.
Kodun tamamı şu görünüşe sahip olmalıdır:
CountryMap:
Mapping LOAD x,y from MappingTable.txt
(ansi, txt, delimiter is ',', embedded
labels);
Map Country using CountryMap;
LOAD Country,City from CountryA.txt
(ansi, txt, delimiter is ',', embedded labels);
LOAD Country, City from CountryB.txt
(ansi, txt, delimiter is ',', embedded labels);
mapping deyimi MappingTable.txt dosyasını, CountryMap etiketi ile bir eşleme tablosu olarak yükler.
map deyimi, önceden yüklenmiş CountryMap eşleme tablosunu kullanarak Country alanının eşlenmesini etkinleştirir.
LOAD deyimleri CountryA ve CountryB tablolarını yükler. Aynı alan kümesine sahip olduğu için birleştirilecek olan bu tablolar, alan değerleri eşleme tablosunun ilk sütunuyla karşılaştırılacak olan Country alanını içerir. US, U.S. ve United States alan değerleri bulunur ve eşleme tablosunun ikinci sütununun değerleriyle, yani USA ile değiştirilir.
Otomatik eşleme, alanın Qlik Sense tablosunda depolanmasıyla sonuçlanan olay zincirinde son olarak gerçekleştirilir. Tipik bir LOAD veya SELECT ifadesi için, olayların sıralaması kabaca şu şekildedir:
- İfadelerin değerlendirilmesi
- Alanların as ile yeniden adlandırılması
- Alanların alias ile yeniden adlandırılması
- Uygunsa, tablo adının nitelendirilmesi
- Alan adlarının eşleşmesi durumunda verilerin eşlenmesi
Bu, bir ifadenin parçası olarak bir alan adıyla her karşılaşıldığında değil, değer Qlik Sense tablosundaki alan adının altında depolandığında eşlemenin gerçekleştirildiği anlamına gelir.
Eşlemeyi devre dışı bırakmak için, unmap deyimini kullanın.
İfade düzeyinde eşleme için, applymap fonksiyonunu kullanın.
Alt dizge düzeyinde eşleme için, mapsubstring fonksiyonunu kullanın.