Power BI ‘da XML İle Veri Alma İşlemi (Get Data From Web)

Bazen raporlarımızda web sitelerinde bulunan verilere ihtiyaç duyarız.(Döviz Kurları, Hava Durumu, Fiyat Bilgileri vb.) İşte bu verileri XML ile çekerek raporlarımızda göstermek Power BI’ ın oldukça fonksiyonel özelliklerinden biridir.

Bu sebepten bu yazımda, genelde kolay gibi görünen fakat hatalarla karşılaşılan bu veri alma özelliğini anlatmaya çalışacağım.

Bu seferki senaryomuzda, Merkez Bankasından günlük kurların çekilip raporlarda kullanılması örneğini vereceğim.

 

Power BI ‘da XML İle Veri Alma (Get Data From Web)

  1. Power BI Desktop uygulamasında Get Data bölümünden Web sekmesi seçilir.

 

Power BI 'da XML İle Veri Alma

Power BI Desktop (Masaüstü) Get Data

 

 

2. Burada açılan ekranda kullanmak istediğimiz web adresini ekleyip ve OK butonuna basıyoruz.

 

Power BI Desktop Add Website Screen - Power BI 'da XML İle Veri Alma

Power BI Desktop (Masaüstü) Web Sitesi Ekleme Ekranı

 

 

3. Eğer web adresinizi yanlış yazma gibi bir hata yapmadıysanız aşağıdaki gibi bir ekranla karşılaşacaksınız. Düzenleme kısmını daha sonra yapacağımız için bu bölümde Edit yerine Load butonunu tıklayarak devam ediyoruz.

 

Power BI 'da XML İle Veri Alma

Power BI Desktop (Masaüstü) Eklenen Web Sitesi

 

 

4. Yeri gelmişken XML ile veri çekmenin diğer bir yolundan daha bahsetmek istiyorum. Kod bölümüne yazılacak bir kod parçası ile de bu işlemi gerçekleştirebiliriz. Aşağıdaki ekranda göründüğü gibi Get Data bölümünden Blank Query sekmesi seçilir.

 

Power BI 'da XML İle Veri Alma

Power BI Blank Query Kod Ekleme Ekranı

 

 

5. Açılan Edit Queries ekranında kod yazılabilen ilgili bölüme ;

=Xml.Tables(Web.Contents(http://www.tcmb.gov.tr/kurlar/today.xml)) şeklinde kod yazılarak yukarıda yapmış olduğumuz XML veri ekleme işleminin aynısı gerçekleştirilebilir. (Kullanılan dil M Dilidir. Zaman buldukça bu dil ile ilgili eğitim yazıları da yazmaya çalışacağım.)

 

Power BI 'da XML İle Veri Alma

Power BI Desktop Blank Query Ekranı

 

 

6. Artık veri alacağımız siteden XML ile verileri çekmiş olduk. Bu bölümden sonra raporlarımızda kullanmak istediğimiz verilerle ilgili bazı ayarları yapmamız gerekebilir. Şimdi onlardan bahsetmek istiyorum.

 Aşağıdaki ekranda görüldüğü üzere eklenen verinin tarihsel bilgileri (5.12.2017) ve bu veriyi matris şeklinde barındıran table isimli link bulunmaktadır. Bu bölümü tıklayarak veri kümesini inceliyoruz.

Ayrıca eklenen Query ‘ i isimlendirmek çok sayıda veri kümesi içeren bir  .pbix dosyasında verileri takip edebilmek ve hızlı ulaşabilmek açısından son derece önemlidir. Bu değişikliği Edit Queries ekranının sağ tarafından PROPERTIES – Name bölümünden yapabiliriz.

 

Power BI 'da XML İle Veri Alma

Edit Queries – Table

 

 

7. Veri kümesini incelediğimizde çapraz kurların (Cross Rate) yanı sıra, Döviz kurlarının Türk Lirası karşılığının Döviz Alış-Satış (Forex Selling –Buying) ve Efektif Alış-Satış (Banknote Selling-Buying) şeklinde oluştuğunu görüyoruz.

 

Power BI 'da XML İle Veri Alma

Power BI Desktop Edit Queries Ekranı

 

Applied Steps Bölümünün Kullanımı

8. Bu tablodaki verilerin hepsine ihtiyaç duymuyor olabiliriz. Bu kolonların bazılarının gelmesini istiyorsak birkaç adımda bu işlemi gerçekleştirebiliriz.

Bu adımı daha önce gerçekleştirebilirdik fakat hem çekilen XML verisinin tamamını görmek için hem de Applied Steps bölümünün kullanımını anlamak açısından bu işlemi bu bölümde ayrı olarak göstermek istedim.

Sağ tarafta bulunan Applied Steps bölümünden Changed Type adımına tekrar dönelim.

 

Power BI 'da XML İle Veri Alma

Power BI Applied Steps Bölümü

 

 

9. Veriyi ilk eklediğimiz andaki ekrana Applied Steps ile geri giderek tekrar görüntülemiş olduk. Veriler üzerinde yaptığımız değişiklikleri bu bölümden iptal edebilir, eski haline döndürebiliriz.

Bu bölümde Currency kolon başlığının yan tarafında bulunan çift ok simgesine tıklıyoruz.

 

Power BI 'da XML İle Veri Alma

Power BI Edit Queries Column

 

 

10. Açılan pencerede çekilen XML verisinin içerisinde bulunan tüm kolonlar görüntülenir. Verisine ihtiyacımızın olduğu kolonlar işaretlenir. Ayrıca pencerenin alt bölümünde bulunan Use original column name as prefix ifadesi seçili kalır ise seçmiş olduğumuz kolonların hepsinin önüne table’ ın ismi eklenir. (Currency.İsim, Currency.CurrencyName vb.)

 

Alanların Seçilmesi ve Tablo İsminin Ön Ek Olarak Gelmesi -Power BI 'da XML İle Veri Alma

Kullanılacak Alanların Seçilmesi ve Tablo İsminin Ön Ek Olarak Gelmesi

 

Power BI 'da XML İle Veri Alma

Tablonun Ön Ek Olarak Seçilmesi

 

11. Applied Steps Bölümünün Kullanımı başlığını burada sonlandırıp, günlük dolar kurunun ve Euro/Dolar çapraz kurunun raporlara eklenmesi adımına tekrar devam ediyorum. Currency Table’ ını görüntülemek için Table linkini tıklıyoruz.

 

Power BI 'da XML İle Veri Alma

Applied Steps Bölünden Currency’ i Seçilerek XML Verisi İle İlgili Örneğe Devam Ediyoruz

 

Power BI 'da XML İle Veri Alma

Currency Table

 

 

12. Gelen matriste kullanmak istediğimiz döviz kurunun ki burada ilk olarak ABD Dolarının – TL karşılığını almak istiyorum. Bu sebepten örnek raporumuzda ABD Dolarının TL karşılığının Efektif Alışını (BanknoteBuying) raporumda kullanacağız.

 

Power BI 'da XML İle Veri Alma

ABD Doları – TL Karşılığının Alınması

 

 

13. Bunun yanı sıra Euro/Dolar çapraz kurunu da raporumuzda kullanabileceğimiz için EURO’ nun, ABD Doları çapraz kurunun (Currency.CrossRateUSD) bulunduğu alanı da seçiyoruz.

 

Power BI 'da XML İle Veri Alma

EUR-ABD Doları Çapraz Kur Tablosu

 

 

14. Tüm bu işlemlerden son aşağıdaki ekranda göründüğü üzere Günlük ABD Dolar kurunun Türk Lirası karşılığını ve EUR-ABD Doları çapraz kurunu raporumuza eklemiş olduk.

ABD-TRY Currency - Power BI 'da XML İle Veri Alma

ABD Doları -TRY Karşılığı

 

 

15. Burada atlanmaması gereken önemli bir husus bulunmaktadır. Gelen verideki değerde (3.8597) basamak değerleri nokta ile ayrılmıştır.

Power BI’ da bu ayırma işlemi virgül ile yapıldığı için bu uyumsuzluğu giderecek bir işlem yapmamız gerekir. Bu sebepten Element:Text diye adlandırılmış kolon başlığa sağ tıklanır ve açılan menüden ReplaceValues… seçilir.

 

Edit Queries - Replace Values - Power BI 'da XML İle Veri Alma

Edit Queries – Replace Values

 

 

16. Açılan ekranda .(nokta) yerine ,(virgül) yazılmasını sağlayan bölümler doldurulur ve OK butonuna basılır.

Value To Find –> .

Replace With  –> ,

 

Nokta Yerine Virgülün Yazılması (Replace Values) - Power BI 'da XML İle Veri Alma

Nokta Yerine Virgülün Yazılması (Replace Values)

 

 

17. Son olarak alınan kur değerinin üzerinde matematiksel işlemler yapılabilmesi için Text olan Veri Tipinin Decimal Number olarak değiştirilmesi gereklidir. Bu işlem için aşağıda yer alan ekran görüntüsündeki işlem yapılır.

 

Power BI 'da XML İle Veri Alma

Text Veri Tipinin Decimal Number Olarak Değiştirilmesi

 

 

18. Edit Queries ekranındaki işlemlerimizi tamamlamış olduk. Close & Apply diyerek kaydedip çıkıyoruz.

 

Power BI 'da XML İle Veri Alma

Edit Queries – Close and Apply

 

 

19. Artık Power BI Desktop ekranından bulunan Fields bölümünde yer alan kur verilerini PowerBI Görselleri (Visualizations) ile birlikte kullanabiliriz.

 

Power BI 'da XML İle Veri Alma

Power BI Desktop -Verilerin Görsellere Atanması

 

 

Power BI ‘ da Web‘ ten veri alma işlemi ile ilgili olarak bir çok örneği barındıran Power BI’ da Euroleague Analizi (Euroleague Analysis) başlıklı yazımı da inceleyebilirsiniz.

Ayrıca bu yazımın devamı sayılabilecek; web sitesinden veri çekerek çeşitli matematiksel ve dönüşüm işlemlerini DAX fonksiyonları ile gerçekleştirip, Measure ve Column ‘lar oluşturduğum, Power BI ‘da DAX ile Measure ve Column Kullanımı başlıklı yazımı incelemenizi tavsiye ederim.

Umarım sizin için faydalı bir yazı olmuştur. Görüşlerinizi, önerilerinizi ve sorularınızı yorum bölümüne yazabilirsiniz. Vakit buldukça cevaplamaya çalışacağım.

Görüşmek dileğiyle…

10 Comments

  1. Eser
      • Eser
  2. Burçin SARIHAN
  3. Hakan Durmuş
  4. Selçuk

Reply

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.