Excel ve Power Pivot eklentisini kullanarak bellek etkin bir veri modeli oluşturma

Önemli : Bu makale makine çevisidir. Bkz. yasal uyarı. Bu makalenin İngilizce sürümüne buradan ulaşabilirsiniz.

Excel 2013'te veya üstü, milyonlarca satırı içeren veri modelleri oluşturmak ve sonra bu modelleri karşı güçlü veri çözümlemesi gerçekleştirin. Veri modelleri olan veya olmayan Power Pivot aynı çalışma kitabındaki herhangi bir sayıda PivotTable'ları, grafikleri ve Power View Görselleştirmelerini desteklemek için eklentisini oluşturulabilir.

Not : Bu makalede, veri modellerini Excel 2013'te açıklanmaktadır. Bununla birlikte, aynı veri modellemesi ve Excel 2013'te sunulan Power Pivot özellikleri de Excel 2016 için geçerlidir. Bu Excel sürümleri arasında etkili bir şekilde küçük fark yoktur.

Excel'de çok büyük veri modeli kolayca oluşturabilirsiniz, ancak çeşitli nedenleri vardır değil çok. Tabloların ve sütunların gerek içeren ilk, büyük modelleri overkill çoğu analizleri için olan ve hantal bir alan listesi için yapın. İkinci, büyük modelleri değerli belleği, diğer uygulamaların ve aynı sistem kaynakları paylaşma raporları olumsuz yönde etkileyen kullanın. Son olarak, Office 365'te, SharePoint Online ve Excel Web App boyutu 10 MB bir Excel dosyasına sınırlayın. Milyonlarca satırı içeren çalışma kitabı veri modelleri için 10 MB sınırına oldukça hızlı bir şekilde çalıştıracaksınız. Veri modeli belirtim ve sınırlamalarıkonusuna bakın.

Bu makalede, çalışması kolay ve daha az bellek kullanan sıkı yapılandırılmış bir model oluşturmayı öğreneceksiniz. Etkin model tasarımında en iyi uygulamaları öğrenmeye ayırdığınız zaman, ileride oluşturacağınız ve kullanacağınız ve gerek Excel 2013, gerekse Office 365 SharePoint Online, Office Web Apps Server ya da SharePoint 2013'te görüntüleyeceğiniz herhangi bir modelde kendisini telafi edecektir.

Çalışma kitabı boyutu Ayarlayıcısı de çalışıyor göz önünde bulundurun. Bu Excel çalışma kitabınızın inceler ve mümkünse, daha fazla sıkıştırır. Çalışma kitabı boyutu Ayarlayıcısıindirin.

Bu makalede

Sıkıştırma oranları ve bellek içi analitik altyapısı

Hiçbir şey var olmayan bir sütunun düşük bellek kullanımı açısından yerini tutmaz

Her zaman dışarıda bırakılması gereken sütunlara iki örnek

Gereksiz sütunları çıkarma

Peki yalnızca gerekli satırlara filtre uygulanabilir mi?

Peki sütuna ihtiyacımız; Biz yine de alan maliyetini düşürmek?

Tarih saat sütunlarını değiştirme

SQL sorgusunu değiştirme

DAX hesaplanan ölçümlerini sütunlar yerine kullanma

Hangi 2 sütunu tutmalısınız?

Sonuç

İlgili bağlantılar

Sıkıştırma oranları ve bellek içi analitik altyapısı

Excel'deki veri modelleri belleğe veri depolamak için belek içi analitik altyapısını kullanır. Bu altyapı, depolama gereksinimlerini azaltmak için güçlü sıkıştırma teknikleri uygular ve özgün boyutunun küçük bir kısmı kadar bir sonuç kümesine daraltır.

Ortalama olarak, bir veri modelinin başlangıç noktasındaki aynı verilerden 7 ila 10 kat küçük olmasını bekleyebilirsiniz. Örneğin, bir SQL Server veritabanından 7 MB veri içeri aktarıyorsanız, Excel'deki veri modeli kolaylıkla 1 MB veya daha küçük olabilir. Gerçekte ulaşılan sıkıştırma derecesi esasen her bir sütundaki benzersiz değerlerin sayısına bağlıdır. Benzersiz değerlerin sayısı arttıkça, bunları depolamak için gereken bellek miktarı da artar.

Neden sıkıştırmaktan ve benzersiz değerlerden bahsediyoruz? Çünkü bellek kullanımını en aza indiren etkin bir model oluşturmak tamamen sıkıştırmanın en üst düzeye çıkarılmasıyla ilgilidir ve bunu yapmanın en kolay yolu da, gerçekten ihtiyacınız olmayan sütunlardan (özellikle de bu sütunlar çok sayıda benzersiz değer içeriyorsa) kurtulmaktır.

Not : Tek tek sütunlar için depolama gereksinimi farklılıkları çok büyük olabilir. Bazı durumlarda çok sayıda benzersiz değer içeren tek bir sütundan çok, daha az sayıda benzersiz değer içeren birden fazla sütun bulunması daha iyidir. Tarih Saat iyileştirmeleriyle ile ilgili bölümde bu teknik ayrıntılı olarak ele alınmaktadır.

Düşük bellek kullanımı açısından hiçbir şey var olmayan bir sütunun yerini tutamaz

Bellek açısından en etkin sütun en başta hiç içeri aktarmadığınız sütundur. Etkin bir model oluşturmak istiyorsanız, her bir sütuna bakın ve yapmak istediğiniz çözümlemeye katkısı olup olmadığını kendinize sorun. Katkısı yoksa veya bundan emin değilseniz, dışarıda bırakın. Gerektiğinde, daha sonra istediğiniz zaman yeni sütunlar ekleyebilirsiniz.

Her zaman dışarıda bırakılması gereken sütunlara iki örnek

İlk örnek, veri ambarı kökenli verilerle ilgilidir. Bir veri ambarında, ambara veri yükleyen ve buradaki verileri yenileyen ETL işlemlerinin yapıları yaygın olarak bulunur. “Oluşturma tarihi”, “güncelleştirme tarihi” ve “ETL çalışması” gibi sütunlar veriler yüklenirken oluşturulur. Modelde bu sütunların hiçbirine gerek yoktur ve verileri içeri aktarırken bunların seçimini kaldırmalısınız.

İkinci örnek, bir bulgu tablosunu içeri aktarırken birincil anahtar sütununun dahil edilmemesini kapsar.

Olgu tabloları dahil birçok tablonun birincil anahtarları vardır. Müşteri, çalışan veya satış verilerini içeren tablolar gibi çoğu tabloda, modeldeki ilişkileri oluşturmak için kullanmak üzere tablonun birincil anahtarına gerek duyarsınız.

Olgu tabloları farklıdır. Olgu tablosunda birincil anahtar her bir satırı benzersiz olarak tanımlamak için kullanılır. Normalleştirme amaçlarında bu gerekli olmakla birlikte, yalnızca çözümleme için kullanılacak sütunları veya tablo ilişkilerini belirlemek istediğiniz bir veri modelinde daha az yarar sağlar. Bu nedenle, bir olgu tablosundan içeri aktarma işlemi tablonun birincil anahtarını kapsamaz. Olgu tablosundaki birincil anahtarlar modelde çok büyük miktarda alan tüketmesine karşın, ilişkileri oluşturmak için kullanılamamaları nedeniyle hiçbir avantaj sağlamazlar.

Not : Veri ambarlarında ve çok boyutlu veritabanlarında, çoğunlukla sayısal verilerden oluşan büyük tablolar genellikle “olgu tabloları” olarak anılır. Olgu tabloları tipik olarak, kurumsal birimlere, ürünlere, pazar kesimlerine, coğrafi bölgelere vs. göre bir araya getirilip sıralanmış satış ve maliyet veri noktaları gibi iş performansı veya işlem verilerini içerirler. Bir olgu tablosunda, iş verilerini içeren veya diğer tablolarda depolanan verilerle çapraz başvuru oluşturmak için kullanılabilecek tüm sütunlar, veri çözümlemesini desteklemesi amacıyla modele dahil edilmelidir. Hariç tutmak istediğiniz sütun, olgu tablosunun, yalnızca olgu tablosunda var olan ve başka hiçbir yerde geçmeyen benzersiz değerlerinden oluşan birincil anahtar sütunudur. Olgu tabloları muazzam büyük olduğundan, model etkinliğindeki en büyük kazanımların bazıları olgu tablolarındaki satır ve sütunların dışarıda bırakılmasıyla sağlanır.

Gereksiz sütunları çıkarma

Yalnızca gerçekten çalışma kitabınızda gerekecektir sütunları verimli modelleri içerir. Modelde hangi sütunların dahil edilen denetlemek istiyorsanız, Excel "Verilerini içeri aktar" iletişim kutusunda Tablo Alma Sihirbazı'nı eklentisindeki PowerPivot verileri içeri aktarmak yerine gerekir.

Tablo İçeri Aktar Sihirbazı'nı başlattığınızda, içeri aktarılacak tabloları seçersiniz.

PowerPivot eklentisindeki Tablo İçeri Aktar sihirbazı

Her bir tablo için "Önizle ve Filtre Uygula" düğmesini tıklatıp tablonun gerçekten ihtiyacınız olan bölümlerini seçebilirsiniz. Önce tüm sütunların işaretini kaldırmanızı ve çözümleme için gerekli olup olmadıklarını değerlendirdikten sonra istediğiniz sütunları işaretleyerek devam etmenizi öneririz.

Tablo İçeri Aktar sihirbazındaki Önizleme bölmesi

Yalnızca gerekli satırlara filtre uygulanabilir mi?

Kurumsal veritabanlarındaki ve veri ambarlarındaki çoğu tablo çok uzun bir süredir biriken geçmiş verileri içerir. Ayrıca, ilgilendiğiniz tabloların, özel çözümlemeniz için gerekli olmayan iş alanlarıyla ilgili bilgileri içerdiğini de fark edebilirsiniz.

Tablo İçeri Aktar sihirbazını kullanarak geçmiş veya ilgisiz verilere filtre uygulayabilir ve böylece modelde çok fazla alan kazanabilirsiniz. Aşağıdaki resimde, gerek duyulmayacak geçmiş verileri hariç tutarak, yalnızca içinde bulunulan yılın verilerini içeren satırları getirmek için bir tarih filtresi kullanılmaktadır.

Tablo İçeri Aktar sihirbazındaki Filtre bölmesi

Sütun gerekli olsa bile, yine de sütunun alan maliyetini düşürebilir miyiz?

Sütunu daha iyi bir sıkıştırma adayı haline getirmek için uygulayabileceğiniz birkaç ek teknik daha vardır. Sütunun sıkıştırmayı etkileyen tek özelliğinin benzersiz değerlerin sayısı olduğunu unutmayın. Bu bölümde, benzersiz değerlerin sayısını azaltmak için bazı sütunların nasıl değiştirilebildiğini öğreneceksiniz.

Tarih Saat sütunlarını değiştirme

Çoğu durumda Tarih Saat sütunları çok fazla yer kaplar. Neyse ki, bu veri türü için depolama gereksinimlerini azaltmanın bazı yolları vardır. Bu teknikler, sütunu kullanma şeklinize ve SQL sorgularını oluşturmadaki rahatlık düzeyinize bağlı olarak değişiklik gösterir.

Tarih Saat sütunları bir tarih bölümü ve bir de saat içerir. Bir sütuna ihtiyacınız olup olmadığını kendinize sorarken, Tarih Saat sütunu için aynı soruyu birçok kez sorun:

  • Saat bölümüne ihtiyacım var mı?

  • Saat bölümüne saat, dakika, saniye veya milisaniye düzeyinde ihtiyacım var mı?

  • Birden fazla Tarih Saat sütunum olmasının nedeni, bunların aralarındaki farkları hesaplamak istemem mi yoksa yalnızca verileri yıla, aya, üç aya vs. göre toplamak mı?

Bu soruların her birine verdiğiniz yanıt, Tarih Saat sütunuyla işlem yapma seçeneklerinizi belirler.

Bu çözümlerin tümü SQL sorgusunda değişiklik yapmayı gerektirir. Sorgu değişikliğini kolaylaştırmak için, her tabloda en az bir sütuna filtre uygulamalısınız. Bir sütuna filtre uygulayarak, sorgu yapısını kısaltılmış biçimden (SELECT *), değiştirilmeleri çok daha kolay olan tam nitelikli sütun adlarını içeren bir SELECT deyimine dönüştürmüş olursunuz.

Sizin için oluşturulmuş sorgulara bir göz atalım. Tablo Özellikleri iletişim kutusundan, Sorgu düzenleyicisine geçiş yapabilir ve her bir tablo için geçerli SQL sorgusunu görebilirsiniz.

powerpivot penceresinde tablo özellikleri komutunu gösteren şerit

Tablo Özellikleri'nden Sorgu Düzenleyicisi'ni seçin.

Tablo Özellikleri iletişim kutusundan Sorgu Düzenleyicisi'ni açma

Sorgu Düzenleyicisi, tabloyu doldurmak için kullanılan SQL sorgusunu gösterir. İçeri aktarma işlemi sırasında herhangi bir sütuna filtre uyguladıysanız, sorgunuz tam nitelikli sütun adlarını içerir:

verileri getirmek için kullanılan sql sorgusu

Bunun aksine, herhangi bir sütunu işaretlemeden veya herhangi bir filtre uygulamadan tabloyu bütünüyle içeri aktardıysanız, sorguyu “Select * from ” sorgusu olarak görürsünüz ve değiştirilmesi daha zor olur:

varsayılan, kısa sözdiziminin kullanıldığı sql sorgusu

SQL sorgusunu değiştirme

Artık sorguyu nasıl bulacağınızı bildiğinize göre, modelinizin boyutunu daha da azaltacak şekilde değişiklik yapabilirsiniz.

  1. Para birimi veya ondalık verileri içeren sütunlarda ondalık haneye ihtiyacınız yoksa aşağıdaki sözdizimini kullanarak ondalık hanelerden kurtulabilirsiniz:

    “SELECT ROUND([Ondalık_sütun_adı],0)… .”

    Kuruşlara ihtiyacınız varsa, ancak kesirlerine gerek duymuyorsanız, 0'ın yerine 2 koyun. Negatif sayılar kullanıyorsanız, birimlere, onlara, yüzlere vs. yuvarlayabilirsiniz.

  2. dbo.Bigtable.[Tarih Saat] adında bir Tarih Saat sütununuz varsa ve Saat bölümüne gerek duymuyorsanız, aşağıdaki sözdizimini kullanarak saat bölümünden kurtulabilirsiniz:

    “SELECT CAST (dbo.Bigtable.[Tarih saat] as date) AS [Tarih saat]) “

  3. dbo.Bigtable.[Tarih Saat] adında bir Tarih Saat sütununuz varsa ve hem Tarih hem de Saat bölümüne gerek duyuyorsanız, SQL sorgusunda tek bir Tarih Saat sütunu yerine birden fazla sütun kullanın:

    “SELECT CAST (dbo.Bigtable.[Tarih Saat] as date ) AS [Tarih Saat],

    datepart(hh, dbo.Bigtable.[Tarih Saat]) as [Tarih Saat Saatler],

    datepart(mi, dbo.Bigtable.[Tarih Saat]) as [Tarih Saat Dakikalar],

    datepart(ss, dbo.Bigtable.[Tarih Saat]) as [Tarih Saat Saniyeler],

    datepart(ms, dbo.Bigtable.[Tarih Saat]) as [Tarih Saat Milisaniyeler]”

    Her bölümü ayrı bir sütunda depolamak için gerek duyduğunuz kadar sütun kullanın.

  4. Saat ve dakikalara ihtiyacınız varsa ve bunları tek bir saat sütunu olarak birlikte görmeyi tercih ederseniz, aşağıdaki sözdizimini kullanabilirsiniz:

    Timefromparts(datepart(hh, dbo.Bigtable.[Tarih Saat]), datepart(mm, dbo.Bigtable.[Tarih Saat])) as [Tarih Saat SaatDakika]

  5. [Tarih Saat] ve [Bitiş Saati] gibi iki tarih saat sütununuz varsa ve sizin aslında gerek duyduğunuz, [Süre] adlı bir sütunda saniye cinsinden bunlar arasındaki zaman farkıysa, iki sütunu da listeden kaldırın ve şunu ekleyin:

    “datediff(ss,[Başlangıç Tarihi],[Bitiş Tarihi] as [Süre]”

    ss yerine ms anahtar sözcüğünü kullanırsanız, süreyi milisaniye olarak alırsınız

Sütunların yerine DAX hesaplanan ölçümlerini kullanma

Daha önce DAX ifade diliyle çalıştıysanız, modeldeki bazı diğer sütunları temel alan yeni sütunlar türetmek için hesaplanan sütunlar kullanılırken, hesaplanan ölçümlerin modelde bir kez tanımlandığını, ancak yalnızca bir PivotTable veya diğer bir raporda kullanıldıklarında değerlendirildiğini biliyor olabilirsiniz.

Bellek kazandıran tekniklerden biri de normal veya hesaplanan sütunların yerine hesaplanan ölçümleri kullanmaktır. Bunun klasik örneği Birim Fiyat, Miktar ve Toplam'dır. Elinizde üçü de varsa, yalnızca ikisini tutup, üçüncüsünü DAX kullanarak hesaplamak suretiyle alan kazanabilirsiniz.

Hangi 2 sütunu tutmalısınız?

Yukarıdaki örnekte Miktar ve Birim Fiyat'ı tutun. Bu ikisi Toplam'dan daha az sayıda değere sahiptir. Toplam'ı hesaplamak için aşağıdaki gibi bir hesaplanan ölçüm ekleyin:

“ToplamSatışlar:=sumx(‘Satış Tablosu’,’Satış Tablosu’[Birim Fiyat]*’Satış Tablosu’[Miktar])”

Hesaplanan sütunlar, her ikisinin de modelde yer kaplaması bakımından normal sütunlara benzer. Bunun aksine, hesaplanan ölçümler işlem sırasında hesaplanır ve yer kaplamazlar.

Sonuç

Bu makalede, bellek açısından daha etkin bir model oluşturmanıza yardımcı olabilecek çeşitli yaklaşımlardan bahsettik. Bir veri modelinin dosya boyutunu ve bellek gereksinimlerini azaltmanın yolu toplam sütun ve satır sayısını ve her bir sütunda görünen benzersiz değerlerin sayısını azaltmaktır. İşte size ele aldığımız bazı teknikler:

  • Şüphesiz, yerden kazanmanın en iyi yolu sütunları kaldırmaktır. Hangi sütunlara gerçekten ihtiyacınız olduğuna karar verin.

  • Bazen bir sütunu kaldırabilir ve tabloda bunun yerine bir hesaplanan ölçüm kullanabilirsiniz.

  • Tablodaki tüm satırlara ihtiyacınız olmayabilir. Tablo İçeri Aktar Sihirbazı'nda satırlara filtre uygulayabilirsiniz.

  • Genel olarak, tek bir sütunu birden fazla ayrı bölüm halinde parçalara ayırmak sütundaki benzersiz değerlerin sayısını azaltmak için iyi bir yöntemdir. Bu bölümlerin her biri daha az sayıda benzersiz değer içerecek ve birleşik toplam özgün birleşik sütundan daha küçük olacaktır.

  • Çoğu durumda, ayrı ayrı bölümleri raporlarınızda dilimleyiciler olarak kullanmanız da gerekir. Uygun olduğunda, Saatler, Dakikalar ve Saniyeler gibi bölümlerden hiyerarşi oluşturabilirsiniz.

  • Çoğu zaman, sütunlar sizin gerek duyduğunuzdan fazla bilgi içerir. Örneğin, bir sütunda ondalıkların depolandığını, ancak sizin tüm ondalık haneleri gizleyecek şekilde biçimlendirme uyguladığınızı varsayalım. Yuvarlama işlemi, sayısal bir sütunun boyutunun küçültülmesinde çok etkili olabilir.

Çalışma kitabınızı boyutunu azaltmak için yapabilecekleriniz yaptığınızı kaydettiğinize göre çalışma kitabı boyutu Ayarlayıcısı de çalışıyor göz önünde bulundurun. Bu Excel çalışma kitabınızın inceler ve mümkünse, daha fazla sıkıştırır. Çalışma kitabı boyutu Ayarlayıcısıindirin.

İlgili bağlantılar

Veri Modeli belirtimi ve sınırlamaları

Çalışma kitabı boyutu Ayarlayıcısı indirme

Power Pivot: Güçlü veri çözümlemesi ve Excel'de veri modelleme

Not : Makine Çevirisi Yasal Uyarısı: Bu makale, insan müdahalesi olmadan bir bilgisayar sistemi tarafından çevrilmiştir. Microsoft bu makine çevirilerini İngilizce bilmeyen kullanıcıların Microsoft ürünleri, hizmetleri ve teknolojileriyle ilgili içeriklerden yararlanmasına yardımcı olmak için sunar. Bu makale makine çevirisi olduğundan sözcük, cümle dizilimi ve gramer hataları içerebilir.

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×