COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
34/ 65

Modelleme ve veri değişimi

OLTP, OLAP ve yıldız şema

İşlem sistemi ile analitik modeli ayır.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

OLTP çok sayıda küçük, tutarlı işlem için tasarlanır; sipariş ekleme buna örnektir. OLAP büyük veri kümelerini özetleyerek analiz eder. İki iş yükü aynı indeks ve model tercihleriyle en iyi sonucu vermeyebilir.

Yıldız şemada fact tablo ölçüleri belirli grain’de saklar; dimension tablolar ürün, müşteri veya takvim bağlamı verir. FactSales grain’i sipariş kalemi ise sipariş sayısı doğrudan COUNT(*) değildir. Değişen boyutları tarihsel olarak izlemek gerekirse slowly changing dimension tasarımı gerekir; rapora güncel müşteri şehrini mi satış anındaki şehri mi istediğini sor.

NERESİNDE KULLANIRSIN?

İşlem uygulamasından veri ambarı veya dashboard modeline geçerken.

SIK YAPILAN HATA

Fact tablosunun grain’ini tanımlamadan bütün ölçüleri COUNT/SUM ile üretmek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT OrderId, ProductId, Quantity, UnitPrice FROM lab.OrderItem;

Kalem seviyesindeki ölçülerin kaynak tablosu.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Ödenmiş satış adedini ürün kategorisi bazında hesapla.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT p.Category, SUM(i.Quantity) AS Units FROM lab.OrderItem AS i JOIN lab.Product AS p ON p.ProductId = i.ProductId JOIN lab.SalesOrder AS o ON o.OrderId = i.OrderId WHERE o.Status = 'Paid' GROUP BY p.Category;

Satış adedi SUM(Quantity); kalem sayısı COUNT(*) başka bir ölçüdür.