Tablolu modellerde DirectQuery modu

Şunlar için geçerlidir: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Bu makalede, 1200 ve daha yüksek uyumluluk düzeylerinde Analysis Services tablosal modelleri için DirectQuery modu açıklanmaktadır. DirectQuery modu Visual Studio'da tasarladığınız modeller için etkinleştirilebilir veya zaten dağıtılmış olan tablosal modeller için SQL Server Management Studio (SSMS) kullanarak DirectQuery moduna geçebilirsiniz. DirectQuery modunu seçmeden önce hem avantajları hem de sınırlamaları anlamak önemlidir.

Fayda -ları

Varsayılan olarak, tablosal modeller verileri depolamak ve sorgulamak için bellek içi bir önbellek kullanır. Tablosal modeller bellek içinde bulunan verileri sorguladığında karmaşık sorgular bile çok hızlı olabilir. Ancak, önbelleğe alınan verileri kullanmanın bazı sınırlamaları vardır; örneğin, çok büyük veri kümeleri kullanılabilir belleği aşabilir ve bellek içi model verilerinin işlenmesi (yenilenmesi) sık sık gerekirse çok fazla miktarda kullanılabilir kaynak gerektirebilir.

DirectQuery bu sınırlamaların üstesinden gelirken RDBMS özelliklerinden yararlanarak sorgu yürütmeyi daha verimli hale getirir. DirectQuery ile:

  • Veriler günceldir. Veriler her zaman veri kaynağında sorgulandığından, istemci raporlama uygulamaları her zaman en son verileri alır.

  • Verilerin ayrı bir kopyasını (bellek içi önbellekte) tutmak zorunda kalmanın ek yönetim yükü yoktur. Model verilerinin işlenmesi (yenilenmesi) gerekmez. Temel alınan kaynak verilerde yapılan değişiklikler, veri modeline yönelik sorgulara hemen yansıtılabilir.

  • Veri kümeleri, Analysis Services sunucu kaynağının bellek kapasitesinden daha büyük olabilir.

  • DirectQuery, sağlayıcı tarafındaki, bellek-iyileştirilmiş sütun dizinleri tarafından sağlanan sorgu hızlandırmasından yararlanabilir.

  • Güvenlik, veritabanından satır düzeyi güvenlik özellikleri kullanılarak arka uç kaynak veritabanı tarafından zorunlu kılınabilir (alternatif olarak, DAX kullanarak modelde tanımlanan satır düzeyi güvenlik kurallarını kullanabilirsiniz).

  • Model birden çok sorgu gerektirebilecek karmaşık formüller içeriyorsa Analysis Services, arka uç veritabanında yürütülen sorgunun sorgu planının mümkün olduğunca verimli olmasını sağlamak için iyileştirme gerçekleştirebilir.

Sınırlamalar

DirectQuery modunda tablosal modellerin bazı sınırlamaları vardır. Modlar arasında geçiş yapmadan önce, arka uç sunucusunda sorgu yürütmenin avantajlarının işlevsellikte herhangi bir azalmaya ağır basıp basmayacağını belirlemek önemlidir. Visual Studio'da var olan bir modelin modunu değiştirirseniz, Tablosal model tasarımcısı modelinizdeki DirectQuery moduyla uyumlu olmayan tüm özellikleri size bildirir. Aşağıdaki sınırlamaları göz önünde bulundurun:

Özellik Kısıtlama
Veri kaynakları DirectQuery modelleri yalnızca şu türlerdeki tek bir ilişkisel veritabanındaki verileri kullanabilir: Azure SQL Veritabanı, Azure Synapse Analytics, SQL Server, Oracle ve Teradata.
SQL saklı yordamları DirectQuery modellerinde, tabloları tanımlamak için SQL deyiminde saklı işlemler belirtilemez.
Hesaplanan tablolar Hesaplanan tablolar DirectQuery modellerinde desteklenmez, ancak hesaplanmış sütunlar desteklenir. Hesaplanmış tablo içeren bir tablosal modeli dönüştürmeye çalışırsanız, modelin yapıştırılan verileri içeremeyeceğini belirten bir hata oluşur.
Sorgu sınırları Varsayılan satır sınırı bir milyon satırdır. Bu sınır MaxIntermediateRowSize belirtilerek artırılabilir. Daha fazla bilgi edinmek için bkz. DAX Özellikleri.
DAX formülleri DirectQuery modunda tablosal modeli sorgularken Analysis Services, DAX formüllerini ve ölçü tanımlarını SQL deyimlerine dönüştürür. SQL söz dizimine dönüştürülemeyen öğeler içeren DAX formülleri modelde doğrulama hataları döndürür.

Bu kısıtlama çoğunlukla belirli DAX tablo işlevleriyle sınırlıdır. Ölçüler için DAX formülleri, ilişkisel veri deposuna karşı küme tabanlı işlemlere dönüştürülür. Bu, örtük olarak oluşturulan tüm ölçülerin desteklendiği anlamına gelir.

Doğrulama hatası oluştuğunda formülü yeniden yazmanız, farklı bir işlev değiştirmeniz veya veri kaynağındaki türetilmiş sütunları kullanarak geçici çözüm oluşturmanız gerekir. Tablosal model uyumsuz işlevler içeren formüller içeriyorsa, tasarımcıda DirectQuery moduna geçtiğinizde raporlanır.

Not: Modeldeki bazı formüller modeli DirectQuery moduna geçirdiğinizde doğrulanabilir, ancak önbellekte yürütülürken ilişkisel veri deposu yerine farklı sonuçlar döndürebilir. Bunun nedeni, önbelleğe yönelik hesaplamaların Excel'in davranışını öykünmeye yönelik özellikler içeren bellek içi analiz altyapısının semantiğini kullanması, ilişkisel veri kaynağında depolanan verilere yönelik sorguların ise SQL'in semantiğini kullanmasıdır.

Formül tutarlılığı Bazı durumlarda, aynı formül önbelleğe alınmış bir modelde yalnızca ilişkisel veri deposu kullanan bir DirectQuery modeline kıyasla farklı sonuçlar döndürebilir. Bu farklar, bellek içi analiz altyapısı ile veri kaynağı arasındaki anlamsal farklılıkların bir sonucudur.

MDX sınırlamaları Göreli nesne adı yok. Tüm nesne adları tam olarak nitelenmiş olmalıdır.

Oturum kapsamı MDX deyimleri (adlandırılmış kümeler, hesaplanan üyeler, hesaplanan hücreler, görsel toplamlar, varsayılan üyeler vb.) yoktur, ancak 'WITH' yan tümcesi gibi sorgu kapsamı yapılarını kullanabilirsiniz.

MDX alt seçim yan tümcelerinde farklı hiyerarşik düzeylerden üyelere sahip iki elemanlı küme yok.

Kullanıcı tanımlı hiyerarşi yok.

Yerel SQL sorgusu yoktur (normalde Analysis Services bir T-SQL alt kümesini destekler, ancak DirectQuery modelleri için desteklemez).

Veri kaynağına bağlanma

Visual Studio'da DirectQuery modeli tasarlarken, veri kaynağına bağlanmak ve modelinize dahil etmek üzere tabloları ve alanları seçmek bellek içi modellerle çok aynıdır.

DirectQuery'yi zaten açtıysanız ancak henüz bir veri kaynağına bağlanmadıysanız, veri kaynağına bağlanmak, tabloları ve alanları seçmek vb. için Veri Al (veya eski sağlayıcı veri kaynakları için Veri İçeri Aktarma Sihirbazı) kullanabilirsiniz. Bu fark, işlemi tamamladığınızda bellek içi önbelleğe veri içeri aktarılmamış olmasıdır.

DirectQuery içeri aktarma başarısı

Verileri içeri aktarmak için Veri Al'ı zaten kullandıysanız ancak DirectQuery modunu henüz açmadıysanız, bunu yaptığınızda bellek içi önbellek temizlenir.

DirectQuery model projesine örnek veri ekleme

Varsayılan olarak, Visual Studio'da (SSDT) Bir DirectQuery tablolu model projesi tasarlamak için Tablosal model tasarımcısı kullanılırken, modelin çalışma alanı veritabanı herhangi bir veri içermez. Her tablo için bir varsayılan bölüm vardır ve bu bölüm tüm sorguları veri kaynağına yönlendirir. Tablosal model tasarımında, DirectQuery ilk tanıtıldığından beri Bölüm Yöneticisi'nde Örnek Olarak Ayarla özelliği bulunmaktadır. Bu özellik, çalışma alanı veritabanına az miktarda örnek veri aktarmak için kullanılabilecek tablolara kopyalama bölümü eklemeye olanak tanır. Bu özellik, veri kaynağını etkilemeden modelleme kararlarını doğrulamaya yardımcı olmak içindir.

Önemli

Şu anda Tablosal model tasarımcısındaÖrnek Olarak Ayarla özelliği desteklenmez. TableName< tablosunun >örnek bölüm içermediğini göz ardı edin; SSDT'de veri kullanmak için lütfen örnek bölüm uyarıları ekleyin.

DirectQuery modellerini dağıtma

DirectQuery modelleri, içe aktarma modelleriyle aynı şekilde dağıtılır. Ancak, içeri aktarma modellerinin aksine, DirectQuery modeli hesaplanmış sütunlar veya hesaplama grupları gibi hesaplanan öğeler içeriyorsa, dağıtıldıktan sonra tüm tablolarda bir İşlem Yeniden Hesaplaması gerçekleştirmeniz gerekir. Daha fazla bilgi edinmek için bkz. Veritabanı, tablo veya bölümü işle.

Ayrıca bakınız

Visual Studio'da DirectQuery modunu etkinleştirme
SSMS'de DirectQuery modunu etkinleştirme
DirectQuery modellerinde bölümleri tanımlamaModeli DirectQuery modunda test etme
Azure Analysis Services’ta desteklenen veri kaynakları
SQL Server Analysis Services tablosal 1400 ve üzeri modellerde desteklenen veri kaynakları.