I am about to create an azure cloud business intelligence solution. Based on best practice, I will use Azure analysis services (AAS) to hold the data model and create Power BI reports who has live connection to AAS. This is the overall starting point. Then I have these challenges:
Challenge number 1: I want to be able to use the new features of Analysis Services as Calculation Group and Aggregation features. Right now I am using Visual Studio 2019 and SQL Server 2019 azure SQL database that contains a star data model. Can I create a data model in AAS that can take advantage of these new features and how can I do that? For example, can I use Visual Studio 2019 or do I need to create this in tools such as the Tabular Editor
Challenge number 2: If I have to make the model in the Tabular editor, how do I proceed and how do you integrate the model files into Azure Devops?
Challenge number 3: Is it possible to use the Power BI pro in the Power BI service to utilize these features?
All contributions and tips are received with thanks
Sincerely
All this is changing rather rapidly, at present.
Currently Calculation Groups are previewed in SSAS 2019, and have not been rolled out in either Azure Analysis Services or Power BI. Aggregations are available in preview in Power BI Premium, and aren't planned to ship in either SSAS 2019 or Azure Analysis Services.
Support for building Power BI Premium models in Visual Studio has also not shipped yet, as it's dependent on both XML/A endpoints and updated SSDT tooling. Currently you would use Power BI Desktop to design models using Aggregations. Later you can switch over ot using Visual Studio and SSDT when that tooling ships.
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 am using PowerBI Desktop September 2019 release and I have two tables :
Employee
Country
I want to establish Many to many relationship between the two tables but I can't find (it is not detected) :
When I want to desactivate Composite Model in the features, I can't find the Preview features in GLOBAL :
are you using the Power BI Desktop Report Server? as the preview features wouldnt be available in there
If you could show more information about your tables that would be helpful
I think in your case, you are deploying to a Power BI Report Server instead of to Powerbi Desktop.
Power BI Report Server does not support many to many relationships yet, that is currently only supported in the cloud environment.
You can know the difference by checking this article.
I have a WPF application which has lot of canned queries. Recently, I came across Power BI QnA and its very impressive.
I would like to know, if Microsoft QnA maker provides similar capability which can be integrated with .Net applications. This would help to make the query feature more flexible.
You can use the capabilities of Power BI QnA in your .net application using Power BI Embedded QnA:
https://learn.microsoft.com/en-us/power-bi/developer/qanda
browse the capabilities Power BI Embedded gives you in: http://aka.ms/pbijs
Also, you can attach Bot Framework to display a Power BI Embedded Report (or QnA).
Note that in the near future there is probably going to be access to a REST API providing you the ability to use it anyway you'd like, including QnA Maker
We need to be able to publish PowerBI reports locally (versus publishing to the PowerBI service/website). We're running SQL Server 2014, because we do not feel SQL Server 2016 is mature enough to use yet (maybe in a year or two).
What options do we have for publishing PowerBI reports to some local resource (e.g. SSRS, a static web page, etc.)? Can we publish to SSRS 2014 (in SQL Server 2014)?
You can publish to an on-premises Pyramid Analytic server.
Microsoft collaborated with Pyramid Analytics to develop the Power BI
Desktop. Pyramid Analytics’ on-premise server-based technology
complements Microsoft SQL Server Analysis Services, leveraging all the
features of the Microsoft BI stack. You can now publish a Power BI
Desktop file to Pyramid Analytics Server, and more features will be
added over the next few months to enable seamless integration. We’re
excited to collaborate in accelerating the delivery of innovative BI
features that customers want and need most.
Source.
Currently, only technical preview of SSRS 2016 vNext supports PowerBI integration. SSRS Blog
One option to run it locally today is to manually distribute PBIX files, and view them in PowerBI desktop.
Or you can run that technical preview, of course. You could set up a separate instance solely for PowerBI reports, and carry on using 2014 for everything else.
Does Microsoft POWER BI work in-house without relying on cloud technology? How is it done?
Here is one way: Download Power BI Desktop. Create .pbix documents. Share as you would an Excel workbook.
Use on-premises or external data sources that you have access to. For example, access a SQL Server database using Windows integrated security if so configured; or use the "page scraping" feature to pull a table off of a web page. The data is stored in the .pbix and can be manually refreshed.
This is obviously not a very sophisticated or well-managed approach but does have some advantages.
Following on from #Tom's answer, here's the roadmap including on-prem PowerBI that MS published last year.
https://blogs.technet.microsoft.com/dataplatforminsider/2015/10/29/microsoft-business-intelligence-our-reporting-roadmap/
The short version is that there appears to be an intention of adding this to SSRS in a future release. But for now, the option we use is to share PowerBI workbooks using PowerBI desktop as #Tom describes.