Power BI Desktop vs Web Client - powerbi

What is the difference between the Power BI desktop client and web client. Both seem to have the same features. What can the desktop client do that the web client cannot do?

I'm not going to be exhaustive since there are a ton of features in both experiences. The Power BI Desktop is intended as a tool for Analysts to work with data. It includes data load, mashup, data modeling, and reporting capabilities. You can create models with relationships, calculated columns and DAX measures. You can create crazy transforms to manipulate the data to shape it into as good shape or merge data from multiple sources into a single data model. The web version of reports really focuses on the reporting piece. If someone else is doing all the data modeling for you, then the web reporting UI is pretty comprehensive. If you need to do the data modeling yourself, then Desktop is the way to go. Desktop does have the added benefit of a file you can save or archive. It doesn't support the direct query sources or push data sets like the web report feature. So there are at least some limitations. Which you use really depends on the types of problems you're trying to overcome.

Related

Metadata in Power BI

Years ago I used a BI product called Hyperion Interactive Reporting. It allowed me to connect to a data source and create data models from which I would create reports. So far, sounds like Power BI right?
It also had the ability to connect to a metadata repository database. This database would contain data that mapped the actual, often cryptic, table and column names in the database to human-readable, business terms. For example a column that I saw in Hyperion as "Cost Center" may have been in the database as costCenter, work_order, or PROJECT-NUMBER. (It would also allow me to define the default join paths, but let's keep this question smaller.) This provided a way to make report development easier.
In Power BI, I see that I can manually rename columns, one-at-a-time. (And each time I touch something minor like this, Power BI takes several seconds to validate the entire file.) But I also see the need for many models that use the same data sources. So I may be defining the "Cost Center" column a few hundred times (a handful of reports per data set to answer a specific type of question, a few data sets that need Cost Center because the transformations in the model will be different for each type of question, several different combinations of data sources that include Cost Center, etc.)
Is there a way to connect Power BI to a metadata repository? Is there a way in Power BI to say, "Across all of my models/datasets, if I'm using the costCenter column from the Financial database, display Cost Center to the user"?
With about 20,000 columns in my data warehouse and 20,000 reports in my current reporting system, this could become a big deal if we intend to migrate to Power BI.
TLDR; There isn't an easy way to achieve this. What you have now is probably better than you could achieve without a ton of work. If you do try it, use SSAS instead of Power BI Desktop to author models.
Does Power BI have a metadata repository? No. There are tools that can get metadata from Power BI models, but you would have to manually build the metadata repository. If you want a centrally managed environment like this, I would highly recommend using SQL Server Analysis Services (SSAS) for on premise, or even better, Azure SSAS in the cloud. (Azure SSAS will get new features sooner than SSAS installed on premise.) While Power BI Desktop is a great self-service tool, I wouldn't author in it if I needed to control or report across the environment. There just aren't easy ways to corral all of the Power BI models in a report and it's a much more manual process. SSAS will need IT Support and is a higher cost and you will hit more issues than Power BI Desktop, but you will need it if you need central control. It's possible that more management controls will be added to the PowerBI.com service over time, but as of November 2021, you can't do this easily.
So what's the difference between Power BI Desktop and SSAS? The same Power BI engine in Power BI Desktop also exists in SSAS. When you start Power BI Desktop, it's actually starting a SSAS instance behind the scenes. Using SSAS directly just makes it easier for you to connect to the database behind the scenes and see all the models in the environment from one place, while Power BI Desktop doesn't let you peak behind the scenes and it only loads a single model at a time.
How do you get the metadata? It is an easy thing to get SSAS metadata using Power Query (or any SQL tool) to pull Direct Management View (DMV) data. DMVs are management tables that hold all of the metadata of the model, and you just use SQL commands to get the data. Search on "SSAS DMV" to learn more. I have a Excel file that uses Power Query to pull all the key DMV views for all our models in our servers. It makes it easy to do the kind of analysis as in your example.
For Power BI Desktop, you can connect to the hidden SSAS instance and do the same thing, but the report has to be open to do it, and there is no easy way to refresh the data--you pretty much just repeat the process each time. You will connect via localhost:port_number, and the port number is randomly created each time you start Power BI making it impossible to refresh the data pull. There are External Tools such as DAX Studio, Power BI Helper, and dataMarc's Document Model that make that easier, but there's no easy way to automate building the metadata repository for Power BI Desktop files. I would use SSAS directly rather than trying to automate building a large metadata repository.
What about making changes to models? To my knowledge, there aren't any tools that make it easy to make changes across models, though again, you could manually build them. I don't think I would trust my own tool to automate changes across models though. There's just too much that could go wrong. But if you had the need and the budget, you could build it. Look at tools like Tabular Editor, ALM Toolkit, and Microsoft's SSMS, and read on DevOps pipelines for automating updates. These tools work against SSAS and Power BI Desktop, but again, you have to open the Power BI files to work with those models, which makes automation that much harder to do.
Note that all the external tools I've mentioned except Tabular Editor v3 are free (though Tabular Editor v2 is free). PowerBI.tips is a great place to install all these tools from a single installer.

Automatically Exporting PowerBi Visualisation Data?

I need to automatically extract raw data of a PowerBI visualisation across multiple published reports.
Why not just pull the underlying dataset? Because the visualisations are using anomaly detection features of PowerBI, which include anomaly flags not available in the underlying dataset (basically, the visualisations contain calculated columns that are not included in main PowerBI data model)
Ideally a REST API solution would be best, but dumping CSV files or other more roundabout methods are ok.
So far, the closest functionality I can see is in the Javascript API here - https://learn.microsoft.com/en-us/javascript/api/overview/powerbi/export-data, which allows a website to communicate with an embedded PowerBI report and pass in and out information. But this doesn't seem to match my implementation needs.
I have also seen this https://learn.microsoft.com/en-us/azure/cognitive-services/anomaly-detector/tutorials/batch-anomaly-detection-powerbi which is to manually implement anomaly detection via Azure Services rather than the native PowerBI functionality, however this means abandoning the simplicity of the PowerBI anomaly function that is so attractive in the first place.
I have also seen this StackOverflow question here PowerBI Report Export in csv format via Rest API and it mentions using XMLA endpoints, however it doesn't seem like the client applications have the functionality to connect to visualisations - for example I tried DAX Studio and it doesn't seem to have any ability to query the data on a visualisation level.
I'm afraid all information on PowerBI says this is not possible. The API only supports PDF, PPTX and PNG options, and as such the integration with Power Automate doesn't do any better.
The StackOverflow question you link has some information on retrieving the Dataset but that's before the anomaly detection has processed the data.
I'm afraid your best bet is to, indeed, use the Azure service. I'd suggest ditching PowerBI and going to an ETL tool like DataFactory or even into the AzureML propositions Microsoft offers. You'll be more flexible than in PowerBI as well since you'll have the full power of Python/R notebooks at your disposal.
Sorry I can't give you a better answer.

Am I forced to use Power BI Desktop to provide datasets to Power BI Service other than local or sharepoint files?

I'v been assigned the task to research Power BI Service platform to see if it is useful for the company I'm working at. I have a Power BI Pro license and basically my goal is to create several reports and dashboards from disparate data sources such as REST APIs, mongodb, SQL Server, csv and excel files.
I would like to create the mentioned datasets directly from the Power BI service website but I see that I only can create datasets from csv or excel files. And if I select SQL Server, it asks me to download Power BI Desktop client. The other type of data sources that I need are not even mentioned.
My question is if Power BI Desktop is required to develop and configure datasets for the Power BI service, because to begin with it is a windows only application.
Yes you are. The desktop version provides the full power of the software. You can learn a TON of things from this guy on YouTube and also from these guys in a cube. I'm willing to bet you can search the questions you have & can find specific example videos that'll help you determine if this software is right your company. In my opinion, when it comes to data visualization software, it's tough to beat Power BI. That's especially true if your company is on Office 365.
As a tip, it's important to note what kind of data sources you need to communicate with. And are those sources in a cloud or on premise. That's important depending on how "live" you want your data to be.
The main use of Power BI Desktop (Windows only application) is to get the data from the sources into data model, then load it to the service. The data connections and the ability to create reports is limited compared to the service. The main goal of the service is to share the reports and collaboration.
For example there is no realtionship designer in the service to connect the imported entities. You can create a report in the desktop and load it to the service, and then create other reports from its dataset in the service.
You can create dataflows in the service to get data from flat files, and databases, but you then use Desktop to connect to them and link them together there.

Power BI in the context of Data warehousing

My company is currently building an enterprise data warehouse in SQL server. We are looking at using PowerBI but I'm struggling to see how PowerBI works in the context of a data warehouse.
For instance what would it offer us, other than nicer looking reports, that Cognos, which we are using now, doesn't? How is it at handling immense amounts of data?
In the context of the Enterprise Data Warehouse Power BI has a number of options.
1) It can be the visualisation layer of your SSAS Data Models, users can connect and quickly create reports as it will sit over, not import data to the Power BI Report. Data processing is done on the server side, and can access huge data models/databases
2) Rather than create SSAS Data Models. Power BI can create a semi-semantic layer, as it is a branch of SSAS Tabluar technology. Your users can quickly deploy the reports, based directly on the database. You can use it in Direct Query mode, as with option 1, this sits over the database, and query processing is dome on the server side. You can import data, but it will be limited to 1GB dataset sizes. All report queries are served from the imported dataset, not the server. With Aggregation Mode you can combine import and direct query to sit over large databases
The real benefit is to enable self-service BI, to get the users to create their own reports. So you can mix strategic (built by the business) and tactical reports (user built). Power BI allows a quick process to mix and match data sources, for example data under your organisation domain, Databases, Cubes, Execl file etc, and data not under your domaim, webpages, API's, other sources.
You can also have Power BI on-prem or in the cloud. On-prem will depend on the SQL Server license type, or it will be another cost. Power BI also fully integrates with O365, and Azure so depending on your application/tech stack, that may be a benefit. It also integrates very well with Power Apps, Power Automate so Power Users can build solutions without requests to IT or others.
This is from my personal experience. I have had a number of projects for enterprise scale customers, that have moved from Cognos (And other tech like Tableau), fully or in part, due to the cost and and the integration of Power BI into O365. End users liked the large knowledge base, the support from MS, and the rapid updating/roadmap of the technology. The most common question is, can it replace X tech. The answer is maybe, it will depend on your report requirements, and how it will integrate with your data sources. Other trends I've noticed, moved some work from IT/BI to the Power Users, particularity with Power Apps/Automate functionality.
Power BI is a lightweight ETL and modeling tool, so it is not just a visualisation tool. There are a number of blogs and articles that compare Power BI to Congnos, that seem biased, so it will be tricky to find a objective answer.

Branding mobile app/webpage

I have read a little bit about Power BI and it looks like a great tool. I need to provide reports/dashboard in the way that client would see my branding, is it possible? It looks like it works for webpages as you can use the embedded power bi functionality, but what with mobile bi experience. Let's say with the power bi app, is there a way to creat a clone of this application with your own branding and different name (rather than power bi app)? If it doesn't work can i somehow use PowerApps? Can I create my own let's say iphone app using PowerApps which shows reports/dashboards? How does it work with regards to security, can I have 2 factor authentication?
The more complicated scenerio which I really would like to achieve is to a webpage which has 2 pages, one with embedded Power BI and another one with SSRS reports. What is the best way to achieve that? It would be great if a user needs to login to the page only once?
I would appreciate your indications what is possible and what not and how current companies deal with such issues.
Regards,
Rafal
Your best bet is Power BI Embedded. As you say, it allows you to embed Power BI reports into externally facing mobile apps or websites. More information: https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-what-is-power-bi-embedded/
To complete your more complicated scenario, you can use the Report Viewer control to embed SSRS reports into a website: https://msdn.microsoft.com/en-us/library/aa337090.aspx. In terms of logging in, both Power BI Embedded & Report Viewer allow your application to authenticate behind the scenes against their respective services. End user security is left to your app/website to handle.
Re-branding the existing Power BI mobile app is a no-go. It comes as-is.
Power Apps can be used to collect data that is then loaded into Power BI, but I've never heard of Power BI tiles/reports being embedded into a Power App.
All these technologies are rapidly evolving, though. What's true today could easily change as features are added & feedback is received.