Ana içeriğe geç
Kesit Power BI
İleri · Fabric

Ambar ödevi: T-SQL ile yıldız şema, görünüm ve saklı yordam

Lakehouse’tan ambara CTAS ile taşımak, türü açıkça vermek, iptalleri ayıklayan görünüm, yükleme yordamı ve MERGE tuzakları; sonuçları beklenen değerlerle karşılaştır.

Uygulamada aç, 6 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ç.

Sınavdaki Transform data maddeleri (görünüm, fonksiyon, saklı yordam, yıldız şema, birleştirme, tür dönüşümü) ambar üzerinde T-SQL ile sorulur. Bu ödev önceki dersteki AnadoluLH lakehouse’unu kullanır. SQL’in kendisi eksikse aynı şirketin verisiyle Kesit SQL’de çalış: JOIN, GROUP BY ve pencere fonksiyonları orada alıştırmalı anlatılıyor.

T-SQL ile yükleme seçenekleri

KomutNe yapar?Dikkat
CREATE TABLE AS SELECT (CTAS)Hedefi oluşturur ve doldururTürler sorgudan çıkarılır; kritik sütunda CAST yaz
SELECT ... INTOSorgu sonucundan yeni tabloTürler yine çıkarılır
INSERT ... SELECTVar olan tabloya eklerTablo tanımı senin denetiminde
MERGEAnahtara göre ekler, günceller, silerKaynakta anahtar başına en çok bir satır olmalı. Artımlı toplu veride WHEN NOT MATCHED BY SOURCE THEN DELETE geçerli satırları silebilir

Aynı çalışma alanındaki bir lakehouse’un Tables altındaki tablosuna üç parçalı adla ulaşırsın: AnadoluLH.dbo.Satislar. Öğe, Explorer’a eklenmiş olmalı.

Ödev 1: Boyut ve olgu tablosu

Ambar oluştur (AnadoluDW), sonra çalıştır:

CREATE TABLE dbo.DimUrun AS
SELECT CAST(u.UrunNo AS int)          AS UrunKey,
       CAST(u.Urun AS varchar(100))   AS Urun,
       CAST(u.Kategori AS varchar(50)) AS Kategori
FROM AnadoluLH.dbo.Urunler AS u;

CREATE TABLE dbo.FactSatis AS
SELECT CAST(s.SatirNo AS int)         AS SatirNo,
       CAST(s.SiparisNo AS int)       AS SiparisNo,
       CAST(s.Tarih AS date)          AS Tarih,
       CAST(s.UrunNo AS int)          AS UrunKey,
       CAST(s.Durum AS varchar(20))   AS Durum,
       CAST(s.Tutar AS decimal(18,2)) AS Tutar
FROM AnadoluLH.dbo.Satislar AS s;
Beklenen sonuçDimUrun 40, FactSatis 1.620 satır. Tutar toplamı 1.346.189,85.

Toplam tutmuyorsa önce Tutar sütununun metin mi yüklendiğine, sonra ondalık ayırıcıya bak.

Ödev 2: Temizlik kuralını görünümde tut

CREATE VIEW dbo.vw_NetSatis AS
SELECT f.SiparisNo, f.Tarih, d.Kategori, f.Tutar
FROM dbo.FactSatis AS f
JOIN dbo.DimUrun  AS d ON d.UrunKey = f.UrunKey
WHERE f.Durum <> 'İptal';

Şunu çalıştır ve Elektronik satırını bul:

SELECT Kategori, SUM(Tutar) AS NetSatis, COUNT(DISTINCT SiparisNo) AS Siparis
FROM dbo.vw_NetSatis
GROUP BY Kategori
ORDER BY NetSatis DESC;
Beklenen sonuçGörünümün toplamı 1.250.772,45 (121 iptal satırı çıktı). Elektronik 339.303,65 ile ilk sırada. Aynı sayılar bu uygulamadaki [Net Satış] ölçüsünden de çıkar.

Ödev 3: Saklı yordam

Yükleme adımlarını tek çağrıda toplayan bir yordam yaz: önce DROP TABLE IF EXISTS, sonra iki CTAS. Yordamı bir işlem hattına Stored procedure etkinliği olarak ekle ve zamanla. Bir not yaz: “Bu tam yükleme. Artımlı yüklemede ne değişir?” Cevabın MERGE, anahtar benzersizliği ve silme kuralını içermeli.

Sınavda neye bakılır?

Alıştırmalara geç (6)