Aracılığıyla paylaş


Power Platform için Power BI modelleme kılavuzu

Microsoft Dataverse, Dynamics 365 Customer Engagement ve Power Apps tuval uygulamaları ve dynamics 365 Customer Voice (eski adı Microsoft Forms Pro), Power Automate onayları, Power Apps portalları ve diğerleri dahil olmak üzere birçok Microsoft iş uygulaması ürünü için standart veri platformudur.

Bu makalede Dataverse'e bağlanan bir Power BI veri modelinin nasıl oluşturulacağı hakkında yönergeler sağlanır. Dataverse şeması ile iyileştirilmiş bir Power BI şeması arasındaki farkları açıklar ve Power BI'da iş uygulaması verilerinizin görünürlüğünü genişletmeye yönelik rehberlik sağlar.

Kurulum kolaylığı, hızlı dağıtım ve yaygın benimseme özellikleri nedeniyle Dataverse, kuruluşlar genelindeki ortamlarda giderek artan miktarda veriyi depolar ve yönetir. Bu, analizi bu süreçlerle tümleştirmek için daha da fazla ihtiyaç ve fırsat olduğu anlamına gelir. Fırsatlar şunlardır:

  • Yerleşik grafiklerin kısıtlamalarının ötesine taşınan tüm Dataverse verilerini rapor edin.
  • Belirli bir kayıttaki ilgili, bağlamsal olarak filtrelenmiş raporlara kolay erişim sağlayın.
  • Dataverse verilerini dış verilerle tümleştirerek değerini geliştirin.
  • Karmaşık kod yazmaya gerek kalmadan Power BI'ın yerleşik yapay zekadan (AI) yararlanın.
  • Yararlılıklarını ve değerlerini artırarak Power Platform çözümlerinin benimsenmesini artırın.
  • Uygulamanızdaki verilerin değerini iş karar alıcılarına teslim edin.

Power BI'ı Dataverse'e Bağlan

Power BI'ı Dataverse'e Bağlan power BI veri modeli oluşturmayı içerir. Power BI modeli oluşturmak için üç yöntem arasından seçim yapabilirsiniz.

  • Dataverse bağlayıcısını kullanarak Dataverse verilerini içeri aktarın: Bu yöntem Dataverse verilerini bir Power BI modelinde önbelleğe alır (depolar). Bellek içi sorgulama sayesinde hızlı performans sunar. Ayrıca modelleyicilere tasarım esnekliği seçerek diğer kaynaklardan gelen verileri tümleştirmelerine olanak sağlar. Bu güçlü yönlerden dolayı, Power BI Desktop'ta model oluştururken verileri içeri aktarma varsayılan moddur.
  • Azure Synapse Link kullanarak Dataverse verilerini içeri aktarma: Bu yöntem, Power BI modelindeki verileri de önbelleğe aldığı, ancak Azure Synapse Analytics'e bağlanarak bunu yaptığı için içeri aktarma yöntemindeki bir çeşitlemedir. Dataverse için Azure Synapse Link kullanılarak Dataverse tabloları sürekli olarak Azure Synapse veya Azure Data Lake Depolama (ADLS) 2. Nesil'e çoğaltılır. Bu yaklaşım, Dataverse ortamlarındaki yüz binlerce, hatta milyonlarca kaydı raporlamak için kullanılır.
  • Dataverse bağlayıcısını kullanarak DirectQuery bağlantısı oluşturun: Bu yöntem, verileri içeri aktarmaya alternatiftir. DirectQuery modeli yalnızca model yapısını tanımlayan meta verilerden oluşur. Kullanıcı bir raporu açtığında Power BI verileri almak için Dataverse'e yerel sorgular gönderir. Raporların gerçek zamanlıya yakın Dataverse verilerini göstermesi gerektiğinde veya Kullanıcıların yalnızca erişim ayrıcalıklarına sahip oldukları verileri görebilmesi için Dataverse'in rol tabanlı güvenliği zorunlu kılması gerektiğinde DirectQuery modeli oluşturmayı göz önünde bulundurun.

Önemli

DirectQuery modeli, bir raporda neredeyse gerçek zamanlı raporlamaya veya Dataverse güvenliğini zorunlu kılmaya ihtiyaç duyduğunuzda iyi bir alternatif olabilir, ancak bu rapor için performansın yavaş olmasına neden olabilir.

Bu makalenin devamında DirectQuery ile ilgili dikkat edilmesi gerekenler hakkında bilgi edinebilirsiniz.

Power BI modeliniz için doğru yöntemi belirlemek için şunları göz önünde bulundurmanız gerekir:

  • Sorgu performansı
  • Veri hacmi
  • Veri gecikme süresi
  • Rol tabanlı güvenlik
  • Kurulum karmaşıklığı

İpucu

Model çerçeveleri (içeri aktarma, DirectQuery veya bileşik), bunların avantajları ve sınırlamaları ve Power BI veri modellerini iyileştirmeye yardımcı olacak özellikler hakkında ayrıntılı bir tartışma için bkz . Power BI model çerçevesi seçme.

Sorgu performansı

İçeri aktarma modellerine gönderilen sorgular, DirectQuery veri kaynaklarına gönderilen yerel sorgulardan daha hızlıdır. Bunun nedeni içeri aktarılan verilerin bellekte önbelleğe alınmış olması ve analiz sorguları (filtreleme, gruplandırma ve özetleme işlemleri) için iyileştirilmiş olmasıdır.

Buna karşılık, DirectQuery modelleri yalnızca kullanıcı bir raporu açtıktan sonra kaynaktan veri alır ve bu da rapor işlenirken saniyelerce gecikmeye neden olur. Buna ek olarak, rapordaki kullanıcı etkileşimleri Power BI'ın kaynağı yeniden sorgulamasını gerektirir ve bu da yanıt hızını daha da azaltır.

Veri hacmi

İçeri aktarma modeli geliştirirken modele yüklenen verileri en aza indirmek için çabalamalısınız. Bu durum özellikle büyük modeller veya zamanla büyüyeceğini tahmin ettiğiniz modeller için geçerlidir. Daha fazla bilgi için bkz . İçeri aktarma modellemesi için veri azaltma teknikleri.

Raporun sorgu sonucu büyük olmadığında Dataverse'e DirectQuery bağlantısı iyi bir seçimdir. Büyük bir sorgu sonucunun raporun kaynak tablolarında 20.000'den fazla satırı vardır veya filtreler uygulandıktan sonra rapora döndürülen sonuç 20.000'den fazla satırdır. Bu durumda, Dataverse bağlayıcısını kullanarak bir Power BI raporu oluşturabilirsiniz.

Not

20.000 satır boyutu sabit bir sınır değildir. Ancak, her veri kaynağı sorgusu 10 dakika içinde bir sonuç döndürmelidir. Bu makalenin ilerleyen bölümlerinde bu sınırlamalar ve diğer Dataverse DirectQuery tasarım konuları hakkında nasıl çalışılacağını öğreneceksiniz.

Verileri veri modeline aktarmak için Dataverse bağlayıcısını kullanarak daha büyük anlamsal modellerin (eski adı veri kümeleri) performansını geliştirebilirsiniz.

Birkaç yüz bin hatta milyonlarca satırı olan daha büyük anlam modelleri bile Dataverse için Azure Synapse Link'i kullanma avantajından yararlanabilir. Bu yaklaşım, Dataverse verilerini ADLS 2. Nesil'e CSV veya Parquet dosyaları olarak kopyalayan devam eden bir yönetilen işlem hattı ayarlar. Power BI daha sonra içeri aktarma modeli yüklemek için Azure Synapse sunucusuz SQL havuzunu sorgulayabilir.

Veri gecikme süresi

Dataverse verileri hızla değiştiğinde ve rapor kullanıcılarının güncel verileri görmesi gerektiğinde, DirectQuery modeli neredeyse gerçek zamanlı sorgu sonuçları sunabilir.

İpucu

Gerçek zamanlı güncelleştirmeleri göstermek için otomatik sayfa yenileme kullanan bir Power BI raporu oluşturabilirsiniz, ancak yalnızca rapor bir DirectQuery modeline bağlandığında.

Veri içeri aktarma modelleri, son veri değişikliklerinin raporlanmasını sağlamak için veri yenileme işlemini tamamlamalıdır. Günlük zamanlanmış veri yenileme işlemlerinin sayısında sınırlamalar olduğunu unutmayın. Paylaşılan kapasitede günde en fazla sekiz yenileme zamanlayabilirsiniz. Premium kapasitede veya Microsoft Fabric kapasitesinde günde en fazla 48 yenileme zamanlayabilirsiniz ve bu da 15 dakikalık yenileme sıklığına ulaşabilir.

Önemli

Bazen bu makale Power BI Premium'a veya kapasite aboneliklerine (P SKU'ları) başvurur. Microsoft'un şu anda satın alma seçeneklerini birleştirdiğini ve kapasite başına Power BI Premium SKU'larını kullanımdan kaldırdığını unutmayın. Yeni ve mevcut müşteriler bunun yerine Doku kapasitesi abonelikleri (F SKU'ları) satın almayı düşünmelidir.

Daha fazla bilgi için bkz . Power BI Premium lisansına gelen önemli güncelleştirmeler ve Power BI Premium hakkında SSS.

Daha hızlı yenilemeler ve neredeyse gerçek zamanlı performans elde etmek için artımlı yenilemeyi de kullanabilirsiniz (yalnızca Premium veya Doku ile kullanılabilir).

Rol tabanlı güvenlik

Rol tabanlı güvenliğin zorunlu kılınmasının gerekli olması, Power BI model çerçevesi seçimini doğrudan etkileyebilir.

Dataverse, belirli kayıtların belirli kullanıcılara erişimini denetlemek için karmaşık rol tabanlı güvenlik uygulayabilir. Örneğin, bir satış temsilcisinin yalnızca satış fırsatlarını görmesine izin verilirken, satış yöneticisi tüm satış temsilcileri için tüm satış fırsatlarını görebilir. Karmaşıklık düzeyini kuruluşunuzun gereksinimlerine göre uyarlayabilirsiniz.

Dataverse tabanlı bir DirectQuery modeli, rapor kullanıcısının güvenlik bağlamını kullanarak bağlanabilir. Bu şekilde, rapor kullanıcısı yalnızca erişmesine izin verilen verileri görür. Bu yaklaşım rapor tasarımını basitleştirerek performansın kabul edilebilir olmasını sağlayabilir.

Gelişmiş performans için, bunun yerine Dataverse'e bağlanan bir içeri aktarma modeli oluşturabilirsiniz. Bu durumda, gerekirse modele satır düzeyi güvenlik (RLS) ekleyebilirsiniz.

Not

Özellikle Dataverse karmaşık izinleri zorunlu kıldığında, Bazı Dataverse rol tabanlı güvenliği Power BI RLS olarak çoğaltmak zor olabilir. Ayrıca, Power BI izinlerini Dataverse izinleriyle eşitlenmiş durumda tutmak için sürekli yönetim gerektirebilir.

Power BI RLS hakkında daha fazla bilgi için bkz . Power BI Desktop'ta satır düzeyi güvenlik (RLS) kılavuzu.

Kurulum karmaşıklığı

İçeri aktarma veya DirectQuery modelleri için Power BI'da Dataverse bağlayıcısını kullanmak basittir ve özel yazılım veya yükseltilmiş Dataverse izinleri gerektirmez. Bu, çalışmaya başlayan kuruluşlar veya departmanlar için bir avantajdır.

Azure Synapse Link seçeneği, Sistem yöneticisinin Dataverse'e ve belirli Azure izinlerine erişmesini gerektirir. Depolama hesabını ve Synapse çalışma alanını ayarlamak için bu Azure izinleri gereklidir.

Bu bölümde, Dataverse'e bağlanan bir Power BI modeli oluştururken göz önünde bulundurmanız gereken tasarım desenleri (ve desen karşıtlıkları) açıklanmaktadır. Bu desenlerden yalnızca birkaçı Dataverse'e özgü olsa da, Power BI raporları oluşturma konusunda Dataverse oluşturucuları için sık karşılaşılan zorluklardan biri olma eğilimindedir.

Belirli bir kullanım örneğine odaklanma

Her şeyi çözmeye çalışmak yerine belirli bir kullanım örneğine odaklanın.

Bu öneri muhtemelen en yaygın ve kolayca kaçınılması gereken en zorlu anti-desendir. Tüm self servis raporlama gereksinimlerini karşılayan tek bir model oluşturmaya çalışmak zordur. Gerçek şu ki, başarılı modeller tek bir temel konu üzerinde merkezi bir olgu kümesiyle ilgili soruları yanıtlamak için oluşturulur. Bu, başlangıçta modeli sınırlandırıyor gibi görünse de, aslında bu konudaki soruları yanıtlamak için modeli ayarlayıp iyileştirebileceğiniz için güçlendiricidir.

Modelin amacını net bir şekilde anladığınızdan emin olmanıza yardımcı olmak için kendinize aşağıdaki soruları sorun.

  • Bu model hangi konu alanını destekleyecek?
  • Raporların hedef kitlesi kim?
  • Raporlar hangi soruları yanıtlamaya çalışıyor?
  • En düşük uygulanabilir anlamsal model nedir?

Rapor kullanıcısının tek bir raporla ele almak istediği birden çok konu alanıyla ilgili soruları olduğu için birden çok konu alanını tek bir modelde birleştirmeye karşı koyabilirsiniz. Her biri farklı bir konuya (veya olgu tablosuna) odaklanan bu raporu birden çok rapora ayırarak çok daha verimli, ölçeklenebilir ve yönetilebilir modeller oluşturabilirsiniz.

Yıldız şeması tasarlama

Dataverse şemasından memnun olan Dataverse geliştiricileri ve yöneticileri aynı şemayı Power BI'da yeniden oluşturmak isteyebilir. Bu yaklaşım bir anti-desendir ve muhtemelen üstesinden gelinmesi en zor yöntemdir çünkü tutarlılığı korumak doğru bir yaklaşımdır.

Dataverse, ilişkisel bir model olarak amacına çok uygundur. Ancak analiz raporları için iyileştirilmiş bir analiz modeli olarak tasarlanmamıştır. Analiz verilerini modellemek için en yaygın desen, yıldız şeması tasarımıdır. Yıldız şeması, ilişkisel veri ambarları tarafından yaygın olarak benimsenen olgun bir modelleme yaklaşımıdır. Modelleyicilerin model tablolarını boyut veya olgu olarak sınıflandırması gerekir. Raporlar boyut tablosu sütunlarını kullanarak filtreleyebilir veya gruplandırabilir ve olgu tablosu sütunlarını özetleyebilir.

Diyagram, tek bir fırsat olgu tablosunu ve dört boyut tablosunu içeren bir yıldız şemasını gösterir.

Daha fazla bilgi için bkz . Yıldız şemasını ve Power BI'ın önemini anlama.

Power Query sorgularını iyileştirme

Power Query karma altyapısı, verimlilik nedeniyle mümkün olduğunca sorguyu kaynağa döndürmeye çalışır. Kaynağa döndürmeyi başaran bir sorgu, sorgu işlemeyi kaynak sisteme verir.

Bu durumda dataverse kaynak sisteminin yalnızca Power BI'a filtrelenmiş veya özetlenmiş sonuçlar sağlaması gerekir. Katlanmış sorgu genellikle katlanmamış bir sorgudan çok daha hızlı ve daha verimlidir.

Sorguyu kaynağa döndürmeyi nasıl başarabileceğiniz hakkında daha fazla bilgi için bkz . Power Query sorguyu kaynağa döndürme.

Not

Power Query'yi iyileştirme geniş bir konu başlığıdır. Power QUERY'nin Power BI Desktop'ta yazma sırasında ve model yenileme zamanında ne yaptığını daha iyi anlamak için bkz . Sorgu tanılama.

Sorgu sütunlarının sayısını en aza indirme

Varsayılan olarak, Dataverse tablosunu yüklemek için Power Query'yi kullandığınızda, tüm satırları ve tüm sütunları alır. Örneğin, bir sistem kullanıcı tablosunu sorguladığınızda, 1.000'den fazla sütun içerebilir. Meta verilerdeki sütunlar diğer varlıklarla ilişkileri ve seçenek etiketlerine yapılan aramaları içerir, böylece toplam sütun sayısı Dataverse tablosunun karmaşıklığıyla artar.

Tüm sütunlardan veri almaya çalışmak bir anti-desendir. Genellikle genişletilmiş veri yenileme işlemleriyle sonuçlanır ve verilerin döndürülmesi için gereken süre 10 dakikayı aştığında sorgunun başarısız olmasına neden olur.

Yalnızca raporların gerektirdiği sütunları almanızı öneririz. Rapor geliştirme tamamlandığında sorguları yeniden değerlendirmek ve yeniden düzenlemek, kullanılmayan sütunları tanımlamanıza ve kaldırmanıza olanak tanımak genellikle iyi bir fikirdir. Daha fazla bilgi için bkz . İçeri aktarma modellemesi için veri azaltma teknikleri (Gereksiz sütunları kaldırma).

Ayrıca power query sütunları kaldırma adımını erken tanıtıp kaynağa geri katlandığından emin olun. Bu şekilde, Power Query kaynak verileri daha sonra atmak için (açılmamış bir adımda) kaynak verileri ayıklamanın gereksiz çalışmasını önleyebilir.

Çok sayıda sütun içeren bir tablonuz olduğunda, Power Query etkileşimli sorgu oluşturucusunu kullanmak pratik olmayabilir. Bu durumda, boş bir sorgu oluşturarak işe başlayabilirsiniz. Daha sonra Gelişmiş Düzenleyici kullanarak başlangıç noktası oluşturan en düşük sorguyu yapıştırabilirsiniz.

Hesap tablosunun yalnızca iki sütunundaki verileri alan aşağıdaki sorguyu göz önünde bulundurun.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com", [CreateNavigationProperties=false]),
    dbo_account = Source{[Schema="dbo", Item="account"]}[Data],
    #"Removed Other Columns" = Table.SelectColumns(dbo_account, {"accountid", "name"})
in
    #"Removed Other Columns"

Yerel sorgu yazma

Belirli dönüştürme gereksinimleriniz olduğunda, Transact-SQL'in bir alt kümesi olan Dataverse SQL'de yazılmış bir yerel sorgu kullanarak daha iyi performans elde edebilirsiniz. Yerel sorguyu şu adrese yazabilirsiniz:

  • Satır sayısını azaltın (yan WHERE tümcesi kullanarak).
  • Verileri toplama (ve HAVING yan tümcelerini kullanarakGROUP BY).
  • Tabloları belirli bir şekilde birleştirin (veya APPLY söz dizimini JOIN kullanarak).
  • Desteklenen SQL işlevlerini kullanın.

Daha fazla bilgi için bkz.

EnableFolding seçeneğiyle yerel sorgular yürütme

Power Query, işlevini kullanarak yerel sorgu yürütür Value.NativeQuery .

Bu işlevi kullanırken sorguların EnableFolding=true Dataverse hizmetine geri katlandığından emin olmak için seçeneğinin eklenmesi önemlidir. Bu seçenek eklenmedikçe yerel sorgu katlamaz. Bu seçeneğin etkinleştirilmesi, bazı durumlarda yüzde 97'ye kadar daha hızlı performans geliştirmelerine neden olabilir.

Hesap tablosundan seçilen sütunları kaynak yapmak için yerel sorgu kullanan aşağıdaki sorguyu göz önünde bulundurun. Seçenek ayarlandığından EnableFolding=true yerel sorgu katlanır.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com"),
    dbo_account = Value.NativeQuery(
        Source,
        "SELECT A.accountid, A.name FROM account A"
        ,null
        ,[EnableFolding=true]
    )
in
     dbo_account

Büyük bir veri biriminden bir veri alt kümesi alırken en büyük performans iyileştirmelerini elde edebilirsiniz.

İpucu

Performans iyileştirmesi, Power BI'ın kaynak veritabanını nasıl sorgulayabileceğine de bağlı olabilir. Örneğin, DAX işlevini kullanan COUNTDISTINCT bir ölçü, katlama ipucuyla veya bu ipucu olmadan neredeyse hiçbir gelişme göstermedi. DAX işlevini kullanmak SUMX için ölçü formülü yeniden yazıldığında, sorgu katlandığında ipucu olmadan aynı sorgu üzerinde yüzde 97'lik bir iyileştirme elde edilir.

Daha fazla bilgi için bkz . Value.NativeQuery. (Seçenek EnableFolding yalnızca belirli veri kaynaklarına özgü olduğundan belgelenmez.)

Değerlendirme aşamasını hızlandırma

Dataverse bağlayıcısını (eski adıyla Common Data Service) kullanıyorsanız, veri içeri aktarma işleminin CreateNavigationProperties=false değerlendirme aşamasını hızlandırma seçeneğini ekleyebilirsiniz.

Bir veri içeri aktarma işleminin değerlendirme aşaması, olası tüm tablo ilişkilerini belirlemek için kaynağının meta verileri aracılığıyla yinelenir. Bu meta veriler özellikle Dataverse için kapsamlı olabilir. Bu seçeneği sorguya ekleyerek Power Query'ye bu ilişkileri kullanmayı amaçlamadığınızı bildirirsiniz. seçeneği, Power BI Desktop'ın yenilemenin bu aşamasını atlayıp verileri almaya devam etmesini sağlar.

Not

Sorgu genişletilmiş ilişki sütunlarına bağlı olduğunda bu seçeneği kullanmayın.

Hesap tablosundan veri alan bir örnek düşünün. Bölgeyle ilgili üç sütun içerir: territory, territoryid ve territoryidname.

Üç bölge sütunu hesap tablosu için verilerin önizlemesini gösteren ekran görüntüsü.

Seçeneği ayarladığınızda CreateNavigationProperties=false territoryid ve territoryidname sütunları kalır, ancak ilişki sütunu olan bölge sütunu (Değer bağlantılarını gösterir) hariç tutulur. Power Query ilişki sütunlarının, model tabloları arasında filtreleri yayan ilişkileri modellemek için farklı bir kavram olduğunu anlamak önemlidir.

Bir veri içeri aktarma işleminin CreateNavigationProperties=false değerlendirme aşamasını hızlandırmak için (Kaynak adımında) seçeneğini kullanan aşağıdaki sorguyu göz önünde bulundurun.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com"
        ,[CreateNavigationProperties=false]),
    dbo_account = Source{[Schema="dbo", Item="account"]}[Data],
    #"Removed Other Columns" = Table.SelectColumns(dbo_account, {"accountid", "name", "address1_stateorprovince", "address1_country", "industrycodename", "territoryidname"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns", {{"name", "Account Name"}, {"address1_country", "Country"}, {"address1_stateorprovince", "State or Province"}, {"territoryidname", "Territory"}, {"industrycodename", "Industry"}})
in
    #"Renamed Columns"

Bu seçeneği kullanırken, dataverse tablosunun diğer tablolarla çok sayıda ilişkisi olduğunda büyük olasılıkla önemli bir performans geliştirmesi yaşarsınız. Örneğin, SystemUser tablosu veritabanındaki diğer tüm tabloyla ilişkili olduğundan, bu tablonun yenileme performansı seçeneği ayarlanarak CreateNavigationProperties=false yararlı olabilir.

Not

Bu seçenek, Power Query Düzenleyicisi pencere değişikliklerini uygulama işlemi de dahil olmak üzere içeri aktarma tablolarının veya çift depolama modu tablolarının veri yenileme performansını iyileştirebilir. DirectQuery depolama modu tablolarının etkileşimli çapraz filtreleme performansını iyileştirmez.

Boş seçim etiketlerini çözümleme

Power BI'da Dataverse seçim etiketlerinin boş olduğunu fark ederseniz, bunun nedeni etiketlerin Tablosal Veri Akışı (TDS) uç noktasında yayımlanmamış olması olabilir.

Bu durumda Dataverse Maker Portalını açın, Çözümler alanına gidin ve ardından Tüm özelleştirmeleri yayımla'yı seçin. Yayın işlemi, TDS uç noktasını en son meta verilerle güncelleştirerek seçenek etiketlerini Power BI'ın kullanımına sunacaktır.

Dataverse, tabloları Azure Data Lake Depolama (ADLS) ile eşitleme ve ardından bir Azure Synapse çalışma alanı aracılığıyla bu verilere bağlanma özelliğini içerir. En az çabayla Azure Synapse Link'i Dataverse verilerini Azure Synapse'e dolduracak şekilde ayarlayabilir ve veri ekiplerinin daha derin içgörüler keşfetmesini sağlayabilirsiniz.

Azure Synapse Link, Dataverse'den veri gölüne verilerin ve meta verilerin sürekli olarak çoğaltılıp çoğaltılıp çoğaltılamalarına olanak tanır. Ayrıca Power BI sorguları için kullanışlı bir veri kaynağı olarak yerleşik bir sunucusuz SQL havuzu sağlar.

Bu yaklaşımın güçlü yönleri önemlidir. Müşteriler, çeşitli gelişmiş hizmetleri kullanarak Dataverse verilerinde analiz, iş zekası ve makine öğrenmesi iş yüklerini çalıştırma olanağı elde eder. Gelişmiş hizmetler Apache Spark, Power BI, Azure Data Factory, Azure Databricks ve Azure Machine Learning'dir.

Dataverse için Azure Synapse Link oluşturmak için aşağıdaki önkoşullara sahip olmanız gerekir.

  • Dataverse ortamına sistem yöneticisi erişimi.
  • Azure Data Lake Depolama için:
    • ADLS 2. Nesil ile kullanmak için bir depolama hesabınız olmalıdır.
    • Blob Veri Sahibi Depolama ve depolama hesabına Blob Veri Katkıda Bulunanı erişimi Depolama atanmalısınız. Daha fazla bilgi için bkz . Rol tabanlı erişim denetimi (Azure RBAC).
    • Depolama hesabının hiyerarşik ad alanını etkinleştirmesi gerekir.
    • Depolama hesabının okuma erişimli coğrafi olarak yedekli depolama (RA-GRS) kullanması önerilir.
  • Synapse çalışma alanı için:
    • Synapse çalışma alanına erişiminiz olması ve Synapse Yönetici istrator erişimine sahip olmanız gerekir. Daha fazla bilgi için bkz . Yerleşik Synapse RBAC rolleri ve kapsamları.
    • Çalışma alanı ADLS 2. Nesil depolama hesabıyla aynı bölgede olmalıdır.

Kurulum, Power Apps'te oturum açmayı ve Dataverse'i Azure Synapse çalışma alanına bağlamayı içerir. Sihirbaz benzeri bir deneyim, dışarı aktarılacak depolama hesabını ve tabloları seçerek yeni bir bağlantı oluşturmanıza olanak tanır. Azure Synapse Link daha sonra verileri ADLS 2. Nesil depolama alanına kopyalar ve yerleşik Azure Synapse sunucusuz SQL havuzunda otomatik olarak görünümler oluşturur. Ardından power BI modeli oluşturmak için bu görünümlere bağlanabilirsiniz.

Diyagramda Azure Synapse Link'in verileri ADLS 2. Nesil depolama alanına kopyalaması ve Power BI'ın Azure Synapse Analytics'e bağlanması gösterilmektedir.

İpucu

Azure Synapse Link oluşturma, yönetme ve izleme hakkında eksiksiz belgeler için bkz . Azure Synapse Çalışma Alanınızla Dataverse için Azure Synapse Link oluşturma.

İkinci bir sunucusuz SQL veritabanı oluşturma

İkinci bir sunucusuz SQL veritabanı oluşturabilir ve bunu kullanarak özel rapor görünümleri ekleyebilirsiniz. Bu şekilde, Power BI oluşturucusunun kullanışlı ve ilgili verilere dayalı bir model oluşturmasına olanak tanıyan basitleştirilmiş bir veri kümesi sunabilirsiniz. Yeni sunucusuz SQL veritabanı, oluşturucunun birincil kaynak bağlantısı olur ve veri gölünden alınan verilerin kolay bir gösterimi olur.

Diyagramda Azure Synapse Link'in verileri ADLS 2. Nesil depolama alanına kopyalaması ve Power BI'ın Azure Synapse Analytics'e bağlanması gösterilmektedir. Özel rapor görünümlerini içerir.

Bu yaklaşım Power BI'a odaklanmış, zenginleştirilmiş ve filtrelenmiş veriler sunar.

Azure Synapse Studio kullanarak Azure Synapse çalışma alanında sunucusuz bir SQL veritabanı oluşturabilirsiniz. SQL veritabanı türü olarak Sunucusuz'a tıklayın ve bir veritabanı adı girin. Power Query, çalışma alanı SQL uç noktasına bağlanarak bu veritabanına bağlanabilir.

Özel görünümler oluşturma

Sunucusuz SQL havuzu sorgularını sarmalayan özel görünümler oluşturabilirsiniz. Bu görünümler, Power BI'ın bağlanacağı basit ve temiz veri kaynakları görevi görür. Görünümler:

  • Seçim alanlarıyla ilişkili etiketleri ekleyin.
  • Yalnızca veri modelleme için gereken sütunları ekleyerek karmaşıklığı azaltın.
  • Etkin olmayan kayıtlar gibi gereksiz satırları filtreleyin.

Kampanya verilerini alan aşağıdaki görünümü göz önünde bulundurun.

CREATE VIEW [VW_Campaign]
AS
    SELECT
        [base].[campaignid] AS [CampaignID]
        [base].[name] AS [Campaign],
        [campaign_status].[LocalizedLabel] AS [Status],
        [campaign_typecode].[LocalizedLabel] AS [Type Code]
    FROM
        [<MySynapseLinkDB>].[dbo].[campaign] AS [base]
        LEFT OUTER JOIN [<MySynapseLinkDB>].[dbo].[OptionsetMetadata] AS [campaign_typecode]
            ON [base].[typecode] = [campaign_typecode].[option]
               AND [campaign_typecode].[LocalizedLabelLanguageCode] = 1033
               AND [campaign_typecode].[EntityName] = 'campaign'
               AND [campaign_typecode].[OptionSetName] = 'typecode'
        LEFT OUTER JOIN [<MySynapseLinkDB>].[dbo].[StatusMetadata] AS [campaign_status]
            ON [base].[statuscode] = [campaign_Status].[status]
               AND [campaign_status].[LocalizedLabelLanguageCode] = 1033
               AND [campaign_status].[EntityName] = 'campaign'
    WHERE
        [base].[statecode] = 0;

Görünümde yalnızca dört sütun bulunduğuna ve her birinin kolay ada sahip olduğuna dikkat edin. Bu durumda etkin kampanyalar olmak üzere yalnızca gerekli satırları döndürmeye yönelik bir WHERE yan tümcesi de vardır. Ayrıca görünüm, seçenek etiketlerini alan OptionsetMetadata ve StatusMetadata tablolarına katılmış olan kampanya tablosunu sorgular.

İpucu

Meta verileri alma hakkında daha fazla bilgi için bkz . Dataverse için Azure Synapse Link'ten doğrudan seçim etiketlerine erişme.

Uygun tabloları sorgulama

Dataverse için Azure Synapse Link, verilerin veri gölündeki verilerle sürekli eşitlenmesini sağlar. Yüksek kullanımlı etkinlik için eşzamanlı yazma ve okuma işlemleri sorguların başarısız olmasına neden olan kilitler oluşturabilir. Verileri alırken güvenilirlik sağlamak için tablo verilerinin iki sürümü Azure Synapse'te eşitlenir.

  • Neredeyse gerçek zamanlı veriler: Azure Synapse Link aracılığıyla Dataverse'den eşitlenen verilerin bir kopyasını, ilk ayıklanmasından veya son eşitlenmesinden bu yana hangi verilerin değiştiğini algılayarak verimli bir şekilde sağlar.
  • Anlık görüntü verileri: Düzenli aralıklarla güncelleştirilen neredeyse gerçek zamanlı verilerin salt okunur bir kopyasını sağlar (bu örnekte saatte bir). Anlık görüntü veri tablosu adlarının sonuna _partitioned eklenmiştir.

Yüksek hacimli okuma ve yazma işlemlerinin aynı anda yürütüleceğini düşünüyorsanız, sorgu hatalarını önlemek için anlık görüntü tablolarından veri alın.

Daha fazla bilgi için bkz. Gerçek zamanlıya yakın verilere ve salt okunur anlık görüntü verilerine erişme.

Synapse Analytics'e Bağlan

Azure Synapse sunucusuz SQL havuzunu sorgulamak için çalışma alanı SQL uç noktası gerekir. Sunucusuz SQL havuzu özelliklerini açarak Synapse Studio'dan uç noktayı alabilirsiniz.

Power BI Desktop'ta Azure Synapse Analytics SQL bağlayıcısını kullanarak Azure Synapse'e bağlanabilirsiniz. Sunucu istendiğinde çalışma alanı SQL uç noktasını girin.

Sunucu değerini ayarlamak için kullanılan SQL Server Veritabanı penceresini gösteren ekran görüntüsü.

DirectQuery ile ilgili dikkat edilmesi gerekenler

DirectQuery depolama modunu kullanmanın gereksinimlerinizi çözebileceği birçok kullanım örneği vardır. Ancak DirectQuery kullanmak Power BI rapor performansını olumsuz etkileyebilir. Dataverse ile DirectQuery bağlantısı kullanan bir rapor, içeri aktarma modeli kullanan bir rapor kadar hızlı olmaz. Genellikle mümkün olduğunda verileri Power BI'a aktarmanız gerekir.

DirectQuery ile çalışırken bu bölümdeki konuları göz önünde bulundurmanızı öneririz.

DirectQuery depolama moduyla çalışma zamanını belirleme hakkında daha fazla bilgi için bkz . Power BI model çerçevesi seçme.

Çift depolama modu boyut tablolarını kullanma

İkili depolama modu tablosu hem içeri aktarma hem de DirectQuery depolama modlarını kullanacak şekilde ayarlanır. Sorgu zamanında Power BI, kullanılacak en verimli modu belirler. Mümkün olduğunda Power BI, içeri aktarılan verileri kullanarak sorguları karşılamaya çalışır çünkü daha hızlıdır.

Uygun olduğunda boyut tablolarını çift depolama moduna ayarlamayı düşünmelisiniz. Bu şekilde, genellikle boyut tablosu sütunlarını temel alan dilimleyici görselleri ve filtre kartı listeleri, içeri aktarılan verilerden sorgulanacakları için daha hızlı işlenir.

Önemli

Bir boyut tablosunun Dataverse güvenlik modelini devralması gerektiğinde, çift depolama modunu kullanmak uygun değildir.

Genellikle büyük hacimli verileri depolayan olgu tabloları DirectQuery depolama modu tabloları olarak kalmalıdır. Bunlar, verimli filtreleme ve gruplandırma elde etmek için olgu tablosuna katılabilen ilgili çift depolama modu boyut tablolarına göre filtrelenecektir.

Aşağıdaki veri modeli tasarımını göz önünde bulundurun. Sahip, Hesap ve Kampanya olmak üzere üç boyut tablosunun şeritli üst kenarlı olması, çift depolama moduna ayarlandığı anlamına gelir.

Ekran görüntüsü, önceki paragrafta açıklandığı gibi üç çift depolama modu tablosu içeren bir model diyagramını gösterir.

İkili depolama dahil olmak üzere tablo depolama modları hakkında daha fazla bilgi için bkz . Power BI Desktop'ta depolama modunu yönetme.

Çoklu oturum açmayı etkinleştirme

Power BI hizmeti bir DirectQuery modeli yayımladığınızda, rapor kullanıcılarınız için Microsoft Entra Id (eski adı Azure Active Directory) OAuth2'yi kullanarak çoklu oturum açmayı (SSO) etkinleştirmek için anlam modeli ayarlarını kullanabilirsiniz. Dataverse sorgularının rapor kullanıcısının güvenlik bağlamında yürütülmesi gerektiğinde bu seçeneği etkinleştirmeniz gerekir.

SSO seçeneği etkinleştirildiğinde Power BI, sorgularda rapor kullanıcısının kimliği doğrulanmış Microsoft Entra kimlik bilgilerini Dataverse'e gönderir. Bu seçenek Power BI'ın veri kaynağında ayarlanan güvenlik ayarlarına göre davranmasını sağlar.

Ekran görüntüsü, SSO seçeneğinin etkin olduğu anlam modeli kimlik bilgileri penceresini gösterir.

Daha fazla bilgi için bkz . DirectQuery kaynakları için çoklu oturum açma (SSO).

Power Query'de "My" filtrelerini çoğaltma

Microsoft Dynamics 365 Customer Engagement (CE) ve Dataverse üzerinde oluşturulan model temelli Power Apps kullanırken, yalnızca Sahip gibi bir kullanıcı adı alanının geçerli kullanıcıya eşit olduğu kayıtları gösteren görünümler oluşturabilirsiniz. Örneğin, "Açık fırsatlarım", "Etkin servis taleplerim" ve diğerleri adlı görünümler oluşturabilirsiniz.

Dynamics 365 Etkin Hesaplarım görünümünün Sahip'in geçerli kullanıcıya eşit olduğu bir filtreyi nasıl içerdiğine ilişkin bir örnek düşünün.

Etkin Hesaplarım görünümü için ayarlanan filtreleri gösteren ekran görüntüsü. Filtre koşulu sahip, geçerli kullanıcıya eşittir.

Belirteci ekleyen yerel bir sorgu kullanarak bu sonucu Power Query'de CURRENT_USER yeniden oluşturabilirsiniz.

Geçerli kullanıcının hesaplarını döndüren yerel sorguyu gösteren aşağıdaki örneği göz önünde bulundurun. yan tümcesinde WHERE ownerid sütununun belirteç tarafından filtrelendiğine CURRENT_USER dikkat edin.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com", [CreateNavigationProperties=false],
    dbo_account = Value.NativeQuery(Source, "
        SELECT
            accountid, accountnumber, ownerid, address1_city, address1_stateorprovince, address1_country
        FROM account
        WHERE statecode = 0
            AND ownerid = CURRENT_USER
    ", null, [EnableFolding]=true])
in
    dbo_account

Modeli Power BI hizmeti yayımladığınızda, Power BI'ın rapor kullanıcısının kimliği doğrulanmış Microsoft Entra kimlik bilgilerini Dataverse'e göndermesi için çoklu oturum açmayı (SSO) etkinleştirmeniz gerekir.

Tamamlayıcı içeri aktarma modelleri oluşturma

Performansın yavaş olacağını bilerek Dataverse izinlerini zorlayan bir DirectQuery modeli oluşturabilirsiniz. Daha sonra bu modeli RLS izinlerini zorunlu kabilecek belirli konuları veya hedef kitleleri hedefleyen içeri aktarma modelleriyle tamamlayabilirsiniz.

Örneğin, içeri aktarma modeli tüm Dataverse verilerine erişim sağlayabilir ancak herhangi bir izni zorunlu kılmaz. Bu model, tüm Dataverse verilerine zaten erişimi olan yöneticiler için uygun olacaktır.

Başka bir örnek olarak, Dataverse satış bölgesine göre rol tabanlı izinleri zorunlu kıldığında, RLS kullanarak bir içeri aktarma modeli oluşturabilir ve bu izinleri çoğaltabilirsiniz. Alternatif olarak, her satış bölgesi için bir model oluşturabilirsiniz. Daha sonra bu modellere (anlamsal modeller) her bölgenin satış temsilcilerine okuma izni vekleyebilirsiniz. Bu bölgesel modellerin oluşturulmasını kolaylaştırmak için parametreleri ve rapor şablonlarını kullanabilirsiniz. Daha fazla bilgi için bkz . Power BI Desktop'ta rapor şablonları oluşturma ve kullanma.

Bu makaleyle ilgili daha fazla bilgi için aşağıdaki kaynaklara göz atın.