Is there a workaround for Power BI Desktop to automatically refresh data without publishing pbix to Power BI Service? - powerbi

Is there still no way for Power BI Desktop to automatically refresh data without publishing pbix to Power BI Service? Due to threat of private information leakage, we want to maintain our data only via Power BI Desktop (not using Power BI Service first). We have been looking for ways on how to work around the automatic refresh in PBI Desktop for over a day already but all pointing us to publishing pbix to Power BI Service, which will allow us to schedule the refresh after. Any feedback will be much appreciated.
Thank you!

There is no supported way to do this. The easiest workaround is to teach your users to click on Refresh button. Second easiest thing could be to use DirectQuery instead of import mode.
There are some attempts for workarounds from the community, but you should use them with caution:
PBIXRefresher and pbixrefresher-python scripts by Michal Dúbravčík
Write some code that starts opens the .pbix file in Power BI Desktop, finds its PID, then finds the port on which the child Tabular process listen and use Tabular Object Model (TOM) to refresh it
Use Power Update (paid) tool
But leaving workarounds aside, Power BI is compliant with a lot of security standards. Data leaks of data from the cloud in most (all?) of the cases will be caused by a human factors, which is also possible with on-premise data. But if it is a no-go for your organisation, then either use Power BI Server on-premise, or another reporting tool (e.g. SSRS).

There is no way to automate the refresh in PowerBI desktop. You have to manually click the refresh button. Many organisations trust PowerBI Service with their data. However, in the case that you have some serious data residence restrictions, then you can deploy PowerBI Report Server on premises and publish to this without your data leaving your network.

Related

Automated flow of power bi reports from power bi service to sharepoint or onedrive

I Want to have an environment where whenever a power-bi report (in .pbix format) is created or updated in a workspace in my power bi service, it will automatically be reflected in my sharepoint without any manual effort so that I can manage different versions of a report on organization level. Is there a way to achieve this automated connection between power bi service and sharepoint?
Tried to use sharepoint web-embedded option for pages but I guess it is not an option to make the connection automatic and requires multiple layers of manual effort for each page.

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.

Options for sharing dashboards with sensitive information with PowerBI

I have a dashboard I've built using Power BI, that contains sensitive information. I want to share this dashboard with external users outside of my organization, that do not and will not have PowerBI.
From everything I've read, it appears I have a few options:
The external recipient of the dashboard would need to download Power BI Pro (from my understanding, they won't be able to view my dashboard with anything other than Power BI Pro?)
I somehow embed my dashboard in a Sharepoint which the external recipients have access to - but from what I've read, this seems likely to fail since they don't have Power BI.
I publish dashboard to the web, and have no way to password protect or restrict access.
Are these my only options? Am I correct in that anyone I wish to share the dashboard with needs Power BI Pro to view, or I need to publish it to the open web and let it be publicly available?
If this is the case.. this is just one more reason I am disenchanted by Power BI.
There are other options in addition to these you mentioned already (i.e. directly sharing through adding users to the workspace, embed in SharePoint and Publish to web).
Sharing (except Publish to web, which is public) require both the publisher and the consumer to have Power BI Pro licenses (which is not the case for you). Purchasing Power BI Premium (P SKUs only) will allow you to share reports with non-Pro (i.e. Power BI free users), but they still needs Power BI licenses (although free). Also this will costs you thousands per month and has annual commitment, which means you can't buy this for a month or two.
If this doesn't work for you, you can also:
Export these reports to PDF or PowerPoint and share the files with them.
If the report imports the data (see Dataset modes in the Power BI service), you can send them the .pbix file directly. It can be opened in Power BI Desktop even without having no Power BI account at all.
Publish the report to local instance of Power BI Report Server, where you can control who can access the report. You need either Power BI Premium (P SKUs) or SQL Server Enterprise with software assurance for that.
Embed the report using Power BI's API into custom written application, implementing app owns data scenario (see Tutorial: Embed Power BI content into an application for your customers and for example this answer).
To add to Andrey's answer, depending on the number of users you can use Azure AD B2B so you can have guest users access your Power Bi Reports and allocated work-spaces. However it depends on the number.
For example if you need to add 100 users, and you pay for the Power BI Pro licenses then it would be cheaper to design a basic portal and use the Power BI Embedded option and build you own basic web portal to embedded the reports in (The app owns data scenario). The basic A SKU's start around the same price as about 73 Pro licenses, or £570 per month. There will be extra cost in development of the portal and the running costs on top of the Embedded price
If your external end user is going to pay for the Pro license, then Azure AD B2B could work for you.
Hope that helps

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.

Does Microsoft POWER BI work in-house without relying on cloud technology? How is it done?

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.