Kaynak ayarları ve gizlilik
Dosya → Seçenekler ve ayarlar → Veri kaynağı ayarları: her kaynağın kimlik bilgisini (Windows, veritabanı, kuruluş hesabı) ve gizlilik düzeyini değiştirirsin.
| Gizlilik düzeyi | Anlamı |
|---|---|
| Özel | Hassas veri; başka bir kaynağa hiç gönderilmez |
| Kuruluş | Kuruluş içindeki kaynaklarla birleştirilebilir |
| Genel | Herkese açık veri (ör. döviz kuru web sayfası) |
Power Query, farklı düzeydeki kaynakları birleştirirken (Merge) veri sızıntısını önlemek için sorgu katlamayı kısıtlayabilir. “Formula.Firewall” hatası genellikle buradan gelir.
Parametreler
Giriş → Parametreleri yönet. Sunucu adı, veritabanı, başlangıç tarihi gibi değerler bir kez tanımlanır, sorgularda kullanılır. Yayımladıktan sonra Service'te anlam modelinin ayarlarından değiştirilebilir; geliştirme ve canlı ortam arasında geçiş tek tıklamadır. Artımlı yenilemenin RangeStart / RangeEnd parametreleri de böyledir.
Başvuru mu, çoğaltma mı?
| Başvuru (Reference) | Çoğalt (Duplicate) | |
|---|---|---|
| Ne yapar? | Yeni sorgu, eski sorgunun sonucunu kaynak alır | Eski sorgunun tüm adımlarını kopyalar |
| Kaynak değişirse | Değişiklik yeni sorguya da yansır | Bağımsızdır |
| Tipik kullanım | Ham satış sorgusundan Müşteriler ve Ürünler boyutlarını türetmek | Benzer ama ayrı bir kaynağa uyarlamak |
| Dikkat | Ara sorgunun “Yüklemeyi etkinleştir” seçeneğini kapat | Mantık iki yerde bakım ister |
Düz tablodan yıldız şemaya
Excel'den gelen tek ve geniş bir satış tablosunu (sipariş, müşteri adı, şehir, ürün adı, kategori, fiyat…) modele uygun hâle getirmek:
- Ham sorguya Başvuru ver → yalnızca müşteri sütunlarını seç → Yinelenenleri kaldır →
Musterilerboyutu. - Aynısını ürün sütunları için yap →
Urunler. - Boyutlarda doğal anahtar yoksa Sütun ekle → Dizin sütunu ile vekil anahtar (surrogate key) oluştur.
- Olgu tablosunda boyutlarla Sorguları birleştir → anahtar sütunu genişlet → metin sütunlarını kaldır. Geriye anahtarlar ve sayılar kalır.
- Ham ve ara sorgularda sağ tık → Yüklemeyi etkinleştir işaretini kaldır; modele yalnızca olgu ve boyutlar yüklensin.
Yarı yapılandırılmış veri: JSON
Bir API'den gelen JSON, Power Query'de önce Kayıt ya da Liste olarak görünür:
- Liste → Tabloya dönüştür.
- Kayıt sütununun başlığındaki genişlet düğmesi → alanları seç (iç içe kayıtlarda tekrar genişlet).
- İç içe liste (bir siparişin satırları) → Yeni satırlara genişlet.
let
Kaynak = Json.Document(Web.Contents("https://api.ornek.com/siparisler")),
Tablo = Table.FromList(Kaynak, Splitter.SplitByNothing(), {"Kayit"}),
Genislet = Table.ExpandRecordColumn(Tablo, "Kayit", {"id", "tarih", "satirlar"}),
Satirlar = Table.ExpandListColumn(Genislet, "satirlar"),
Alanlar = Table.ExpandRecordColumn(Satirlar, "satirlar", {"urun", "adet", "fiyat"})
in
Alanlar
Hataları çözmek
- Veri türü hatası: Sütunda “Hata” hücreleri → hücreye tıklayıp nedeni oku; Giriş → Satırları kaldır → Hataları kaldır ya da Dönüştür → Hataları değiştir.
- “Sütun bulunamadı”: Kaynakta sütun adı değişmiş; ilgili adımın formülünü düzelt.
- Boş ve null: Değerleri değiştir (null → 0 ya da “Bilinmiyor”); boyutlarda “Bilinmiyor” satırı bırakmak, olguda eşleşmeyen anahtarları gösterir.
Yükleme ayarları
- Yüklemeyi etkinleştir: Kapalıysa sorgu modele yüklenmez (ara adım).
- Rapor yenilemeye dahil et: Kapalıysa yenilemede atlanır (statik referans tabloları).
Sorgu katlama: nerede bozuluyor, nasıl görürsün?
BT ekibi “Power BI yenilemesi veritabanını 40 dakika meşgul ediyor” diye şikâyet ediyor. İlk bakılacak yer sorgu katlamadır: adımların kaynağa tek bir SQL sorgusu olarak gidip gitmediği. Desktop’ta adıma sağ tıklayınca Yerel Sorguyu Görüntüle (View Native Query) etkinse o adıma kadar katlanıyordur; gri ise katlama o adımda ya da öncesinde bozulmuştur. Power Query Online’da (veri akışları, Fabric) her adımın yanında katlama göstergesi çıkar: katlanıyor, katlanmıyor, katlanabilir (ODBC/OData gibi bağlayıcılarda çalışma anında karar verilir), opak (belirsiz plan) ve bilinmiyor. Learn’e göre bu göstergeler yalnızca Power Query Online’da var.
| Genellikle katlanan | Genellikle katlamayı bozan |
|---|---|
| Sütun seçme/kaldırma, satır filtreleme, gruplandırma, aynı kaynaktaki tablolarla birleştirme, sıralama, basit tür değişimi | Dizin sütunu, Text.Proper gibi kaynağın bilmediği metin fonksiyonları, farklı kaynaklarla birleştirme, ilk N satırı tutmanın bazı biçimleri, özel M fonksiyonu çağrısı |
Kural: katlanan adımları öne, katlanmayanları sona. Filtreyi ve sütun seçimini kaynak adımının hemen arkasına koy; dizin sütunu ve metin güzelleştirme en sonda kalsın. Böylece katlanmayan adımlar veritabanında zaten küçülmüş veri üzerinde çalışır. Artımlı yenileme için RangeStart/RangeEnd filtresinin katlanması zorunludur; katlanmazsa her bölüm için tüm tablo okunur.
Başvuru zincirinin gizli maliyeti
Başvuru ile çoğaltma farkını gördün. Ekibin sık düştüğü yanılgı: “Ham satış sorgusunu bir kez okuyorum, Musteriler ve Urunler ondan türüyor; demek kaynak bir kez okunur.” Hayır. Yenilemede her yüklenen sorgu kendi zincirini değerlendirir; ham sorgu, ona başvuran her yüklenen sorgu için ayrıca çalışabilir. Önbellekleme bazı durumlarda tekrarı azaltır ama buna güvenme. Sonuçları:
- Bir API’ye ya da yavaş bir Excel’e üç başvuru, kaynağa birden çok istek demektir.
- Ham sorgunun yüklemesini kapatmak onu yenilemeden çıkarmaz; başvuran sorgular onu yine çalıştırır.
- Büyük ve yavaş kaynaklarda hazırlığı bir kez yapıp sonucu paylaşmak için veri akışı (dataflow) daha doğru araçtır.
Parametreleri derinleştirmek
Giriş → Parametreleri Yönet → Yeni. Her parametrenin adı, açıklaması, gerekli olup olmadığı, türü, önerilen değerleri ve geçerli değeri vardır.
- Türü mutlaka seç. “Herhangi” bırakılan bir tarih parametresi filtre adımında metin gibi davranır.
- Önerilen değerler: Herhangi bir değer, değer listesi (açılır liste + varsayılan değer) ya da bir liste döndüren sorgu. “Geliştirme / Test / Canlı” sunucu adları için değer listesi idealdir.
- Sabitten parametreye: Tek bir sabit döndüren sorguya sağ tık → Parametreye dönüştür.
- Fonksiyona dönüştürmek: Parametre kullanan bir sorguya sağ tık → İşlev oluştur. Sorgu, parametreyi argüman olarak alan özel bir fonksiyona dönüşür; klasördeki her dosyaya aynı dönüşümü uygulamanın temeli budur.
- Filtre iletişim kutusunda değerin yanındaki tür düğmesinden Parametre’yi seçebilirsin; filtre sabit bir değer yerine parametreyi kullanır.
Sorgu bağımlılıkları görünümü
Power Query Düzenleyicisi’nde Görünüm → Sorgu Bağımlılıkları (Query Dependencies), sorguları ve aralarındaki başvuruları bir diyagram olarak gösterir: hangi kaynaktan hangi ara sorgu, hangi ara sorgudan hangi tablo türüyor. Yüklemesi kapalı sorgular ayrıca işaretlenir. Kullanım alanları:
- Bir kaynağı değiştirmeden önce etkisini görmek: “Bu Excel’i silersem hangi tablolar bozulur?”
- Yanlışlıkla yüklenen ara sorguları bulmak: yalnızca başka sorgulara hizmet eden bir düğüm modelde tablo olarak duruyorsa yüklemesini kapat.
- Devir teslim: diyagramın ekran görüntüsü, model belgesinin en hızlı okunan sayfasıdır.
Yükleme ayarlarının kontrol listesi
| Sorgu türü | Yüklemeyi etkinleştir | Rapor yenilemeye dahil et |
|---|---|---|
| Olgu ve boyut tabloları | Açık | Açık |
| Ham ve ara sorgular | Kapalı | Açık (başvuranlar zaten çalıştırır) |
| Parametreler ve fonksiyonlar | Kapalı (zaten tablo değil) | — |
| Hiç değişmeyen referans tablo (ör. eski bölge kodları) | Açık | Kapalı olabilir; kaynak değişirse elle yenile |