Power BI Desktop’ta Bileşik model kılavuzuComposite model guidance in Power BI Desktop

Bu makale Power BI Bileşik modelleri geliştiren veri modelleyicilerine yöneliktir.This article targets data modelers developing Power BI Composite models. Bileşik model kullanım örneklerini açıklar ve size tasarım yönergeleri sağlar.It describes Composite model use cases, and provides you with design guidance. Bu yönergeler özel olarak Bileşik modelin çözümünüze uygun olup olmadığını saptamanıza yardımcı olmak için hazırlanmıştır.Specifically, the guidance is to help you determine whether a Composite model is appropriate for your solution. Uygunsa, bu makale en iyi modeli tasarlamanıza da yardımcı olacaktır.If it is, then this article will also help you design an optimal model.

Not

Bileşik modellere giriş konusu bu makalenin kapsamı dışındadır.An introduction to Composite models is not covered in this article. Bileşik modelleri tam olarak bilmiyorsanız önce Power BI Desktop’ta bileşik modelleri kullanma makalesini okumanızı öneririz.If you're not completely familiar with Composite models, we recommend you first read the Use composite models in Power BI Desktop article.

Bileşik modeller en az bir DirectQuery kaynağından oluştuğu için model ilişkilerini, DirectQuery modellerini ve DirectQuery modeli tasarım yönergelerini de her yönüyle anlamanız önemlidir.Because Composite models consist of at least one DirectQuery source, it's also important that you have a thorough understanding of model relationships, DirectQuery models, and DirectQuery model design guidance.

Bileşik model kullanım örnekleriComposite model use cases

Mümkünse, en iyisi modeli İçeri Aktarma modunda geliştirmektir.Whenever possible, it's best to develop a model in Import mode. En fazla tasarım esnekliği ve en iyi performansı bu mod sağlar.This mode provides the greatest design flexibility, and best performance.

Öte yandan büyük hacimli verilerin veya gerçek zamanlıya yakın verileri raporlamanın getirdiği güçlükler İçeri Aktarma modelleriyle çözülemez.However, challenges related to large data volumes, or reporting on near real-time data, cannot be solved by Import models. Bu iki durumda da, verilerinizin DirectQuery modunda desteklenen tek bir veri kaynağında depolanması koşuluyla DirectQuery modelini göz önüne alabilirsiniz.In either of these cases, you can consider a DirectQuery model, providing your data is stored in a single data source that's supported by DirectQuery mode.

Ayrıca aşağıdaki durumlarda Bileşik model geliştirmeyi de düşünebilirsiniz.Further, you can consider developing a Composite model in the following situations.

  • Modeliniz bir DirectQuery modeli olabilir ama performansı artırmak istiyorsunuz.Your model could be a DirectQuery model, but you want to boost performance. Bileşik modelde, her tablo için uygun depolamanın yapılandırılması yoluyla performans geliştirilebilir.In a Composite model, performance can be improved by configuring appropriate storage for each table. Ayrıca toplamalar da ekleyebilirsiniz.You can also add aggregations. Bu iyileştirmelerin ikisi de bu makalenin devamında açıklanmaktadır.Both of these optimizations are discussed later in this article.
  • DirectQuery modelini, modele aktarılması gereken ek verilerle birleştirmek istiyorsunuz.You want to combine a DirectQuery model with additional data, which must be imported into the model. İçeri aktarılan veriler farklı bir veri kaynağından veya hesaplanmış tablolardan yükleniyor olabilir.Imported data can be loaded from a different data source, or from calculated tables.
  • İki veya daha çok DirectQuery veri kaynağını tek modelde birleştirmek istiyorsunuz.You want to combine two or more DirectQuery data sources into a single model.

Not

Bileşik modeller Canlı Bağlantı kaynaklarını veya DirectQuery analitik veritabanı kaynaklarını birleştiremez.Composite models cannot combine Live Connection sources or DirectQuery analytic database sources. Canlı Bağlantı kaynakları harici olarak barındırılan modeller ve Power BI veri kümeleridir.Live Connection sources include external-hosted models, and Power BI datasets. DirectQuery analitik veritabanı kaynakları SAP Business Warehouse ve SAP HANA’dır.DirectQuery analytic database sources include SAP Business Warehouse, and SAP HANA.

Model tasarımını iyileştirmeOptimize model design

Bileşik model, tablo depolama modları yapılandırılarak ve toplamalar eklenerek iyileştirilebilir.A Composite model can be optimized by configuring table storage modes, and by adding aggregations.

Tablo depolama moduTable storage mode

Bileşik modelde her tablo için depolama modunu yapılandırabilirsiniz (hesaplanmış tablolar dışında):In a Composite model, you can configure the storage mode for each table (except calculated tables):

  • DirectQuery: Büyük hacimli verileri temsil eden veya gerçek zamanlıya yakın sonuçlar vermesi gereken tablolar için bu modu ayarlamanızı öneririz.DirectQuery: We recommend you set this mode for tables that represent large data volumes, or which need to deliver near real-time results. Veriler hiçbir zaman bu tablolara içeri aktarılmayacaktır.Data will never be imported into these tables. Genellikle bu tablolar olgu türünde, özetleme için kullanılan tablolar olacaktır.Usually, these tables will be fact-type tables—tables used for summarization.
  • İçeri Aktarma: Filtreleme ve gruplandırma için kullanılan, boyut türündeki tablolar için bu modu ayarlamanızı öneririz.Import: We recommend you set this mode for dimension-type tables—tables used for filtering and grouping. Aslında DirectQuery modunda desteklenmeyen kaynaklara dayalı tablolar için tek seçenek budur.In fact, it's the only option for tables based on sources not supported by DirectQuery mode. Hesaplanmış tablolar her zaman İçeri Aktarma tablolarıdır.Calculated tables are always Import tables.
  • İkili: Aynı kaynaktan DirectQuery olgu türündeki tablolarıyla birlikte sorgulanma olasılıkları olduğunda, boyut türündeki tablolar için bu modu ayarlamanızı öneririz.Dual: We recommend you set this mode for dimension-type tables, when there's a possibility they'll be queried together with DirectQuery fact-type tables from the same source.

Power BI’ın Bileşik modeli sorguladığı çeşitli olası senaryolar vardır:There are several possible scenarios when Power BI queries a Composite model:

  • Yalnızca İçeri Aktarma tablolarını veya İkili tabloları sorgular: Tüm veriler model önbelleğinden veriler alınır.Queries only Import or Dual table(s): All data is retrieved from the model cache. Mümkün olan en hızlı performansı getirir.It will deliver the fastest possible performance. Bu senaryo, filtreler veya dilimleyici görselleri tarafından sorgulanan boyut türündeki tablolarda yaygındır.This scenario is common for dimension-type tables queried by filters or slicer visuals.
  • Aynı kaynaktan İkili tabloları veya DirectQuery tablolarını sorgular: Tüm veriler DirectQuery kaynağına bir veya birden çok yerel sorgu gönderilerek alınır.Queries Dual table(s) or DirectQuery table(s) from the same source: All data is retrieved by sending one or more native queries to the DirectQuery source. Özellikle kaynak tablolarda uygun dizinler mevcut olduğunda mümkün olan en hızlı performansı getirir.It will deliver the fastest possible performance, especially when appropriate indexes exist on the source tables. Bu senaryo, İkili boyut türündeki tablolarla ve DirectQuery olgu türündeki tablolarıyla ilgili sorgularda yaygındır.This scenario is common for queries that relate Dual dimension-type tables and DirectQuery fact-type tables. Bu sorgular ada içinde çalıştırılır ve dolayısıyla tüm bire bir veya bire çok ilişkileri normal ilişkiler olarak değerlendirilir.These queries are intra-island, and so all one-to-one or one-to-many relationships are evaluated as regular relationships.
  • Tüm diğer sorgular: Bu sorgular adalar arası ilişkiler içerir.All other queries: These queries involve cross-island relationships. Bunun nedeni İçeri Aktarma tablosunun bir DirectQuery tablosuyla ilgili olması veya İkili tablonun farklı kaynaktan bir DirectQuery tablosuyla ilgili olmasıdır (bu durumda İçeri Aktarma tablosu gibi davranır).It's either because an Import table relates to a DirectQuery table, or a Dual table relates to a DirectQuery table from a different source—in which case it behaves as an Import table. Tüm ilişkiler sınırlı ilişki olarak değerlendirilir.All relationships are evaluated as limited relationships. Ayrıca DirectQuery olmayan tablolara uygulanan gruplandırmaların DirectQuery kaynağına sanal tablo olarak gönderilmesi gerektiği anlamına da gelir.It also means that groupings applied to non-DirectQuery tables must be sent to the DirectQuery source as a virtual table. Bu durumda yerel sorgu, özellikle de büyük gruplandırma kümeleri için verimsiz olabilir.In this case, the native query can be inefficient, especially for large grouping sets. Ayrıca yerel sorguda hassas verileri ortaya çıkarma olasılığı vardır.And, it has the potential to expose sensitive data in the native query.

Özetle şunları yapmanızı öneririz:In summary, we recommend that you:

  • Bileşik modelin doğru çözüm olup olmadığını dikkatle düşünün; farklı veri kaynaklarını model düzeyinde tümleştirmeye olanak tanır ama sonuçları olabilecek tasarım karmaşıklıkları da getirirConsider carefully that a Composite model is the right solution—while it allows model-level integration of different data sources, it also introduces design complexities with possible consequences
  • Tablo büyük hacimli verilerin depolandığı olgu türünde bir tablo olduğunda depolama modunu DirectQuery olarak ayarlayınSet the storage mode to DirectQuery when a table is a fact-type table storing large data volumes, or it needs to deliver near real-time results
  • Tablo boyut türünde bir tablo olduğunda depolama modunu İkili olarak ayarlayın; aynı kaynak temelinde DirectQuery olgu türündeki tablolarıyla birlikte sorgulanacaktırSet the storage mode to Dual when a table is a dimension-type table, and it will be queried together with DirectQuery fact-type tables based on the same source
  • İkili tabloların (ve tüm bağımlı hesaplanmış tabloların) model önbelleğini kaynak veritabanlarıyla eşitlenmiş durumda tutmak için uygun yenileme sıklıkları yapılandırınConfigure appropriate refresh frequencies to keep the model cache for Dual tables (and any dependent calculated tables) in sync with the source database(s)
  • Veri kaynakları arasında (model önbelleği dahil) veri bütünlüğünü korumaya çalışın. Sınırlı ilişkiler, ilgili sütun değerleri eşleşmediğinde satırları ortadan kaldırırStrive to ensure data integrity across data sources (including the model cache)—limited relationships will eliminate rows when related column values don't match
  • Verimli birleştirme, filtreleme ve gruplandırma işlemleri için uygun dizinlerle DirectQuery veri kaynaklarını iyileştirinOptimize DirectQuery data sources with appropriate indexes for efficient joins, filtering and grouping
  • Yerel sorguda araya girilme riski varsa İçeri Aktarma veya İkili tablolara hassas verileri yüklemeyin; daha fazla bilgi için bkz. Power BI Desktop’ta bileşik modelleri kullanma (Güvenlik üzerindeki etkileri)Don't load sensitive data into Import or Dual tables if there's risk of a native query being intercepted—for more information, see Use composite models in Power BI Desktop (Security implications)

ToplamalarAggregations

Bileşik modelinizde DirectQuery tablolarına toplamalar ekleyebilirsiniz.You can add aggregations to DirectQuery tables in your Composite model. Toplamalar modelde önbelleğe alınır ve dolayısıyla İçeri Aktarma tabloları gibi davranır (ama bir model tablosu gibi kullanılamazlar).Aggregations are cached in the model, and so they behave as Import tables (although they can't be used like a model table). Amaçları “daha ayrıntılı” sorguların performansını geliştirmektir.Their purpose is to improve performance for "higher grain" queries. Daha fazla bilgi için bkz. Power BI Desktop'taki Toplamalar.For more information, see Aggregations in Power BI Desktop.

Toplama tablosunda temel bir kurala uyulmasını öneririz: Satır sayısı, en fazla temel tablonun 10’da biri kadar olmalıdır.We recommend that an aggregation table follows a basic rule: Its row count should be at least a factor of 10 smaller than the underlying table. Örneğin temel tabloda 1 milyar satır depolanıyorsa, toplama tablosu 100 milyon satırı aşmamalıdır.For example, if the underlying table stores 1 billion rows, then the aggregation table shouldn't exceed 100 million rows. Bu kural toplama tablosunu oluşturma ve koruma maliyetine göre uygun bir performans kazanımı elde edilmesini sağlar.This rule ensures there's an adequate performance gain relative to the cost of creating and maintaining the aggregation table.

Sonraki adımlarNext steps

Bu makaleyle ilgili daha fazla bilgi için aşağıdaki kaynaklara bakın:For more information related to this article, check out the following resources: