Veriye Nasıl Ulaşacağız?

Power BI’da rapor hazırlamak için Power Query ile veriyi alıp üzerinde oynamak lazım da veriyi nasıl alacağız? Hangi verilere ulaşabiliriz? Nasıl olacak da veri değişince rapor da değişecek? Bu tip sorular ilk zamanlarda kafanızı kurcalayacaktır. Bu yazımda biraz bu konulardan bahsedeyim.

Veri almak için çok sayıda imkanımız var ama Veri al düğmesinin altında listelenmiş sık kullanılanlar (bu yazının yazıldığı sırada) aşağıda göreceğiniz gibi. Bunların bazılarının üzerinden biraz ilerleyelim, detay gereken yerlerde detay veririm.

Excel çalışma kitabı ve Metin/CSV

Excel’den veri almak istediğinizde uygulama doğrudan bilgisayarınızdan bir Excel dosyası seçmenizi isteyecektir. Gayet basit aslında, dosyayı seç, veriyi al. Bunun güzel yanı, ileride Excel dosyası değiştiğinde raporunuzu yenilerseniz rapor da güncellenecek olması. Not edelim, Excel dosyasını kaydetmeden güncelleme yapmayın, kayıtlı dosyaya bakar.

Aynı şekilde Metin ya da CSV dosyasından veri almak istediğinizde de bilgisayarınızdan dosya yolu isteyecektir. Bu durumda da dosyanın adı aynı kaldıkça ileride olacak değişiklikler her rapor yenilemenizde değişecektir.

Bu noktada dikkat etmeniz gereken detay “rapor yenilemesi” kelimeleri. Oldukça detayı olan yenileme konusunu ayrı bir yazıda anlatmayı planlıyorum. Şimdilik burada bahsettiğimiz yenileme Power BI Desktop uygulaması ile çalışırken “Yenile” düğmesi ile yapacağınız yenilemedir, otomatik değildir, manuel olarak tetiklemeniz gerekir. Raporu Power BI Servisine yüklediyseniz de bu yenilemeyi yaptıktan sonra yeniden yüklemeniz gerekir ki oradaki veri modeli de güncellensin.

Anlayacağınız üzere Power BI Servisinde güncelleme konusunu çözmeden akıcı bir yenileme deneyimi bulamayacaksınız, daha çok raporu son haline getirirken yapacağınız yenilemelerde ve/veya kendi kullanımınız için kullanacağınız yerel raporlarda bu bilgileri kullanabilirsiniz. Ancak başka bir yazıda bahsedeceğim üzere, OneDrive kullanıyorsanız bilgisayardan dosya seçmek yerine dosyaya “SharePoint klasörü” bağlantısı ile bağlanıp alırsanız şıkır şıkır güncelleme çalışacaktır.

Power BI anlam modelleri

Yaptığınız ve Power BI Servisine yüklediğiniz her raporun bir de anlam modeli oluşur. İngilizce’de Semantic Model olarak geçen bu model aslında veriyi Power Query ile işledikten sonra raporunuza temel olacak şekilde yüklediğiniz verinin tümünü barındırır. İşte bu modellere bağlı yeni raporlar yapmak da mümkündür ve bazen işe yarar. Model güncellendiğinde tüm raporlar da güncellenecektir.

İşin güzel yanı, sadece sizin raporlarınızın modellerine değil, mülk (tenant) içinde paylaşılan ve sizin erişiminize izin verilmiş olan modellere de bağlanarak onlara bağlı raporlar yapabilirsiniz. Verinin ana kaynağına erişiminiz olmadan yani, harika. Bu seçeneği seçince ulaşabileceğiniz modelleri görürsünüz, seçer bağlanırsınız, ilişkiler dahil veri modeli önünüzde. Deneyin, çok basit.

Aşağıda göreceğiniz üzere ise bu tip bağlantının kısıtı Veri dönüştürme yani Power Query erişiminin kapanması. Başka bir modele bağlandığınız için artık ne varsa onu kullanacaksınız, sadece DAX ile yeni ölçüler ekleyebilirsiniz, yeni sütun da ekleyemezsiniz, ilişkileri değiştiremezsiniz. Yine de iyidir, pratikte işe yarar.

Veri akışları

Bir önceki başlıkta yaşadığınız kısıtların ortadan kalktığı muhteşem bir veri paylaşım şeklidir. Seçtiğinizde aşağıdaki gibi bir gezgin açılır, klasörlerde gezer gibi veri akışı seçer ve bağlanırsınız. Çok derin ve özellikleri olan bu konuyu burada iki cümleyle tarif etmeyi denemek isterim.

Veri akışını Power BI Servisinde yaratılan bir veri tabanı gibi düşünebilirsiniz. Kullanımından önce nasıl yaratıldığından kısaca bahsedeyim. Servisteki çalışma alanınızda Yeni öğe adında bir düğme bulunur.

Bu düğme ile yeni rapor, yeni pano gibi seçeneklere ulaşabilirsiniz. Power BI Desktop olmadan web tabanlı olarak yapabileceğiniz işlere bu düğmeden ulaşırsınız yani. Daha çok detayı var ama basitçe böyle. İşte bu düğmeyle açılan listede sadece 2. Nesil Veri Akışı göreceksiniz. Bu veri akışı sizden Fabric  lisansı ister, seçerseniz otomatik deneme süresi başlatır ve ilerlersiniz. Ama 60 gün sonra deneme biter ve veri akışı ulaşılmaz olur.

Bu nedenle genel çalışma alanınızda değil Pro lisans tipiyle erişilebilecek olan başka bir çalışma alanında bu işe başlamanızı tavsiye ederim. Serviste çalışma alanı seçim ekranında en altta Yeni çalışma alanı düğmesiyle bir çalışma alanı oluşturmalısınız. Temelde ücretsiz lisans ile çalışıyorsanız zaten Veri Akışına ihtiyacınız olmayacaktır.

Şimdi bu yeni alan içinden Yeni öğe eklemeyi açtığınızda eski model ve Pro lisansla çalışabilen 1.Nesil veri akışı yaratabildiğinizi göreceksiniz.

Bu düğmeyi seçtiğinizde aynı Power BI Desktop gibi veri alabileceğiniz seçeneklerle karşılaşırsınız.

Bu Power BI ortamları paradoks gibi iç içe geçmiş hissini verebilir, ona oradan bağlan, sonra tekrar buradan bağlan, sanki bitmez bir döngüdesiniz gibi gelebilir ama zamanla alışıyorsunuz. Yeni tablo ekle seçeneği ile artık daha tanıdık bir ara yüze ulaşırsınız.

Bildiğimiz Power Query deneyimine yakın. Bu yazıda bahsettiğimiz veri alış tipleri yine burada, yine aynı tercihler mevcut gibi. Ama mesela Excel çalışma kitabı seçeneğini seçerseniz bu sefer nasıl bağlanacağız diye soracak. Online ulaşılabilir bir dosya çağırmanız lazım.

Artık web üzerinde olduğumuzdan, bilgisayardan dosya seçip ilerlemek mümkün değil, ağ geçidi gerekir ki bunu başka bir yazıda anlatacağım. Eğer OneDrive kullanan bir mülkteyseniz aşağıdaki gibi dosya yüklemek mümkündür. Ama OneDrive yoksa burası da çalışmaz.

Buraya kadar gelip de eğer bir veri kaynağına bağlanabildiyseniz, artık tanıdık Power Query ekranlarındasınız. Aşağıda benim kendi raporlarımda kullandığım Tarih Veri akışının görüntüsünü görebilirsiniz. Neredeyse Power BI Desktop.

İşte buraya kadar geldikten sonra bu Veri akışında dilediğiniz kadar tablo yaratıp, en son sağ altta bulunan (bana bu yer zor geliyor nedense) Kaydet ve kapat diyerek bir Veri akışı yaratmış olursunuz. Kaydedince içinde veri olmaz, en az bir kez veriyi yenilemeniz gerekecek.

Sonra bu veri akışına Power BI Desktop’tan bağlanabilirsiniz ve içindeki tablolardan dilediğinizi dilediğiniz şekilde çekebilirsiniz. Artık Veri dönüştürme kısıtı bulunmaz. Bu kısımda çok fazla konuyu çok hızlı geçtiğimin farkındayım, anlatmaya başlayınca kapsam genişliyor bir şekilde. Ama sizin açınızdan bu işleri denedikçe karşınıza çıkacak konuların basit cevapları bu yazıda bulunur, yeter ki deneyin, karışık bile olsa çözümü bulacaksınız.

SQL Server

En çok kullanmanız gereken bağlantı tipi bence budur. Düzenli bir veri tabanı gibisi var mı? SQL Server nasıl kurulur, nasıl ulaşılır gibi konuları daha önce Power BI için SQL Server Kurulumu yazımda yazmıştım, oraya bakmak isteyebilirsiniz. SQL Server’dan veri almak istediğinizde (gelişmiş seçeneklerin de açıldığı hali ile) aşağıdaki pencereyle karşılaşacaksınız.

SQL sunucunuz yerelde yani bilgisayarınızda yukarıda verdiğim yazıda anlatıldığı gibi olabilir, adını bulmayı da orada yazmıştım. Diğer yandan çevrimiçi bir SQL Server’a da ulaşabilirsiniz, IP bilgisini girerek. Bu daha iyidir çünkü yenilemede Ağ Geçidi istemez. Sunucu içindeki veri tabanı ismini yazmasanız da olur, zaten gezgin açacak.

Veri Bağlantısı modu oldukça önemli bir seçim. Bu da kapsamlı bir konu ama kısaca bahsedeyim. İçeri aktar modunda veri tabanındaki seçtiğiniz verileri modelinize çekersiniz, yani indirirsiniz. Model dosyası daha büyük olur ve güncellemeler biraz zaman alır. Ancak DAX kullanımında kısıtınız kalmaz, Power BI yazılımını tam anlamıyla kullanabilirsiniz. Güncelleme hatası aldığınızda en son versiyonun kullanılabilir durumda kalması da bazen önemlidir. DirectQuery modunda ise veriye direk bağlanırsınız, canlı bağlantı yapmış olursunuz ve kısacık bir gecikmeyle anlık sonuç görmek mümkün olur. Veri indirilmediği için model dosyası çok küçüktür. Ancak DAX konusunda oldukça çok kısıt vardır, bir sürü avantajı kullanamazsınız. Bu ikisini birleştiren Hibrid yöntemler de yapılabiliyor artık ama bu yazının konusundan uzaktır. Şimdilik içeriye aktarıp ilerlemeniz bence yeterlidir.

Son olarak veriyi alırken bir SQL komutu da uygulayabilirsiniz. SELECT, WHERE gibi komutlardan bahsediyorum. Büyük veri tabanlarından tüm kolonları almamak için bu kodu verebilirsiniz ama diğer yandan Power Query tarafında Query Folding diye bu optimizasyonu en iyi haliyle yapan bir özellik varken çok da dokunmaya gerek yok, bu da başka bir ileri seviye konudur. Bir de ilişkili sütunları ekle seçeneği var, bunu kapalı tutmanızı öneririm, bazı çok tablolu veri tabanlarında o kadar çok ilişki vardır ki bir anda bir sürü kolonunuz oluşur, sonra kaldırmakla uğraşırsınız. Veri tabanına hakimseniz zaten ilişkili tabloları da alırsınız, hakim değilseniz de ilişkili kolonların size bir faydası yoktur bence.

Server adresini girip ilerleyince bu bağlantıyı hangi yöntemle sağlayacağınızı soracaktır. Normalde Veri tabanı kullanıcısı ile bağlanmak en pratik yöntemdir ancak bazı durumlarda diğer seçenekler de çalışabilir. Giriş bilgilerini bir kez girdiğinizde sonraki girişlerinizde sormayacaktır. Bağlan dediğinizde aşağıda gördüğünüz gibi bir şifreleme hatası ile karşılaşabilirsiniz, Tamam deyin geçin.

Artık Serverda bulunan tüm veri tabanları bir liste halinde önünüzde. Erişim yetkinize göre oklarla açarak alt tablolara erişebilirsiniz. Tablolarda ön izleme yapıp aradığınızı bulduktan sonra Veri Dönüştürme düğmesi ile Power Query ekranlarına geçersiniz. İşlem tamam.

Web’den Veri Alma

Web’den veri toplayabilmek, bunun için bu kadar tutarlı bir yazılıma sahip olmak çok değerlidir. Bu işin o kadar çok detayı var ki, en basitinden bir web sitesinin html koduna bakıp da ne olduğunu anlayabiliyor olmanızı tavsiye ederim. Bu noktada yine eski bir yazıma, dolaylı olarak da Youtube kanalımdaki videolarıma yönlendirme yapmak durumundayım. Canlı Borsa yazımda web sayfasından veri almayı göstermiştim, yıllar geçti, artık o sayfa da değişti ve rapor yenilenemiyor ama yapılacak işlemleri orada güzelce görebilirsiniz.

Bugüne dönersek, Web’ten veri almak istediğinizde aşağıdaki pencereyle karşılaşacaksınız. Gelişmiş seçeneği seçilmiş halini gösterdim.

Bu adımlarda farklı sitelerin farklı özelliklerine uygun şekilde sorgu göndermek için bol seçeneğiniz, hatta manuel parametre girebileceğiniz yerler mevcut. Bu konu o kadar derin bir konu ki, hem burada anlatmak olmaz hem de yazı çok uzadı, biz en iyisi bildik bir sayfaya temel bağlantı yapıp nasıl görünüyormuş bakalım.

Normalde herkese açık sayfalarda Anonim giriş yöntemi ile ilerlemek mümkündür. Bazı durumlarda kullanıcı adı ve şifre ile ya da domain ile giriş yapılabilir. Benim sitem herkese açık olduğundan Anonim olarak bağlanabilirsiniz.

Oldukça basit bir site olduğundan, sadece bir html kodu ile karşılaştık. Ama mesela Microsoft’un sitesine bağlansanız aşağıdaki görüntüyle karşılaşacaktınız. Gördüğünüz gibi html ile yaratılan tabloları direk görüp seçebiliyorsunuz.

Özetle, webden veri alma konusunu deneye yanıla çözmeye çalışırsanız çok faydalı sonuçlara ulaşabilirsiniz.

Diğer Veri Alma Seçenekleri

Bu yazının bu kadar uzayacağını düşünmemiştim ama anlatmaya başlayınca uzuyor. Bahsetmemin iyi olacağı PDF’ten veri alma ve Klasörden veri alma konularından PDF kısmını size ödev vermiş olayım. Webden veri almaya benzer, aslında PDF dosyaları da içinde bazı tablolar barındırır. Çok basittir, deneye yanıla çözeceğinizden eminim. Klasörden ya da SharePoint klasöründen veri almayı ise şimdilik başka bir yazıya bırakıyorum, yazdıktan sonra buraya linkini de veririm.

Diğer veri alma seçenekleri sürekli çoğalıyor. Özellikle bazı spesifik uygulamalardan (Google Analytics, Salesforce, Dynamics gibi) direk veri çekebilmek çok büyük faydalar sağlıyor. Bu seçenekleri de deneyerek rahatça çözeceğinizden eminim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit exceeded. Please complete the captcha once again.