Modelleme ve veri değişimi
OLTP, OLAP ve yıldız şema
İşlem sistemi ile analitik modeli ayır.
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.
İşlem uygulamasından veri ambarı veya dashboard modeline geçerken.
Fact tablosunun grain’ini tanımlamadan bütün ölçüleri COUNT/SUM ile üretmek.
Aynı konu. Üç farklı derinlik.
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.
Önce kendin dene.
Ödenmiş satış adedini ürün kategorisi bazında hesapla.
Çözümü ve açıklamasını göster
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.