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.
Related
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.
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.
I have published an application that i did with power Bi, for some charts I want to make data downloadable for users.
I couldn't find any straight forward way to do that, some sites talk about implementing a script for that.
Is there any real way for published application that works?
One of the limitations of Publish to web is the inability to export data:
Reports using row level security.
Reports using any Live Connection data source, including Analysis Services Tabular hosted on-premises, Analysis Services Multidimensional, and Azure Analysis Services.
Reports shared to you directly or through an organizational content pack.
Reports in a group in which you are not an edit member.
"R" Visuals are not currently supported in Publish to web reports.
Exporting Data from visuals in a report, which has been published to the web
ArcGIS Maps for Power BI visuals.
Reports containing report-level DAX measures.
Single sign-on data query models.
Secure confidential or proprietary information.
The automatic authentication capability provided with the Embed option doesn't work with the Power BI JavaScript API. For the Power BI JavaScript API, use the user owns data approach to embedding. Learn more about user owns data.
Exporting data is possible, if you publish your report in Power BI Online and share it with your colleagues. But keep in mind, that even in this case it may not be possible or allowed, due to these limitations, e.g. if it has been disabled, or the user doesn't have enough permissions. In addition, it has limits on maximum columns, rows and data size.
The best option is to export the data directly from the data source, which is used to build this report.
I need your help.
We have a plan to run "SQL DB and Web services" on AWS and need to publish the Power BI report by embedding to web service running on AWS.
Do you think it's possible scenario? IF yes, how can I achieve this?
You can't embed Power BI in a web service, so I will assume you want to embed it in a web application.
You need at least three components in such architecture - a place to store your data (assuming it will be in some kind of SQL Server), Power BI (assuming Power BI Service) and web application.
The database can be managed by your cloud provider (e.g. Amazon RDS) or "normal" instance running in a VM in the cloud. Of course, it could be something else (not SQL Server), or even be in a different cloud (e.g. Azure), or on-premise. The point is that you store your data there and use this as a data source for your reports.
The you need Power BI to create reports. Assuming that you will use Power BI Service (the online portal), you will design your reports in Power BI Desktop, getting data from your data source, and publishing these reports to Power BI Service. At this point you can view these reports in the portal using the browser. Power BI Service will render them using shared resources. For embedding and relatively heavy usage, you should buy a capacity. Think for capacities as resources (CPU, memory) dedicated only for you. They are not shared with other Power BI users. There are different licensing models and ways to buy a capacity. You can buy Power BI Premium or Azure SKUs. This FAQ tries to explain the differences, but in general A SKU means "pay what you use, stop at any moment, without any commitments", while EM SKU and P SKU are for bigger scale projects with monthly or yearly commitment. When you buy a capacity, you can assign it to a workspace containing your reports, and then they will be rendered using your own dedicated resources (which should give you better performance).
And the last part is your application (assuming web application, which you can host in Amazon Web Hosting or in VM), where you want to embed your reports. Generally speaking, there are two scenarios - "user own data" and "app own data". In the first, each of your users needs Azure AD account. Using this account, he will get access to the reports and data, as he has in the Power BI Service itself. In the second scenario, your app uses one "master" account to access the Power BI, thus your users doesn't need their own accounts in Azure AD. You can use your own authentication in your app. Embedding Power BI is quite large topic and your question isn't specific, so I will recommend to start with Embedding with Power BI article, take a look at Power BI Embedded Playground and review the samples.
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.