Veri ambarı veya veri analizi için Canias tablolarında data modelling işlemini gerçekleştirirken önemli yöntemlerden biri kompozit anahtar. Kompozit anahtarın kullanımı modelleme yaparken, dimension ve fact tabloları arasında bize otomatik one-to-many ilişkisi sağlıyor.
Bu örnekte IASPURITEM, IASPURHEAD, IASCUSTOMER tablolarını kullanıyoruz, item bazında analizler için IASPURITEM tablosunu da fact olarak dahil ettim ama öncelikle kompozit anahtar konusuna bir giriş yapalım.
Canias’ta bir sql sorgusu üzerinden kompozit anahtarı örneklendirelim;
SELECT * FROM BOMITEMX
WHERE COMPANY = BOMHEAD_COMPANY
AND PLANT = BOMHEAD_PLANT
AND MATERIAL = BOMHEAD_MATERIAL
AND ALTERNUM = BOMHEAD_ALTERNUM
AND CLIENT = SYS_CLIENT
AND VALIDFROM = STARTDATE
Where sonrası ifadelerden de gördüğünüz gibi; COMPANY, PLANT, MATERIAL, ALTERNUM, CLIENT, VALIDFROM kolonlarıyla bir kompozit anahtar sorgusu yapılıyor. Bu sorgudan 02-01-MATNUM-00-00-01012024 gibi benzersiz bir kompozit anahtar ile sorgu gerçekleştirmiş oluyoruz.
Power Bi sql bağlantısı sayfasından tablolarımızı seçtikten sonra Data Transform sayfasına ulaşıyoruz. Veya modelleme sayfasından da ulaşabilirsiniz. Kolonları CTRL basılı tutarak seçiyoruz ve sağ tıklayıp Merge Columns yapıyoruz.
Bu işlem sonrasında aşağıdaki gibi birleştirilmiş bir kolon elde ediyoruz. CLIENT-COMPANY-ORDERTYPE-ORDERNUM şeklinde olduğunu görebilirsiniz. Firmanın yapısına bağlı olarak PLANT de eklenebilir bu anahtara. IASPURITEM ve IASPURHEAD bu kompozit anahtarla analiz edilebilir.
00-02-O1-19010001 |
Yine IASCUSTOMER tablosu için de anahtarı oluşturuyoruz. Yukarıdaki yöntemle CLIENT-COMPANY-CUSTOMER kolonları ile kompozit anahtar oluşturuyoruz ve IASPURHEAD tablomuzda aynı şekilde oluşturduğumuz kompozit anahtarla eşleştirmiş oluyoruz.
Model View aşamasında bir kolon adını CTRL basılı şekilde diğer kolon adına bıraktığınızda otomatik olarak ONE-TO-MANY ilişkisini tanıdığını görebilirsiniz. IASPURHEAD tablosundaki tedarikçi kolonu için de yine IASCUSTOMER tablosu için kompozit anahtar çalışması yapmamız gerekiyor. Son halde görüntü aşağıdaki gibi olacaktır. Fact tablosu olarak IAPURHEAD, dimension olarak da IASCUSTOMER tablosunu görebilirsiniz.
Mevcut ilişkilerle filter propagation konusunu da görebileceğiniz, Veri görselleştirme yapacağımız ve dax sorguları yazacağımız sonraki yazıda görüşmek üzere.