Ana içeriğe geç
Kesit Power BI
Orta · Veri Hazırlama

Power Query ile modele hazırlık

Parametreler, gizlilik düzeyleri, başvuru ve çoğaltma, JSON gibi yarı yapılandırılmış veri, olgu/boyut ve anahtar oluşturma, yükleme ayarları.

Uygulamada aç, 11 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

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üzeyiAnlamı
ÖzelHassas veri; başka bir kaynağa hiç gönderilmez
KuruluşKuruluş içindeki kaynaklarla birleştirilebilir
GenelHerkese 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ırEski sorgunun tüm adımlarını kopyalar
Kaynak değişirseDeğişiklik yeni sorguya da yansırBağımsızdır
Tipik kullanımHam satış sorgusundan Müşteriler ve Ürünler boyutlarını türetmekBenzer ama ayrı bir kaynağa uyarlamak
DikkatAra sorgunun “Yüklemeyi etkinleştir” seçeneğini kapatMantı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:

  1. Ham sorguya Başvuru ver → yalnızca müşteri sütunlarını seç → Yinelenenleri kaldır → Musteriler boyutu.
  2. Aynısını ürün sütunları için yap → Urunler.
  3. Boyutlarda doğal anahtar yoksa Sütun ekle → Dizin sütunu ile vekil anahtar (surrogate key) oluştur.
  4. Olgu tablosunda boyutlarla Sorguları birleştir → anahtar sütunu genişlet → metin sütunlarını kaldır. Geriye anahtarlar ve sayılar kalır.
  5. 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:

  1. Liste → Tabloya dönüştür.
  2. Kayıt sütununun başlığındaki genişlet düğmesi → alanları seç (iç içe kayıtlarda tekrar genişlet).
  3. İç 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

Yükleme ayarları

Uzmanlaş

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 katlananGenellikle 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şimiDizin 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ştirRapor yenilemeye dahil et
Olgu ve boyut tablolarıAçıkAçık
Ham ve ara sorgularKapalıAçık (başvuranlar zaten çalıştırır)
Parametreler ve fonksiyonlarKapalı (zaten tablo değil)—
Hiç değişmeyen referans tablo (ör. eski bölge kodları)AçıkKapalı olabilir; kaynak değişirse elle yenile
Yüklemeyi kapatınca kaybolanlarYüklemesi açık bir sorgunun yüklemesini sonradan kapatırsan modeldeki tablo silinir; o tabloya dayanan ölçüler, ilişkiler ve görseller bozulur. Kapatmadan önce Sorgu Bağımlılıkları’na ve modeldeki kullanımlarına bak.
Alıştırmalara geç (11)