Forum Discussion
New data set created for each uploaded report
We've created a couple of SSAS Tabular models, which are exposed to Power BI through the Enterprise Data Gateway. A large number of reports are build in Power BI Desktop with live connection to a Tabular model.
Now, when uploading a report file, Power BI correctly picks up the datasource from the gateway; but a new data set is created for each report. So when I upload e.g. 25 reports, I end up with 25 data sets all pointing to the same Tabular model, causing a lot of clutter in the workspace.
The preferred behaviour is that one data set/connection to a Tabular model is created, and each report uses that data set instead of creating a new one.
Is this something that can be configured, or is this a bug? Or simply a missing feature?
11 Replies
- AnonymousNot applicable
Hi Michiel,
What you describe is an expected behavior. As you use Live connection option to connect to SSAS database in Power BI Desktop, in this mode, all data come from a same database, and you are not allowed to add other SSAS databases in a single Power BI Desktop file. In other words, you create 25 reports in 25 Power BI Desktop file in your scenario, and you should get 25 datasets after uploading these Power BI Desktop files in this case.
If you want to have only one dataset, you can use import option to connect to SSAS database in Power BI Desktop, in this mode, you can import data from different SSAS databases, and create all the reports in a single Power BI Desktop file. This way, when you publish the Power BI Desktop file to Power BI Service, you will get a single dataset for all reports.
Thanks,
Lydia Zhang- Michiel
Resolver III
Hi Lydia,
this is not what I meant. I'm aware that with Live connection, a report can use only one SSAS model. The point is that when I create more reports on the same model (so multiple .pbix files, all referring to the same SSAS model), I end up with multiple datasets in Power BI which are all the same: they all connect to the same SSAS model.
I don't get why this would be expected behavior - Power BI will derive the right data source in the data gateway from the information in the report file, so it shouldn't be too hard to determine that there's already a dataset pointing to the same data source. There's no way a user would need to have 25 datasets that are all the same basically.
Michiel
- AnonymousNot applicable
Hi Michiel,
You create multiple PBIX files, right? If so, after you publish these PBIX file to Power BI Service, each dataset will be related to a PBIX file currently.
If you want to contain all reports in a single dataset, you would need to create all the reports in a single Power BI Desktop file.
Thanks,
Lydia Zhang
- AnonymousNot applicable
Michiel Long standing "missing feature" - the hope was that the new download to PBIX feature in the Service would allow us to have a single dataset that supports many reports like you describe, plus have a "backup" of the reports we build just in case something were to happen in the Service, or we needed to move them to other workspaces.
Currently, there is no way around this.
Side Note: The new layout of the Power BI Service helps manage this a bit better. If you aren't familiar, give it a test run by enabling the preview feature in the Service. How to enable
- AnonymousNot applicable
Has anybody identified a workaround for this?
I agree with the Michiel; it is crazy that each Power BI (PBIX file), all of which are pointing to the same Tabular model, resulting in one connection per PBIX, with the further potential confusion of these connections named the same as the PBIX report, implying to our users that each connection is somehow different to the others.
**edit** I forgot to also mention the other, even more fundimental issue with the approach the Service currently seems to take re one dataset per report, that being enabling Q&A. As part of the enabling of Q&A for reports, you have to also enable the dataset; so instead of indicating you want your one, single tabular model to be available to Q&A once, you have to indicate it for each dataset connection to each report (it is not clear to me if you indicate one, but not the others, what the implications are).
This is such a basic expectation; Reporting Services has worked on this basis (one connection file, multiple reports) for years.
Sometimes you are left feeling that the left hand of MS does not speak to the right hand! :manfrustrated:
Is there anywhere I can "vote" for this functionality to be included in future updates? :smileyhappy:
- AnonymousNot applicable
AnonymousMichiel As of April there is a solution for this. After you deploy your initial report to the Service, you can then create your next report from that deployed dataset. Essentially, the Desktop connects to the Live Connection (model) and you can deploy more reports to the Service utilizing the same dataset. Accomplishing the "single datasource for many reports" process. I didn't think this worked for live connections initially, but I just tested it and it works as expected. Details here
- AnonymousNot applicable
Thanks for the response Anonymous, however, unfortunately (unless I am missing something), I have tried (and failed) to apply the methodology you refer to.
When I select the "power BI Service" option I am presented with an error:
The error log file text below:
Feedback Type:
Frown (Error)Timestamp:
2017-11-28T10:54:10.7315169ZLocal Time:
2017-11-28T10:54:10.7315169+00:00Session ID:
74f827ea-6c4e-4399-9011-983ba2e7497cRelease:
November 2017Product Version:
2.52.4921.581 (PBIDesktop) (x64)Error Message:
Sequence contains more than one matching elementStack Trace:
System.InvalidOperationException: Sequence contains more than one matching element
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
at Microsoft.PowerBI.Client.Windows.Navigator.PowerBIServiceNavigator.TreeNodes.PowerBIServiceRootNode.GetSubTreeInternal()
at Microsoft.PowerBI.Client.Windows.Navigator.LiveConnectTreeNode.<>c__DisplayClassa.<GetSubTree>b__8(Object waitState)
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)Invocation Stack Trace:
at Microsoft.Mashup.Host.Document.ExceptionExtensions.GetCurrentInvocationStackTrace()
at Microsoft.Mashup.Client.ClientShared.FeedbackErrorInfo..ctor(String message, Exception exception)
at Microsoft.PowerBI.Client.Windows.Telemetry.PowerBIUserFeedbackServices.ReportException(IWin32Window activeWindow, WindowsHost windowsHost, FeedbackPackageInfo feedbackPackageInfo, Exception e)
at Microsoft.Mashup.Client.ClientShared.UnexpectedExceptionHandler.<>c__DisplayClass1.<HandleException>b__0()
at Microsoft.Mashup.Host.Document.SynchronizationContextExtensions.<>c__DisplayClass3.<SendAndMarshalExceptions>b__0(Object null)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
at Microsoft.Mashup.Client.ClientShared.WindowManager.ShowDialog[T](T form, IWin32Window owner)
at Microsoft.PowerBI.Client.Windows.PowerBIServiceNavigator.PowerBIServiceNavigatorFloatingDialog.Show(WindowsHost windowsHost, IAuthenticationManager authenticationManager, ICloudConfigurationManager cloudManager, IPowerBIServiceClient powerbiServiceClient, IPowerBITelemetryService telemetryService, IWindowService shellService, ConnectionProperties existingConnectionProperties)
at Microsoft.PowerBI.Client.Windows.PowerBIDataImporter.AddPowerBIServiceSource(ConnectionProperties existingConnectionProperties)
at Microsoft.PowerBI.Client.Windows.PowerBIDataImporter.TryAddSource(String sourceID, Query& newQuery)
at Microsoft.Mashup.Client.ClientShared.EditorDialogBase.Connect(String sourceId, Nullable`1 targetQueryGroupId, String[] additionalDefaultOptionalModules)
at Microsoft.PowerBI.Client.Windows.MainWindow.<.ctor>b__0(String s, Nullable`1 g)
at Microsoft.Mashup.Host.Document.DataSourceTemplateProvider.Connect(String formulaId, Nullable`1 targetQueryGroupId)
at Microsoft.Mashup.Client.ClientShared.Ux.FloatingDialog.SimpleDialog.DataSourceGalleryDialog.<>c__DisplayClass2.<ConnectToDataSource>b__0()
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
at Microsoft.Mashup.Client.ClientShared.WindowManager.ShowDialog[T](T form, IWin32Window owner)
at Microsoft.PowerBI.Client.Program.<>c__DisplayClassb.<Main>b__0()
at Microsoft.PowerBI.Client.Windows.IExceptionHandlerExtensions.<>c__DisplayClass7.<HandleExceptionsWithNestedTasks>b__6()
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)
at Microsoft.PowerBI.Client.Program.Main(String[] args)
OS Version:
Microsoft Windows NT 10.0.15063.0 (x64 en-US)CLR Version:
4.7 or later [Release Number = 460798]Peak Virtual Memory:
33.9 GBPrivate Memory:
279 MBPeak Working Set:
378 MBIE Version:
11.726.15063.0User ID:
7cdcf018-4a42-4639-9179-eb99e318047aWorkbook Package Info:
1* - en-GB, Query Groups: 0, fastCombine: Disabled, runBackgroundAnalysis: True.Telemetry Enabled:
TrueModel Default Mode:
ImportSnapshot Trace Logs:
C:\Users\jocallaghan\Microsoft\Power BI Desktop Store App\FrownSnapShot1087976931.zipPerformance Trace Logs:
C:\Users\jocallaghan\Microsoft\Power BI Desktop Store App\PerformanceTraces.zipDisabled Preview Features:
PBI_shapeMapVisualEnabled
PBI_EnableReportTheme
PBI_numericSlicerEnabled
PBI_SpanishLinguisticsEnabled
PBI_daxTemplatesEnabled
CustomConnectors
PBI_reportBookmarksDisabled DirectQuery Options:
PBI_DirectQuery_UnrestrictedCloud:
GlobalCloudWER Parameters:
{"AppName":"PBIDesktop","AppVersion":"2.52.4921.581","ModuleName":"System.Core.dll","Component":"System.Linq.Enumerable","Error":"System.InvalidOperationException","MethodDef":"Single","ErrorOffset":"3"}WER Reported:
TrueDPI Scale:
100%Supported Services:
Power BIFormulas:
section Section1;