XMLA uç nokta bağlantı sorunlarını giderme
Power BI içindeki xmla uç noktaları Power BI veri kümelerine erişim için yerel Analysis Services iletişim protokolünü kullanır. Bu nedenle, XMLA uç noktasında sorun giderme işlemi, tipik bir Analysis Services bağlantısında sorun giderme işlemiyle neredeyse aynıdır. Ancak, Power BI’a özgü bağımlılıklarla ilgili bazı farklar vardır.
Başlamadan önce
XMLA uç nokta senaryosunda sorun gidermeden önce, XMLA uç noktasıyla veri kümesi bağlantısı makalesinde ele alınan temel bilgileri gözden geçirdiğinizden emin olun. En yaygın XMLA uç noktası kullanım örneklerine bu makalede değinilmektedir. Ağ geçidiyle ilgili sorunları giderme - Power BI ve Excel’de Analiz ile ilgili sorun giderme gibi diğer Power BI sorun giderme kılavuzları da yardımcı olabilir.
XMLA uç noktasını etkinleştirme
xmla uç noktası hem Power BI Premium, kullanıcı başına Premium ve Power BI Embedded kapasiteleri üzerinde etkinleştirilebilir. Yalnızca 2,5 GB belleğe sahip A1 kapasitesi gibi daha küçük kapasitelerde, XMLA Uç Noktasını Okuma/Yazma’ya ayarlayıp Uygula’yı seçerken Kapasite ayarlarında hatayla karşılaşabilirsiniz. “İş yükü ayarlarınızla ilgili bir sorun oluştu. Kısa bir süre sonra tekrar deneyin.” hatası gösterilir.
Deneyebileceğiniz birkaç şey aşağıda verilmiştir:
- Veri Akışları gibi, kapasitedeki diğer hizmetlerin bellek tüketimini en fazla %40 olacak şekilde sınırlayın veya gereksiz hizmetleri tamamen devre dışı bırakın.
- Kapasiteyi daha büyük bir SKU’ya yükseltin. Örneğin, kapasiteyi A1’den A3’e yükseltmek, Veri Akışları’nı devre dışı bırakmak zorunda kalmadan bu yapılandırma sorununu çözebilir.
Power BI Yönetim Portalı’nda kiracı düzeyinde Dışarı aktarma ayarlarını etkinleştirmeniz gerektiğini de unutmayın. Bu ayar, Excel’de Analiz özelliği için de gereklidir.
İstemci bağlantısı oluşturma
XMLA uç noktasını etkinleştirdikten sonra, kapasitedeki bir çalışma alanına yönelik bağlantıyı test etmeniz faydalı olabilir. Daha fazla bilgi için bkz. Premium çalışma alanına bağlanma. Ayrıca, geçerli XMLA bağlantı sınırlamaları hakkında yardımcı olacak ipuçları ve bilgiler için Bağlantı gereksinimleri bölümünü okuduğunuzdan emin olun.
Hizmet sorumlusu ile bağlanma
Hizmet sorumlularının Power BI API’lerini kullanmasına izin veren kiracı ayarlarını etkinleştirdiyseniz Hizmet sorumlularını etkinleştirme makalesinde açıklandığı gibi, hizmet sorumlusu kullanarak bir XMLA uç noktasına bağlanabilirsiniz. Hizmet sorumlusunun çalışma alanında veya veri kümesi düzeyinde normal kullanıcılarla aynı erişim izni düzeyine sahip olması gerektiğini unutmayın.
Hizmet sorumlusu kullanmak için, bağlantı dizesinde uygulama kimlik bilgilerini aşağıdaki gibi belirttiğinizden emin olun:
User ID=<app:appid@tenantid>Password=<application secret>
Örnek:
Data Source=powerbi://api.powerbi.com/v1.0/myorg/Contoso;Initial Catalog=PowerBI_Dataset;User ID=app:91ab91bb-6b32-4f6d-8bbc-97a0f9f8906b@19373176-316e-4dc7-834c-328902628ad4;Password=6drX...;
Aşağıdaki hata iletisini alırsanız:
“Eksik hesap bilgilerinden dolayı veri kümesine bağlanılamıyor. Hizmet sorumluları için, lütfen kiracı kimliğini uygulama kimliğiyle birlikte app:<appId>@<tenantId> biçimini kullanarak belirttiğinizden emin olup tekrar deneyin.”
Kiracı kimliğini ile uygulama kimliğini doğru biçimi kullanarak belirttiğinizden emin olun.
Ayrıca, kiracı kimliği olmadan uygulama kimliğini belirtmeniz de geçerli olacaktır. Ancak bu durumda, veri kaynağı URL’sindeki myorg diğer adını gerçek kiracı kimliğiyle değiştirmeniz gerekir. Daha sonra Power BI, hizmet sorumlusunu doğru kiracıda bulabilir. Ancak en iyi uygulama olarak, myorg diğer adını kullanın ve kiracı kimliğini Kullanıcı Kimliği parametresindeki uygulama kimliğiyle birlikte belirtin.
Azure Active Directory B2B ile bağlanma
Power BI’daki Azure Active Directory (Azure AD) işletmeden işletmeye (B2B) desteği sayesinde, dış kullanıcılara XMLA uç noktası üzerinden veri kümelerine erişim verebilirsiniz. Power BI Yönetim portalında Dış kullanıcılarla içerik paylaşma ayarının etkinleştirildiğinden emin olun. Daha fazla bilgi için bkz. Azure AD B2B ile Power BI içeriklerini dış konuk kullanıcılara dağıtma.
Veri kümesi dağıtma
Visual Studio (ssdt) içindeki tablo modeli projesini, Azure Analysis Services bir sunucu kaynağıyla aynı ölçüde Premium kapasiteye atanan bir çalışma alanına dağıtabilirsiniz. Ancak, dağıtım sırasında bazı ek hususlar vardır. XMLA uç noktasıyla veri kümesi bağlantısı makalesindeki Visual Studio’dan model projelerini dağıtma (SSDT) bölümünü gözden geçirdiğinizden emin olun.
Yeni model dağıtma
Varsayılan yapılandırmada Visual Studio, veri kaynaklarındaki verileri veri kümesine yüklemek için modeli dağıtım işleminin bir parçası olarak işlemeyi dener. Visual Studio’dan model projelerini dağıtma (SSDT) bölümünde bahsedildiği gibi, veri kaynağı kimlik bilgileri dağıtım işleminin bir parçası olarak belirtilemediğinden bu işlem başarısız olabilir. Bunun yerine, veri kaynağınıza ait kimlik bilgileri mevcut veri kümelerinizden biri için zaten tanımlanmadıysa Power BI kullanıcı arabirimini kullanarak (Veri kümeleri > Ayarlar > Veri kaynağı kimlik bilgileri > Kimlik bilgilerini düzenle) veri kümesi ayarlarında veri kaynağı kimlik bilgilerini belirtmeniz gerekir. Veri kaynağı kimlik bilgileri tanımlandığında, meta veri dağıtımı başarılı olduktan ve veri kümesi oluşturulduktan sonra Power BI, kimlik bilgilerini herhangi bir yeni veri kümesi için bu veri kaynağına otomatik olarak uygulayabilir.
Power BI yeni veri kümenizi veri kaynağı kimlik bilgilerine bağlayamazsa “Veri tabanı işlenemiyor. Neden: Değişiklikler sunucuya kaydedilemedi.” hatasını “DMTS_DatasourceHasNoCredentialError” hata kodu ile birlikte alırsınız (aşağıda gösterilmiştir):
İşleme hatasından kaçınmak için Dağıtım seçenekleri > İşleme Seçenekleri ayarını aşağıda gösterildiği gibi İşleme olarak ayarlayın. Daha sonra Visual Studio yalnızca meta verileri dağıtır. Daha sonra veri kaynağı kimlik bilgilerini yapılandırabilir ve Power BI kullanıcı arabirimindeki veri kümesi için Şimdi yenile seçeneğine tıklayabilirsiniz.
Mevcut bir veri kümesinden yeni proje
mevcut bir veri kümesinden meta verileri içe aktararak Visual Studio yeni tablosal proje oluşturma desteklenmez. Ancak, SQL Server Management Studio kullanarak veri kümesine bağlanabilir, meta verileri betikleştirebilir ve sonra diğer tablosal projelerde yeniden kullanabilirsiniz.
Power BI’a veri kümesi geçirme
Tablosal modeller için 1500 (veya üzeri) uyumluluk düzeyi belirtmeniz önerilir. Bu uyumluluk düzeyi, çoğu özelliği ve veri kaynağı türünü destekler. Daha sonraki uyumluluk düzeyleri, daha önceki düzeylerle geriye dönük olacak şekilde uyumludur.
Desteklenen veri kaynakları
1500 uyumluluk düzeyinde Power BI aşağıdaki veri kaynağı türlerini destekler:
- Sağlayıcı veri kaynakları (model meta verilerindeki bağlantı dizesiyle eski).
- Yapılandırılmış veri kaynakları (1400 uyumluluk düzeyiyle tanıtılan).
- Veri kaynaklarının satır içi M bildirimleri (Power BI Desktop bildirir).
Visual Studio’nun İçeri aktarma veri akışı sırasında varsayılan olarak oluşturduğu yapılandırılmamış veri kaynaklarını kullanmanız önerilir. Ancak, sağlayıcı veri kaynağı kullanan mevcut bir modeli Power BI’a geçirmeyi planlıyorsanız bu kaynağın desteklenen bir veri sağlayıcısını kullandığından emin olun. Özellikle, SQL Server ve diğer üçüncü taraf ODBC sürücüleri için Microsoft OLE DB Sürücüsü. SQL Server için OLE DB Sürücüsü’nde veri kaynağı tanımını SQL Server için .NET Framework Veri Sağlayıcısı’yla değiştirmeniz gerekir. Power BI hizmetinde kullanılamayan üçüncü taraf ODBC sürücüleri için bunun yerine yapılandırılmış veri kaynağı tanımıyla değiştirmeniz gerekir.
SQL Server için .NET Framework Veri Sağlayıcısı’na sahip SQL Server veri kaynağı tanımlarınızdaki güncel olmayan SQL Server için Microsoft OLE DB Sürücüsü’nü de (SQLNCLI11) değiştirmeniz önerilir.
Aşağıdaki tabloda, SQL Server için OLE DB Sürücüsü’nde karşılık gelen bağlantı dizesiyle değiştirilen bir SQL Server için .NET Framework Veri Sağlayıcısı bağlantı dizesi örneği gösterilmektedir.
| SQL Server için OLE DB Sürücüsü | SQL Server için .NET Framework Veri Sağlayıcısı |
|---|---|
Provider=SQLNCLI11;Data Source=sqldb.database.windows.net;Initial Catalog=AdventureWorksDW;Trusted_Connection=yes; |
Data Source=sqldb.database.windows.net;Initial Catalog=AdventureWorksDW2016;Integrated Security=SSPI;Encrypt=true;TrustServerCertificate=false |
Çapraz başvuru bölüm kaynakları
Birden çok veri kaynağı türü olduğu gibi, bir tablosal modelin verileri tabloda içeri aktarmak amacıyla içerebileceği birden çok bölüm kaynağı türü vardır. Özellikle bir bölüm, bir sorgu bölümü kaynağını veya M bölüm kaynağını kullanabilir. Bu bölüm kaynak türleri sırasıyla sağlayıcı veri kaynaklarına veya yapılandırılmış veri kaynaklarına başvurabilir. Azure Analysis Services’daki tablosal modeller bu çeşitli veri kaynağı ve bölüm türlerine çapraz olarak başvurmayı desteklerken Power BI, daha katı bir ilişki uygular. Sorgu bölümü kaynaklarının sağlayıcı veri kaynaklarına, M bölüm kaynaklarının ise yapılandırılmış veri kaynaklarına başvurması gerekir. Diğer birleşimler Power BI’da desteklenmez. Çapraz başvuru yapan bir veri kümesini geçirmek istiyorsanız desteklenen yapılandırmalar aşağıdaki tabloda açıklanmaktadır:
| Veri kaynağı | Bölüm kaynağı | Yorumlar | XMLA uç noktasıyla desteklenir |
|---|---|---|---|
| Sağlayıcı veri kaynağı | Sorgu bölümü kaynağı | AS altyapısı, veri kaynağına erişmek için kartuş tabanlı bağlantı yığınını kullanır. | Evet |
| Sağlayıcı veri kaynağı | M bölüm kaynağı | AS altyapısı, sağlayıcı veri kaynağını genel yapılandırılmış veri kaynağına çevirir ve sonra verileri içeri aktarmak için Karma altyapısını kullanır. | Hayır |
| Yapılandırılmış veri kaynağı | Sorgu bölümü kaynağı | AS altyapısı, bölüm kaynağındaki yerel sorguyu bir M ifadesine sarmalar ve sonra verileri içeri aktarmak için Karma altyapısını kullanır. | Hayır |
| Yapılandırılmış veri kaynağı | M bölüm kaynağı | AS altyapısı, Karma altyapısını verileri içeri aktarmak için kullanır. | Evet |
Veri kaynakları ve kimliğe bürünme
Sağlayıcı veri kaynakları için tanımlayabileceğiniz kimliğe bürünme ayarları Power BI için uygun değildir. Power BI, veri kaynağı kimlik bilgilerini yönetmek için veri kümesi ayarlarına bağlı farklı bir mekanizma kullanır. Bu nedenle, bir Sağlayıcı Veri Kaynağı oluşturuyorsanız Hizmet Hesabı seçtiğinizden emin olun.
Ayrıntılı işleme
Power BI’da zamanlanmış veya isteğe bağlı bir yenileme işlemini tetiklerken Power BI genellikle veri kümesinin tamamını yeniler. Çoğu durumda, yenilemeleri daha seçici bir şekilde gerçekleştirmek daha verimlidir. Ayrıntılı işleme görevlerini aşağıda gösterildiği şekilde SQL Server Management Studio’da (SSMS) veya üçüncü taraf araçlarını ya da betiklerini kullanarak gerçekleştirebilirsiniz.
TMSL Yenileme komutunda geçersiz kılmalar
Yenileme komutundaki (TMSL) geçersiz kılmalar kullanıcıların yenileme işlemi için sorgu tanımının veya veri kaynağı tanımının farklı bölümlerini seçmesine olanak tanır.
SSMS’deki hatalar - Premium 2. Nesil
Sorgu yürütme
Premium 2. Nesil veya Embedded 2. Nesil kapasitesinde bir çalışma SQL Server Management Studio aşağıdaki hatayı görüntüleniyor olabilir:
Executing the query ...
Error -1052311437: We had to move the session with ID '<Session ID>' to another Power BI Premium node. Moving the session temporarily interrupted this trace - tracing will resume automatically as soon as the session has been fully moved to the new node.
Bu, istemci kitaplıkları otomatik olarak yeniden bağlanacaklarından SSMS 18.8 ve üzerinde yoksayılabilir bilgi iletisidir. SSMS v18.7.1 veya daha düşük bir sürümüyle yüklenmiş istemci kitaplıkları, oturum izlemeyi desteklemez. En son SSMS'yi indirin.
Yenileme işlemleri
Bir Premium 2. Nesil veya Embedded 2. Nesil kapasitesinde bir veri kümesinde uzun süre çalışan (>1 dk) yenileme işlemi gerçekleştirmek için SSMS v18.7.1 veya daha yenisi kullanılırken, yenileme işlemi başarılı olsa bile SSMS aşağıdaki gibi bir hata görüntüsüne sahip olabilir:
Executing the query ...
Error -1052311437:
The remote server returned an error: (400) Bad Request.
Technical Details:
RootActivityId: 3716c0f7-3d01-4595-8061-e6b2bd9f3428
Date (UTC): 11/13/2020 7:57:16 PM
Run complete
Bunun nedeni, yenileme isteğinin durumunun hatalı bir şekilde izlendiği istemci kitaplıklarındaki bilinen bir sorundan kaynaklanır. Bunun için SSMS 18.8 ve üzeri kullanılmalıdır. En son SSMS'yi indirin.
Bağlan SSMS'de Sunucuya Bağlantı Hatası
SQL Server Management Studio (SSMS) ile Power BI çalışma alanına bağlanırken aşağıdaki hata görüntülenebilir:
TITLE: Connect to Server
------------------------------
Cannot connect to powerbi://api.powerbi.com/v1.0/[tenant name]/[workspace name].
------------------------------
ADDITIONAL INFORMATION:
The remote server returned an error: (400) Bad Request.
Technical Details:
RootActivityId:
Date (UTC): 10/6/2021 1:03:25 AM (Microsoft.AnalysisServices.AdomdClient)
------------------------------
The remote server returned an error: (400) Bad Request. (System)
SSMS ile Power BI çalışma alanına bağlanırken aşağıdakilerin doğru olduğundan emin olur:
- XMLA uç noktası ayarı kiracının kapasitesi için etkinleştirilir. Daha fazla bilgi edinmek için bkz. XMLA okuma-yazmayı etkinleştirme.
- Şirket içi veri kümeleriyle XMLA uç noktalarına izin ver Excel Çözümle ayarı Kiracı ayarlarında etkinleştirilir.
- SSMS'nin en son sürümünü kullanıyorsanız. En son sürümünü indirin.
SSMS'de rol üyeliklerini düzenleme
Veri kümesinde rol üyeliğini düzenlemek için SQL Server Management Studio (SSMS) v18.8 kullanılırken, SSMS aşağıdaki hatayı gösterebilir:
Failed to save modifications to the server.
Error returned: ‘Metadata change of current operation cannot be resolved, please check the command or try again later.’
Bunun nedeni, uygulama hizmetleri REST API'deki bilinen bir sorundur. Bu sorun yakında çıkacak bir sürümde çözülecektir. Bu sırada, bu hata için geçici bir çözüm olarak Rol Özellikleri'nde Betik'e tıklayın ve ardından aşağıdaki TMSL komutunu girip yürütün:
{
"createOrReplace": {
"object": {
"database": "AdventureWorks",
"role": "Role"
},
"role": {
"name": "Role",
"modelPermission": "read",
"members": [
{
"memberName": "xxxx",
"identityProvider": "AzureAD"
},
{
"memberName": “xxxx”
"identityProvider": "AzureAD"
}
]
}
}
}
Yayımlama Hatası - Canlı bağlantılı veri kümesi
Analysis Services bağlayıcısından yararlanan canlı bağlantılı bir veri kümesini yeniden yayımlarken aşağıdaki hata gösterilebilir:
Hata iletisinde belirtildiği gibi, bu sorunu çözmek için mevcut veri kümesini silin ya da yeniden adlandırın. Ayrıca, rapora bağımlı olan uygulamaları yeniden yayımlamayı da unutmayın. Gerekirse sonraki kullanıcıların da en son rapora eriştiklerinden emin olmak için yer işaretlerini yeni rapor adresiyle güncelleştirmeleri yönünde bilgilendirilmeleri gerekir.
Çalışma alanı/sunucu diğer adı
Diğer Azure Analysis Services, sunucu adı diğer adları çalışma alanlarında Premium desteklanmaz.
DISCOVER_M_EXPRESSIONS
DMV DISCOVER_M_EXPRESSIONS veri yönetimi görünümü (DMV), XMLA Uç Noktası Power BI için şu anda desteklenmiyor. Uygulamalar, veri modeli tarafından kullanılan M ifadelerini almak için Tablosal nesne modelini (TOM) kullanabilir.
2. Nesil'de kaynak Premium bellek sınırı
Premium 2. Nesil kapasiteler, SKU tarafından belirlenen kapasite için kullanılabilir bellek kaynaklarının miktarını aşacak tek bir veri kümesi işlemi olmadığını sağlamak için kaynak idaresi kullanır. Örneğin, bir P1 aboneliğinin yapıt başına etkin bellek sınırı 25 GB, P2 aboneliği için sınır 50 GB ve P3 aboneliği için sınır 100 GB'tır. Veri kümesi (veritabanı) boyutuna ek olarak, geçerli bellek sınırı Oluştur, Değiştir ve Yenile gibi temel alınan veri kümesi komutişlemleri için de geçerlidir.
Bir komutun etkin bellek sınırı, kapasitenin bellek sınırının (SKU tarafından belirlenir) daha küçük bir değerine veya DbpropMsmdRequestMemoryLimit XMLA özelliğinin değerine göre belirlenir.
Örneğin, P1 kapasitesi için:
DbpropMsmdRequestMemoryLimit = 0 (veya belirtilmemiş), komutun etkin bellek sınırı 25 GB'tır.
DbpropMsmdRequestMemoryLimit = 5 GB, komutun geçerli bellek sınırı 5 GB'tır.
DbpropMsmdRequestMemoryLimit = 50 GB, komutun etkin bellek sınırı 25 GB'tır.
Genellikle, bir komutun etkin bellek sınırı, veri kümesi için izin verilen bellek üzerinde kapasite (25 GB, 50 GB, 100 GB) ve komut yürütülmaya başladığında veri kümesinde zaten kullanılan bellek sayısı hesaplanır. Örneğin, P1 kapasitesinde 12 GB kullanan bir veri kümesi, 13 GB'lık yeni bir komut için geçerli bir bellek sınırı sağlar. Ancak, bir uygulama tarafından isteğe bağlı olarak belirtilse de geçerli bellek sınırı DbPropMsmdRequestMemoryLimit XMLA özelliği tarafından daha da kısıtlanmış olabilir. Önceki örneği kullanarak, DbPropMsmdRequestMemoryLimit özelliğinde 10 GB belirtilirse, komutun etkin sınırı daha da 10 GB'a indirilir.
Komut işlemi sınır tarafından izin verilenden daha fazla bellek tüketmeye çalışırsa, işlem başarısız olabilir ve bir hata döndürülür. Örneğin, aşağıdaki hata, komut yürütmeyi başlatan veri kümesi zaten 12 GB (12288 MB) tüketti ve komut işlemi için 13 GB (13312 MB) etkili bir sınır uygulandığı için 25 GB (P1 kapasitesi) etkin bir bellek sınırının aşıldı olduğunu açıklar:
"Kaynak idaresi: Bu işlem, çalıştırmayı tamamlamak için yeterli bellek olmadığı için iptal edildi. Bu veri kümesinde Premium kapasitenin belleğini artırabilir veya içe aktarılan veri miktarını sınırlama gibi şeyler yaparak veri kümenizin bellek ayak izini azaltabilirsiniz. Diğer ayrıntılar: tüketilen bellek 13312 MB, bellek sınırı 13312 MB, komut yürütmeden önce veritabanı boyutu 12288 MB. Daha fazla bilgi: https://go.microsoft.com/fwlink/?linkid=2159753 ."
Bazı durumlarda, aşağıdaki hatada gösterildiği gibi "tüketilen bellek" 0'dır, ancak "komut yürütmeden önce veritabanı boyutu" için gösterilen miktar zaten geçerli bellek sınırının üzerindedir. Bu, veri kümesi tarafından zaten kullanılan bellek miktarı SKU için bellek sınırının üzerinde olduğundan işlem yürütmeye başlayılamadı anlamına gelir.
"Kaynak idaresi: Bu işlem, çalıştırmayı tamamlamak için yeterli bellek olmadığı için iptal edildi. Bu veri kümesinde Premium kapasitenin belleğini artırabilir veya içe aktarılan veri miktarını sınırlama gibi şeyler yaparak veri kümenizin bellek ayak izini azaltabilirsiniz. Diğer ayrıntılar: tüketilen bellek 0 MB, bellek sınırı 25600 MB, komut yürütmeden önce veritabanı boyutu 26000 MB. Daha fazla bilgi: https://go.microsoft.com/fwlink/?linkid=2159753 ."
Etkin bellek sınırını aşma ihtimalini azaltmak için:
- Veri kümesi için daha Premium kapasite (SKU) boyutuna yükseltin.
- Her yenileme ile yüklenen veri miktarını sınırlayan veri kümenizin bellek ayak izini azaltın.
- XMLA uç noktası üzerinden yapılan yenileme işlemleri için paralel olarak işlenen bölüm sayısını azalt. Tek bir komutla paralel olarak işlenen çok fazla bölüm, geçerli bellek sınırını aşabilirsiniz.
Ayrıca bkz.
XMLA uç noktasıyla veri kümesi bağlantısı
Hizmet sorumlularıyla Premium çalışma alanı ve veri kümesi görevlerini otomatikleştirme
Excel'de Çözümleme sorunlarını giderme
Tablolu model çözümü dağıtımı