5 Adımda Azure Synapse Analytics Kurulumu

Selamlar! Ben PEAKUP Business Analytics ekibinden Özgür! bu da PEAKUP blog sayfasındaki ilk yazım. 🤭 Azure Synapse Analytics dünyasına hızlı bir bakış ilk yazı için oldukça havalı bir giriş olacağını düşündüm. Ama öncesinde bir Azure Synapse Analytics workspacesine ihtiyacım var. 😐

Hadi gelin birlikte oluşturalım! Azure Portal ana sayfada üst kısımdaki arama bölümüne Azure Synapse Analytics diye aratarak kurulum sayfasına ulaşabiliriz. Basics, Security, Networking, Tags, Review + create adımları karşımıza çıkıyor. Bu aşamaları tek tek anlatalım.

1- Basics

İlk aşamada temel bir Microsoft Azure hizmet oluştururken ihtiyaç duyduğumuz adı ne olmalı, hangi resource group altında oluşacak, hangi regionda barınacak gibi sorulara cevap veriyoruz.

  • Subscription: Workspace yetkiniz olduğu hangi azure faturalandırma hesabı altında var olacak.
  • Resource Group: Workspace hangi azure kaynak grubu altında olacak. Henüz bir kaynak grubunuz yoksa bu aşamada Create New diyerek yeni bir kaynak grubu oluşturabilirsiniz.
  • Managed Resource Group: Azure Synapse Analytics workspacesi oluşurken yanında bir kaç hizmet daha ayağa kalkacak bu hizmetler hangi grup altında oluşsun bunu belirliyoruz. Boş geçersiniz bizim yerimize otomatik bir isim verecek.

Sırada workspace detayları var 🤓

  • Workspace name: Oluşturcağımız workspace bir isim verelim.

    Çalışma alanı adı 1 ila 50 karakter uzunluğunda olmalıdır. Çalışma alanı adı bir harf veya sayı ile başlamalıdır. Çalışma alanı adı bir harf veya sayı ile bitmelidir. Çalışma alanı adı benzersiz olmalıdır.

  • Region: Oluşacak olan workspace bir Azure Hizmeti olduğundan ülkemize en yakın Region seçimi yaparak ilerleyebiliriz.

  • Select Data Lake Storage Gen2: Bir lake hause projesinin olmazsa olmazları txt, csv, json gibi dosyalarımız barınacağı bir Storage hesabı oluşturalım.

  • Account Name: Storage Account adını girelim veya var olacak bir Account seçip ilerleyelim.

  • File System Name: Storage Account altındaki bir file system seçelim yoksa Create New diyerek yeni bir tane oluşturalım.

Basics sayfası bu kadar. 🙃 Security aşamasına ilerleyebiliriz.

2- Security

Adından da anlaşılacağı gibi çalışma alanınız için güvenlik seçeneklerini yapılandıracağımız aşamadayız.

Bu aşamada bizi ilgilendiren kısım; SQL administrator credentials workspace altında oluşturacağımzı dedicated veya serverless sql pool veri tabanlarına hangi bilgilerle erişeceğimizi burada belirliyoruz.

next next please 👉

3- Networking

Oluşturacağımız çalışma alanımızın temel ağ ayarlarını yapılandırın.

Bu aşamada özel bir sanal network tarzı bir yapıya ihtiyacınız yoksa varsayılan ayarları bırakıp diğer sayfaya ilerleyebiliriz.

4- Tags

Oluşturduğunuz herhangi bir Microsoft Azure hizmetine etiket vererek hizmetleri ayırarak gruplayabilirsiniz. Bunun amacı kategorilere ayırdığınız hizmetlerin faturalandırma, kullanım gibi detaylarını daha iyi analiz edebilmek.

Zorunlu bir aşama değil boş bırakıp da ilerleyebiliriz.

5- Review + create

Önceki adımlarda herhangi bir şeyi atlamayıp isimlendirme vs konusunda hata almadıysak başlamaya hazırız. Synapse Analytics ilk oluştuğunda içerisinde default olarak gelen Serverless SQL‘nin fiyatlandırmasına ve altında workspace ile ilgili detayları görüyoruz.

Artık hazırız! 🚀 Sonraki yazıda görüşmek üzere.

 

DAX ile Tarih tablosu oluşturun!

Merhaba BI Fanları,

Bu yazımızda hemen her raporumuzda kullandığımız bir yapıdan bahsedeceğiz: Tarih Tablosu. Kullandığınız modelde bir tarih tablosu olmadığı için sizin mutlaka bu tabloyu oluşturmanız gerekiyor. Bu tabloyu oluşturmanın en önemli sebeplerinden biri Time Intelligence fonksiyonlarının kullanımıdır. Bu fonksiyonlar doğru çalışmak için atlanmadan tüm tarihlerin olduğu bir sütuna ihtiyaçları vardır. Bir diğeri ise birden fazla tabloyu aynı tarih aralığında filtrelemek istiyorsanız gene bir tarih tablosuna ihtiyacınız olur. Şimdi bunun nasıl oluşturabileceğimize bakalım.

Öncelikle Power BI’ın varsayılan olarak her tablo için bir tarih tablosu oluşturduğunu bilmemiz gerekiyor. Biz, bu tarih tablolarını raporda görmeyiz ancak ilgili tablodan tarih hiyerarşisine göre değer getirmeyi sağlayan bu tablodur. Bizim kontrolümüzde değildir ve tabloların boyutları büyüdükçe bu tarih tabloları da oldukça yer kaplayacağı için raporumuzda bize zorluk çıkaracaktır. Bu sebepten dolayı bunların kaldırılması gerekmektedir.  Bu tabloları Dax Studio’da görebilirsiniz.

 

Bu işlemi oluşturacağınız her rapor için yapmanız gerekmektedir. Rapor oluştururken en başta yaparsanız daha iyi olur, sonradan yaptığınızda raporunuzdaki görsellerde birtakım farklılıklar olabilir bunları da düzeltmeniz gerekmektedir.

File sekmesinde Options & Settings’e gelerek Options’a tıklıyoruz. “Time Intelligence” başlığı altındaki “Auto date/time” ifadesinin tikini kaldırıyoruz.

Şimdi yapmamız gereken bir date tablosu oluşturmak. Bunu DAX ile yapacağız. Fonksiyonları kullanmak için tarihlerin geçtiği tek bir sütun aslında bize yeterlidir. Tabii ki bizim analizlerimiz çeyrekleri, ay isimlerini, haftanın günlerini de kapsayabileceği için daha fazla detayı olan bir tabloya ihtiyacımız var.

Tarihleri oluşturmak için Modeling sekmesine gidip New Table’a tıkladıktan sonra Calendar fonksiyonu ile başlıyoruz:

CALENDAR(DATE(2021,1,1), DATE(2021,12,31))

Bu yapı bize 1 Ocak 2021 tarihi ile 31 Aralık 2021 tarihi arasındaki tüm tarihleri içeren tek sütunlu bir tablo döndürmüş olur.

Hemen sizlerden şunu duyar gibiyim: “Bunu dinamik oluşturamıyor muyuz?”. Tabii ki oluşturabiliriz. Bunun için bu ifadeye şöyle bir revize geçiyoruz:

CALENDAR(MIN(Table1[Tarih]), MAX(Table1[Tarih]))

 

Table1[Tarih]: Modelinizdeki en eski ve en yeni tarihlerin olduğu tablo. Bunlar iki ayrı tablo ve iki ayrı sütun da olabilirdi. Min ve max fonksiyonlarıyla en eski ve en yeni tarihleri buluyoruz.

Bundan sonrası için yıl, ay ve haftanın günü bilgilerini yeni bir sütun olarak ekleyelim:

Yıl = YEAR('Tarih Tablosu'[Date])

Ay no = MONTH('Tarih Tablosu'[Date])

Haftanın günü = WEEKDAY('Tarih Tablosu'[Date])

Hafta No = WEEKNUM('Tarih Tablosu'[Date],2)

 

Elimizde son durumda bulunan bilgiler bunlar:

Bunların yanına Format fonksiyonunu kullanarak birkaç metinsel bilgi de ekleyebiliriz:

Yıl/Ay = FORMAT ( [Date], "YYYY/MM" )

Tarih-sayı = FORMAT ( [Date], "YYYYMMDD" )

Yıl/Ay - Kısa = FORMAT ( [Date], "YYYY/MMM" )

Ay Adı - Kısa = FORMAT ( [Date], "MMM" )

Ay Adı - Uzun = FORMAT ( [Date], "MMMM" )

Haftanın günü - kısa = FORMAT ( [Date], "ddd" )

Haftanın günü - uzun = FORMAT ( [Date], "dddd" )

Çeyrek = FORMAT ( [Date], "Q" )

Yıl & Çeyrek = FORMAT ( [Date], "YYYY" ) & "/Q" & FORMAT ( [Date], "Q" )

Bu bilgilerden sonra tablom şöyle görünüyor:

Gördüğünüz gibi oldukça kapsamlı bilgiler içeren bir tarih tablom olmuş oldu. Şimdilik gözümüze bu yaptığımız işlemler zorlayıcı gelmiş olabilir. Çünkü her seferinde kodları taker taker yazmamız gerekiyor. Tak-çalıştır olarak kullanabileceğiniz Tarih tablosu kod bloğunu ise aşağıya yapıştırıyorum. Yeni tablo ekle dedikten sonra bu kodu yapıştırmanız ve min&max tarihleri alacağı tablo ve sütunu ilgili yere yazmanız yeterli olacaktır.

Tarih Tablosu= ADDCOLUMNS (
CALENDAR (MIN(Table1[Tarih]), MAX(Table1[Tarih])),
"Yıl" ,YEAR([Date]),
"Ay no" , MONTH([Date]),
"Haftanın günü" , WEEKDAY([Date]),
"Hafta No", WEEKNUM([Date],2),
"Yıl/Ay", FORMAT ( [Date], "YYYY/MM" ),
"Tarih-sayı", FORMAT ( [Date], "YYYYMMDD" ),
"Yıl/Ay – Kısa" , FORMAT ( [Date], "YYYY/MMM" ),
"Ay Adı – Kısa", FORMAT ( [Date], "MMM" ),
"Ay Adı – Uzun" , FORMAT ( [Date], "MMMM" ),
"Haftanın günü – kısa", FORMAT ( [Date], "ddd" ),
"Haftanın günü – uzun", FORMAT ( [Date], "dddd" ),
"Çeyrek", FORMAT ( [Date], "Q" ),
"Yıl & Çeyrek", FORMAT ( [Date], "YYYY" ) & "/Q" & FORMAT ( [Date], "Q" )

İngilizce başlıklar isteyenler de bunu kullanabilir:

Date Table= ADDCOLUMNS (
CALENDAR (MIN(Table1[Tarih]), MAX(Table1[Tarih])),
"Year" ,YEAR([Date]),
"MonthNo" , MONTH([Date]),
"DayofWeek" , WEEKDAY([Date]),
"Week Num", WEEKNUM([Date],2),
"Year/Month", FORMAT ( [Date], "YYYY/MM" ),
"Date as Integer", FORMAT ( [Date], "YYYYMMDD" ),
"Year/Month - Short" , FORMAT ( [Date], "YYYY/MMM" ),
"Month Name - Short", FORMAT ( [Date], "MMM" ),
"Month Name - Long" , FORMAT ( [Date], "MMMM" ),
"Day of Week - Short", FORMAT ( [Date], "ddd" ),
"Day of Week - Long", FORMAT ( [Date], "dddd" ),
"Quarter", FORMAT ( [Date], "Q" ),
"Year/Quarter", FORMAT ( [Date], "YYYY" ) & "/Q" & FORMAT ( [Date], "Q" )

 

Hatırlanması gerekenküçük bir nokta Ay isimlerini ve gün isimlerini ilgili ay no ve gün no sütunlarına göre sıralamanızdır. Bu sayede grafiklerinizde doğru sırada gözükecektir.

Başka yazılarımızda görüşmek üzere hoşça kalın.

Good game well played

Power BI ‘da Veri Uyarısı çalıştıktan sonra nasıl otomatik süreçler oluşturabiliriz?

Merhaba BI Fanları,

Bu yazımızda Power BI’ın mevcutta bulunan veri uyarısı özelliğini nasıl geliştirebileceğimizden bahsedeceğiz. Veri uyarıları, panolardaki kartlarda geçerli bellik bir eşik değere göre karttaki değeri karşılaştırarak önemli durumlarda bildirim almanızı sağlayan bir yapı. Daha önceki şu yazımızda veri uyarısı üzerine detaylıca anlatıp bir veri uyarısı oluşmuşturduk. Peki bu alarm çalıştıktan ne gibi aksiyonlar alabiliriz? E-mail göndermek dışında seçenekler arıyorsak o zaman devreye Microsoft’un bir başka ürünü olan Power Automate giriyor. “Power Automate de nedir?” diyenleriniz var ise detaylı genel bakış yazııza buradan ulaşabilirsiniz.

Biz veri uyarısını oluşturduktan sonra bütün süreç Power Automate üzerinden ilerleyecek. Power Automate ‘de yeni bir akış oluşturacağız. Bu akışın tetikleyicisi, “Bir veri uyarısı tetiklendiğinde” olacak.

Bundan sonra ekleyeceğimiz tüm adımlar tek başına veya peşpeşe kullanılabilir.

1-Planner ‘da görev oluştur

Bu durumun normal olmadığı gerekçesiyle hemen ekibin ilgilenmesi için otomatik olarak bir planner görevi oluşturabilrisiniz. Bunun için Planner bağlayıcısının “Create task” seçeneğini seçiyoruz. Doldurulması mutlaka gereken 3 alan var:

Hangi ekip dolduracak? : Group Id (Grup)

Hangi planner? : Plan Id (Plan İsmi)

Oluşturulacak görevin başlığı ne olacak? : Burada tetikleyicinin çıktısı olan alarm başlığını seçiyorum.

Bu işlere bakacak kesin kişiler var ise assigned user ids alanı da doldurulabilir.

2- Microsoft Teams’de mesaj gönder

Hızlıca üzerine konuşabilmek adına Microsoft Teams’de bir grubun kanalına post edilebilir bir içerik oluşturabilirsiniz. Bunun için Teams ‘in altında bulunan seçeneklerden “Post a message” seçeneğini kullanabilirsiniz.

3- Acil Toplantı Organize Et

Konunun çok aciliyeti varsa Power Automate kullanarak hızlı bir toplantı organize edebilirsiniz. Bunun için Office 365 Outlook’un altındaki içeriklerden “Create Event” başlığını kullanacağız. Start time ve end time için utcNow() fonksiyonunu kullandık. Bu fonksiyon o andaki tarih ve zamanı bize getirir. Bunu expressions alanını kullanarak elde ettik.

Start time ve end time için aynı değeri kullandığımızdan dolayı bu toplantı takvimimizde çok küçük bir yer topluyor. Endtime ‘ı daha fazla geliştirmek isterseniz yinr expressionsları kullanarak istediğiniz kadar süreyi ekleyebilirsiniz. Takvimde görünmesi için bu kadarı da yeterlidir. Kimlerin bilgisinin olması gerektiğine ilişkin bir de “Required attendess” alanı doldurulursa herkese de bunun bilgisi gitmiş olur.

4 – Mail Gönderimi

Bunlar dışında tabii ki maili birçok kişiye atmak da bir opsiyon. Veri uyarılarında şu an mail olarak alarmın sahibine mail gönderilmesi de mevcut ancak bunu daha fazla kişiye göndermek istiyorsak kullanabiliriz.

Bu başlıkların hepsi akla en hızlı gelen başlıklardır. Sizin şirketinize özel başka bir durumda olabilir. İstediğiniz durumun Power Automate ile sağlanıp sağlanmayacağı bilgisini araştırmanız faydalı olacaktır. Dilerseniz bizlere de danışabilirsiniz. Olayları mümkün olduğunca otomatikleştirmek için sınırlarımızı zorlamalıyız. Zaman geri alınamıyor ve bu yüzyılın en kıymetli değeri.

Bir başka yazımızda görüşmek üzere…

Good game, well played.

Çözüldü: Veri Yenilemesindeki Type Mismatch hatası

Merhaba BI Fanları,

Bu yazımızda sizlerle veri yenilemesi yaparken karşılaşılan en sık hatanın çözümü hakkında konuşacağız: Type Mismatch.

Power BI ‘da veri kaynağına bağlanıp bazı tabloları rapora çektiğinizde Power Query, bu tablolarda varsayılan bir işlem gerçekleştirir: Changed Type. Bu işlem her sütunun doğru veri türünde olmasını sağlayan işlemdir ve her tabloda uygulanır. Doğru veri türü, bizim doğru hesaplamalar yapabilmemiz için oldukça gerekli bir işlemdir.

Veri kaynağına ilk defa bağlanıldığında Power Quey, sütunlar için uygun veri tiplerini kendisi bulur ve “Change Type” adımında artık bu sütunlar için olacak olan veri türünü belirler. Veri türü belirlenmemiş sütunların veri türü şöyle görünür:

Rapor oluşturucuları da mümkün olduğunca bundan kaçınmaya çalışarak sütun için uygun veri türlerini seçmeye çalışır.

Power Query’de veri türlerinin algılanması ve sütuna uygun veri türünün uygulanması işlenmesi ilk bağlantıya özgüdür. Bundan sonra bu veri kaynağı yenilendiğinde Power BI sadece yeni gelen değerlerin ilgili sütunun belirlenen veri türüyle eşleşip eşleşmediğine bakar. Eğer yeni gelen değerler sütunun veri türüyle eşleşmiyorsa bu satırlar için hata döndürür ve karşımıza “Type Mismatch” hatasını çıkartır.

Hatalı hücreye tıkladığınızda alt alandaki hata detayı genelde şöyledir:

Bu hatayı aldığınızda 2 durum söz konusu olabilir:

  • Veri kaynağına yanlış yazım olmuştur.
  • Bu sütun için artık yeni gelecek değerle farklı bir veri türünde gelebilir.

Eğer durum birinci seçenekteki gibiyse veriyi size sağlayanlara hemen bu durumu bildirmek gerekiyor. Eğer durum ikinci seçenekteki gibiyse iki farklı yoldan bu durumu çözebilirsiniz:

1-Change Type adımını yeni veri türünü de kapsayacak şekilde düzelt.

Bu adımda “Applied Steps” adımlarında “Change Type” seçili olacak şekilde hata veren sütunun veri türünü “Text” yapabiliriz.

Bu işlemden sonra bize bir pencere çıkacak;  bu pencerede yapacağımız işlemin de bir veri türü işlemi olmasından dolayı önceki veri türü işlemi üzerine yazılsın mı diye soruluyor. Biz de buna evet diyoruz. Yeni bir adım olarak eklemek bu durumu çözmez.

Böylece tüm hatalar gitmiş ve hücrenin gerçek değeri karşımıza gelmiş oluyor.

2-Changed Type adımını kaldır

Bir diğer seçenek ise “Changed Type” adımını kaldırabilirsiniz. Bunu yaparken diğer sütunların nasıl etkileneceğini doğru analiz etmekte fayda vardır. Özellikle ondalıklı değere sahip veya binlik ayıraçlı gelen değerlere sahip sütunlar bu durumdan en çok etkilenenlerdir. Eğer üzerine tekrar bir “Change Type” adımı oluşturmazsanız karşılaşacağınız görüntü böyle olur:

Type mismatch hatasının neden oluştuğu ve bu hatayı nasıl kaldırabileceğimize dair yazımızı tamamladık. Bir başka yazımızda görüşmek üzere.

Good game well played.

Çözüldü: Veri Yenilemesindeki Premium_ASWL_Error

Merhaba BI fanları!

Bugünkü yazımızda sizlerle Power BI Portal’da veri yenilemesinde karşılabileceğiniz “Premium_ASWL_Error” hatasının nasıl çözüleceğine dair bilgileri paylaşıyor olacağız. Bu hatanın temeli direct query bağlantı modelinin power bi datasetlerinde ve Azure Analysis Services’daki kısıtlamalarından kaynaklanmaktadır. Power BI ‘da bağlantı modlarını bu yazımızda detaylı inceleyebilir ve karşılaştırmasını bulabilirsiniz.

Öncelikle bu hatayı almak için gereken senaryomuzu kurgulayalım:

Kullanıcıya iki farklı tarih aralığı seçtirterek bu aralıkları birbirleriyle kıyaslayabilecek bir analiz yaptırmak istiyorum. Veri Kaynağı olarak Azure Analysis Services’i seçiyorum ve mevcut hazırda olan modelime bağlanıyorum. Modellerin hepsinde mutlaka bir date tablosu zaten vardır. Benim yapmak istediğim analiz için 2 periyot karşılaştıracağımdan 2 farklı date tablosuna ihtiyacım var. Çünkü tek bir date tablosundan 2 farklı seçimi algılanmayacaktır.

Bunun için ekstra bir date tablosu oluşturacağız. Normalde date tablosu oluştururken bunu DAX ile “Calculated Table” olarak oluşturabiliriz. Dax ile date tablosu oluşturma yazımız için tıklayınız. Oluşturduğumuz tabloyu da hesap yapılacak tablo ile bağlıyoruz.

 

Ardından Power BI Portal’a yüküyoruz ve yenileme başlatıyoruz. Bam! İşte karşılaştığımız hata:

Eğer yenilemeyi .pbix dosyasında yaparsanız böyle bir hata almayacak ve herşey yolundaymış gibi gözükecektir. Ancak her zaman otomasyondan yana olduğumuz için her gün .pbix dosyasının yenileyip tekrar portala yüklenmesindense otomatik yenilemenin aktif olmasını isteriz. Otomatik yenileme nasıl yapılır? Yazımıza bakabilirsiniz.

 

Bu karşılaşan hatanın sebebini Microsoft’un Using DirectQuery for Power BI datasets and Azure Analysis Services (preview) yazısında buluyoruz.

Analysis Services’a direct query ile bağlantı yapılmasında bazı kısıtlamaları var. Bunlardan bir tanesi Azure Analysis Services’dan veri çekilen bir .pbix dosyasının Power BI Service’a yayınlandıktan sonra bu dosyanın içinde bulunan hesaplanmış tablolarının desteklenmemesidir. Hesaplanmış tablolar dax ile oluşturulan tablolar anlamına gelmektedir. Bizim örneğimizde de biz DAX ile Date tablosu oluşturmuştuk. Bu tabloyu silip service tarafında yenileme işlemi başlattığımda herhangi bir sorunla karşılaşmadım. Peki bu konuda ne yapabiliriz? Benim o tabloya da ihtiyacım var.

Bu konuda yapılabilecek işlem, bizim senaryomuz için Date tablosunu, sizin senaryonuzdaysa hesaplanmış tabloyu Power Query tarafında tekrar elde etmeye çalışmak.

Power Query’de de M dili kullanılmaktadır. M dilli bize birçok imkan sağlar. Dax’dan biraz daha farklı bir yapısı vardır.

Calculated table ile oluşturduğunuz tabloyu Power Query’de de M diliyle oluşturabilirsiniz. Senaryomuz için gerekli olan Date tablomuzu oluşturmak için öncelikle boş sorgu oluşturuyoruz.

Advanced Editörü açarak aşağıdaki kod bloğunu yapıştırıyoruz. Benim senaryom için bu kod bloğu ile oldukça yeterli bir Date tablosu oluşturabildim.

let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUByIjAwMDpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [StartDate = _t]),
#"Added Custom" = Table.AddColumn(Source, "EndDate", each Date.From(DateTime.LocalNow())),
#"Changed Type2" = Table.TransformColumnTypes(#"Added Custom",{{"EndDate", type date}}),
#"Changed Type" = Table.TransformColumnTypes(#"Changed Type2",{{"StartDate", type date}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type", "Dates", each {Number.From([StartDate])..Number.From([EndDate])}),
#"Expanded Dates" = Table.ExpandListColumn(#"Added Custom1", "Dates"),
#"Changed Type1" = Table.TransformColumnTypes(#"Expanded Dates",{{"Dates", type date}}),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type1",{"StartDate", "EndDate"}),
#"Added Custom2" = Table.AddColumn(#"Removed Columns1", "Year", each Date.Year([Dates])),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Month", each Date.Month([Dates])),
#"Added Custom4" = Table.AddColumn(#"Added Custom3", "MonthName", each Date.MonthName([Dates])),
#"Added Custom5" = Table.AddColumn(#"Added Custom4", "ShortMonthName", each Text.Start([MonthName],3)),
#"Added Custom6" = Table.AddColumn(#"Added Custom5", "Quarter", each Date.QuarterOfYear([Dates])),
#"Changed Type3" = Table.TransformColumnTypes(#"Added Custom6",{{"Quarter", type text}}),
#"Added Custom7" = Table.AddColumn(#"Changed Type3", "QtrText", each "Qtr "& [Quarter]),
#"Added Custom8" = Table.AddColumn(#"Added Custom7", "Day", each Date.Day([Dates])),
#"Added Custom9" = Table.AddColumn(#"Added Custom8", "Date as Integer", each [Year]*10000 + [Month]*100+[Day]),
#"Changed Type4" = Table.TransformColumnTypes(#"Added Custom9",{{"Date as Integer", Int64.Type}}),
SelectRow = Table.SelectRows(#"Changed Type4", each Date.IsInPreviousNYears([Dates], 1) or Date.IsInCurrentYear([Dates]))

in
SelectRow

Ardından iki tablo arasında ilişki oluşturuyorum ve Power BI Service’e yayınlıyorum. Otomatik refresh ayarlarının yapıp yenileme başlatıyorum. Datasetim hiçbir sorun olmadan çalıştı. 😊

 

Azure Data Studıo – Database Dıagram Kullanımı

Microsoft SQL Server Management Studio üzerinde iseniz ve kullandığınız veritabanınızda bulunan tabloların ilişkilerini diyagram şeklinde göstermek isterseniz MSSQL de yapmanız gereken işlemler basittir ve sırası ile şu şekildedir;

İlk olarak Microsoft SQL Server Management Studio uygulamasını açalım ve bağlantı sağlayalım.

Diyagramını oluşturacağınız veritabanınızın içinde bulunan Database Diagram klasörüne sağ tıklayıp New Database Diagram seçeneğini seçmelisiniz.

Veritabanınızda bulunan tabloların listesi açılacaktır. Burada diyagramda kullanacağımız tabloları seçelim. Ardından Add butonu ile devam etmelisiniz.

İlgili veritabanınız için görmek istediğiniz diyagram hazır hale gelmiş olacaktır.

Peki bunu Azure Data Studio üzerinde nasıl yapabiliriz? Şunu söylemeliyim ki Azure Data Studio üzerinde bunu yapabilmek için ilk olarak bir eklenti kuruyor olmamız gerekli. Şimdi bunu adım adım inceleyelim!

İlk olarak Azure Data Studio uygulamasını açalım ve bağlantı sağlayalım.

Database Diagram oluşturmamız için gerekli olan eklentiyi kurmak amacıyla sol tarafta bulunan sekmelerden Extensions alanına gidelim. Arama kısmından Schema Visualization uygulamasını aratalım.

Install diyerek eklentiyi inderelim. Ardından Extensions alanını kullanarak Install from VSIX seçeneği ile indirmiş olduğumuz eklentiyi kuralım.

Kurulum tamamlandıktan sonra Schema Visualization alanının oluştuğunu General bölümünde görebiliriz.

Kullanacağımız veritabanını seçip Schema Visualization butonuna tıklarsak Database Diagram bizim için oluşacaktır.

Bir sonraki yazımda görüşmek üzere, kolay gelsin!

POWER BI RAPORUNDA POWER AUTOMATE KULLANIMI

POWER BI RAPORUNDA POWER AUTOMATE KULLANIMI

Power Automate, kullanıcılarının uygulamalar ve hizmetler arasında zaman alıcı iş görevlerini ve süreçlerini otomatikleştiren iş akışları oluşturmalarını pratik ve basit hale getiren bulut tabanlı bir hizmettir. Power BI raporunda Power Automate kullanımını ele alacağımız bu yazımızda örnek bir senaryo yaratalım. Senaryomuzda rapor ekranına yerleştirilen bir buton ile Microsoft Teams üzerinden anlık ileti göndermeyi deneyeceğiz. Ben hazırım, ya siz?

.

POWER BI RAPORUNDA FLOW OLUŞTURMA

İlk olarak Power BI görselleri arasından Power Automate simgesini seçelim. Bu sayede Power Automate üzerinden flow oluşturduğumuz alan Power BI üzerinde karşımıza çıkacaktır.

Ekrana gelen Power Automate alanından (…) tıklayarak flow oluşturacağımız alana devam edelim. Ardından Edit seçeneğini kullanalım.

Karşımıza Power BI üzerinde kullanabileceğimiz Power Automate akışlarının hazır örnekleri geldi. Send a Teams from Power BI seçeneğini ile devam edelim.

Bu kısım Power BI ve Microsoft Teams için bağlantıları otomatik olarak sağlıyor olacaktır. Continue seçeneği ile devam edelim.

Senaryomuz gereği Microsoft Teams üzerinden göndereceğimiz iletinin kime gönderileceğini,başlığını ve göndereceğimiz mesajı belirtmemizi isteyecektir. Post a message as the Flow bot to a user alanından gerekli alanları dolduralım. Ben mesajı göndereceğim kişinin adresini kendi mail adresim, başlık kısmını “Power BI Report”, mesaj kısmını ise “Alert!!!” olarak ayarladım.

Save and apply butonu ile oluşturduğumuz akışı kayıt ederek rapor ekranımıza geri dönelim.

Rapor ekranımızda oluşturduğumuz akışın butonu oluştu. Butona tıklayarak akışı başlatabiliriz. Butona tıkladıktan sonra Microsoft Teams üzerinden ileti bildiriminin geldiğini ekranın sağ alt köşesinde görmüş olacağız.

.

Şimdi Microsoft Teams de Power BI raporumuzdan göndermiş olduğumuz iletinin nasıl göründüğünü inceleyelim.

Power BI üzerinde Power Automate kullanımını kendi senaryomuz üzerinden deneyimlemiş olduk. Bir sonraki yazımızda görüşmek üzere. Kolay gelsin!

POWER BI İLE SATIR DÜZEYİ GÜVENLİK (ROW LEVEL SECURİTY)  

.

Power BI ile satır düzeyinde güvenlik (RLS), belirlemiş olduğumuz rapor kullanıcılarının, rapor ekranında gördükleri verileri bizim yaratmış olduğumuz koşullar ve kısıtlamalar ile görmelerini sağlamak için kullanılır. Bu kısıtlamaları Power BI Desktop içinde yarattıktan sonra rol ataması yapmamız gereklidir. Örnek vermek gerekirse Power BI içerisine almış olduğumuz veride ülkesi Türkiye olanları bu kişiler, Almanya olanları şu kişiler görsün diyebiliriz. Power BI hizmetinde bir çalışma alanında bulunan kullanıcılar, o çalışma alanındaki veri kümelerine erişebilirler. Bir rapor için RLS yaratmamız bu erişimi kısıtlamayacaktır.
Yeni
konumuz ile ilgili ön bilgimizi verdikten sonra haydi bunu  hepbirlikte deneyelim!

.

.

.

.

.

.

POWER BI DESKTOP ÜZERİNDE ROL VE KURAL TANIMLAMA

İlk olarak Power BI raporumuzu açalım. Rapor ekranında şehiri Berlin olan verileri belirlemiş olduğumuz kullanıcıların görmesini sağlayacak bir rol yaratalım.

Modeling sekmesinden Manage Roles alanını kullanacağız.

.

Yeni bir rol oluşturmak için Create butonunu kullanalım.

.

Create butonunu kullandıktan sonra filtreleme yapacağımız tablo ve alanı seçmeliyiz. Ben burada DimGeography tablosundaki City alanını kullanacağım.

.

Artık şehiri Berlin olanları kısıtlayabiliriz.

Rolümüzü oluşturduktan sonra nasıl göründüğüne bakmak için Modeling sekmesinden View As alanını kullanalım.

Oluşturmuş olduğumuz tüm rolleri bu ekranda görebiliyoruz. Berlin şehrini seçerek bu rolün nasıl göründüğünü inceleyelim.

Tüm rapor verisinin Berlin şehrini içeren şekilde olduğunu görüyoruz.

.

.

Şimdi oluşturduğumuz rollere kullanıcı ataması yapalım. Power BI web de raporun bulunduğu dataset üzerinden güvenlik ayarlarına gidelim.

Burada Berlin adında oluşturmuş olduğumuz role ilgili kullanıcı mailini yazıp kayıt edebiliriz.

Artık rapor verilerimizi RLS ile istediğimiz kullanıcılara kısıtlayabiliyoruz. Bir sonraki  yazımda görüşmek üzere, kolay gelsin!

POWER BI’DA ARAÇ İPUCU (TOOLTIP) KULLANIMI

Power BI Desktop’ta oluşturduğunuz rapor sayfasını temel alarak, imleci görüntünün üzerine getirdiğinizde görünecek, görsel olarak zengin rapor araç ipuçları oluşturabilirsiniz. Araç ipucu olarak kullanılacak bir rapor sayfası oluşturduğunuzda, özel araç ipucunuz, rapor sayfasında oluşturduğunuz görüntüleri,tabloları ve diğer tüm öğe koleksiyonlarını içerebilir.

Şimdi bunu hep birlikte denemeye ne dersiniz?

ARAÇ İPUCU SAYFASI OLUŞTURMA

İlk olarak yeni bir sayfa oluşturalım. Yeni sayfa oluşturmak için aşağıda bulunan sekme kısmından (+) işareti ile devam edelim. Ben bu yazımda Tooltip adında yeni bir sayfa oluşturdum.

Oluşturduğumuz yeni sayfayı Araç ipucu sayfası olarak ayarlamak için yan tarafta bulunan sekmeden sayfa boyutunu araç ipucu olarak seçelim. Burada seçimimiz normal sayfa boyutuda olabilir ancak araç ipuçlarının rapor tuvali üzerine geldiğini ve bu nedenle bunları makul ölçüde kısa tutmanız gerekebileceğini unutmamalıyız.

Oluşturduğumuz araç ipucu sayfasını, amacı belirgin olacak şekilde isim verebiliriz. Biçim bölmesindeki Sayfa Bilgileri kartını seçip buradaki Ad alanına adı yazmanız yeterlidir.

Şimdi araç ipucu sayfasını istediğimiz şekilde dizayn edelim. Ben normal sayfa boyutunda bir araç ipucu tasarlıyor olacağım.

.

.

ARAÇ İPUCU SAYFASI YAPILANDIRMA

Bir araç ipucu rapor sayfası oluşturduktan sonra, sayfayı Power BI Desktop için bir araç ipucu olarak kaydedecek ve üzerinde doğru görseli gösterecek şekilde yapılandırmamız gereklidir. İlk olarak, sayfayı bir araç ipucuna dönüştürmek için sayfa bilgi kartındaki araç ipucu kaydırıcısını açmalıyız.

Rapor araç ipuçlarını destekleyen herhangi bir görsel nesne, artık biçim bölmesinde bir araç ipucu kartına sahiptir. Bir araç ipucu ayarlamak için belirtmek istediğimiz görüntüyü seçelim, ardındanGörselleştirmebölmesindeBiçimbölümünü seçin ve “Araç İpucukartını genişletelim. Araç İpucu kaydırıcısını aktif ettikten sonra oluşturmuş olduğumuz Tooltip sayfasını rapor sayfası olarak seçelim.

Artık Araç ipuçlarımız kullanıma hazır hale geldi.

.

Tekrar görüşmek üzere, kolay gelsin!

.

 

Power BI ‘da Veri Uyarısı Oluşturma

Merhaba BI Fanları,

Bir stok raporu kullanıyor ve stok outa düşmemek için sürekli raporu yenileyerek raporu takip mi etmeniz gerekiyor ? Power BI raporlarıyla takip ettiğiniz IOT cihazlarınızdan birinin sıcaklığının çok yükseldiği zaman size hemen bildirim mi gitmesini mi istiyorsunuz? Veri uyarısı tam size göre!

Veri uyarısı, yalnızca Power BI panolarındaki kartlara özel bir özelliktir. Belli bir değerin altında ya da üstünde olup olmadığı kontrol edilir ve eğer sınır değer aşılırsa veri uyarısı oluşturulan kişi, Power BI tarafından bu durumla ilgili bilgilendirilir.

Şimdi, hızlıca nasıl oluşturabileceğimize bakalım.

1- Kartı, panoya pinle

Öncelikle ilgili rapordaki kartı panoya pinlememiz gerekiyor. Bildiğiniz gibi kartların sağ üst tarafında çıkan iğne ikonuna tıklayarak istediğimiz panoda bu kartın gözükmesini sağlayabiliriz.

2 – “Uyarıları Yönetme” seçeneğine tıkla

Rapordaki kartımızı panomuza pinledikten sonra ilgili panoya gidiyoruz ve kartımızın sağ üst köşesine beliren “3 nokta” ikonuna tıklayarak “Uyarıları Yönetme” seçeneğine tıklıyoruz.

3- Veri Uyarısı İçin Koşulları Belirle

Sayfanın sağında açılan yan pencerede veri uyarıaı ile bilgileri giriyoruz. Uyarının başlığı, koşulumuz, bir değerin üstünde mi olacak yoksa üstünde mi, ve bu sınır değer ne olacak? Bu değerin manuel olarak girilmesi gerekmektedir. Ardından bu bildirimi ne sıklıkla alacağımızı seçiyoruz. Ayrıca konu ile ilgili mail de almak istediğim için mail seçeneğini de tikli bırakıyoruz. “Kaydet ve kapat” diyoruz. Böylece işlem tamamlanmış oluyor.

Bundan sonra her veri güncellendikten sonra bu kart üzerinde değerin belirlenen değere göre kıyasını yaparak bize gerektiğinde bildirim gönderiyor olacak. İşte gelen maile bir örnek:

Bu durumun sizin için aciliyetine bağlı olarak mail geldiğinde farklı akışlar da tasarlanabilir. İlerleyen yazılarımızda bu konuya da değineceğiz. Başka yazılarımıza göz atmak için buradan başlayabilirsiniz. Bir başka yazımızda görüşmek üzere…

Good game well played.