How to copy data from SSAS (on-premise) to Azure Analysis Services - azure-analysis-services

My company plans to copy all data from on-premise SQL Services Analysis Services (2017 tabular) to Azure Analysis Services on a periodic basis. We want to do this at least once a day, and then use the Azure Analysis Services version for Power BI reporting only. The idea is to reduce load on the on-premise cube, and to improve response in Power BI.
Is this a recommended design for reporting?
What are the methods available for the periodic copy of data (and pros and cons for each)?

In addition to Nandan’s approach, you could continue to refresh the model on premises, then backup and restore to Azure Analysis Services. I shared a PowerShell script which automates this operation.

can you tell us what is the data source for the on prem SSAS cube ?
In case it a SQL server, rather than syncing data from SSAS to AAS, you can directly refresh the AAS with on prem SQL server as the source via on prem gateway.
And in case if the cube is only used for reporting(powerbi), then having AAS is enough rather than maintaining SSAS and AAS.

Related

Analysis Services access configuration challenge

Looking for access related solution that involves:
a) Azure Analysis Services
b) Reports in Power BI Services
c) and restricting connection access to Azure Analysis Services from Excel, Power BI Desktop, other tools
The picture below illustrates the problem what I'm trying to solve (marked red).
So we want that certain Azure AD Group(s) (e.g. Salespersons) have access to Azure Analysis Services only through published Power BI Reports. So they use reports but can’t connect to Azure Analysis model with Excel, Power BI Desktop and other tools.
And at the same time other Azure AD Group(s) (e.g. Controllers) can use Excel and other tools to explore whole Azure Analysis Services model. They also can use reports.
I see that current Azure Analysis Services Firewall setup operates with IP Addresses.
So looks it can't be used in my case as I can identify users by AD Group(s) not IP(s).
Does anybody know is it somehow possible to solve this.
Might be in combination with some other Azure services
https://i.stack.imgur.com/gNeRm.png
[link to picture]
you can create an Azure VM, provide the user group access(allowed to use AAS from excel) on that VM and whitelist the IP of that VM in firewall of AAS server.
So anyone accessing the AAS needs to access it via the Azure VM only and not via any local IP.
As to others users, even if they have read access on AAS cube, they wont be able to access due to firewall restrictions.
Note : All the above is assuming that the POwerBi reports are in connectlive mode and not import mode.
In case if the reports are in import mode, the users need not have read access in the AAS cube but just have access on the reports

Connection options to Azure Analysis Services vs Power BI vs Power BI embedded vs Power BI Premium

I'm looking for option to connect to and query the "Model"/Database of Azure Analysis Services(AAS)/Power BI. I've found multiple options for connecting AAS to .Net Core, but nothing for Power BI. Can I use any of the following connection types to connect to Power BI? And if so which flavor? Power BI Pro, Power BI Premium, Power BI Embedded?
I can connect to Azure Analysis Services using the following:
ADOMD <- This is my preferred connection method.
AMO
MSOLAP
REST API with Bearer token
I'm not looking to embed my report in a .Net Core application. I'm looking to actually query different models so everyone is reporting off the same data.
I don't want to shell out for AAS if I can do this with Power BI Pro!
As a short answer, I would say you can most likely do what you are asking with data sets hosted within a Power BI Premium instance or by users with a Premium per user (PPU) license.
My reasoning is simple. Access to the XMLA endpoint is only available for datasets hosted within Power BI Premium. Microsoft describes that in a bit more detail here within the Power BI documentation. Power BI Embedded (in a round about way) also ends up requiring Power BI Premium, so I believe this would be the same case for Power BI Embedded.
As a reminder on why the XMLA endpoint matters, Power BI Premium encapsulates an AAS instance (with some limitations). Per Microsoft (from here):
XMLA is the same communication protocol used by the Microsoft Analysis Services engine, which under the hood, runs Power BI's semantic modeling, governance, lifecycle, and data management.
So XMLA endpoint is required in order to allow connectivity to the AAS instance behind Power BI.
To answer your question regarding the different connection methods:
ADOMD/AMO
Microsoft provides a client library for .NET Framework and .NET Core for both ADOMD and AMO which should be able to connect to the XMLA endpoint of Power BI. You can browse those and the information available from Microsoft on those here. There are several open-source tools out there (recommended by Microsoft) that make use of these libraries. So if you are looking for examples, look in to Tabular Editor 2 or DAX Studio.
MSOLAP
Per Microsoft (in same link about client libraries):
Analysis Services OLE DB Provider (MSOLAP) is the native client library for Analysis Services database connections. It's used indirectly by both ADOMD.NET and AMO, delegating connection requests to the data provider. You can also call the OLE DB Provider directly from application code.
So unless you have some very specific needs regarding MSOLAP, I would probably rely on the Microsoft's AMO/ADOMD client libraries.
REST API
Assuming we are talking about the actual Power BI REST API (like this link) then, it depends. There are certain functionalities that the API exposes that might have been your use case for wanting to use a direct connection to the XMLA endpoint. For example, it does allow you to execute DAX queries or initiate dataset refreshes (all with its limitations). So I would advise you to review the API's documentation. It seems to be a good tool so far, and my guess is that it will only expand.

How does the Realm Mobile Platform scale?

You could say I am a fan of the Realm Mobile Platform. I'm using it and it seems to be working well.
However I am confused with how to operate it going to production. It seems to be deployed only to one server, and even the professional and enterprise editions are working on my single server.
Assuming Realm have thought of this (as Enterprise edition supports 'enterprise scaling) - how does this work if all clients point to my owned server URL?
Another question is how to monitor the load on that server.
Thanks!
The Professional Edition and the Enterprise Edition emit statsd compatible metrics which allow you to track the usage and load on each node in a Realm Object Server cluster. These metrics are also used internally inside the cluster in order to display statistics about the health of the cluster.
We are obviously still adding metrics as we understand more about our customer's use-cases, and fine-tuning the ones that we have.
With regards to the way the clustering works, we are currently implementing this according to an iterative process, where we add more and more features, and more and more resilience to the system with every passing day.
Basically, we have a logical load balancer process, which receives the incoming client connections, and then dispatches that to a node inside the cluster. This logical load balancer can be HA'd and LB'd itself as well, just like you would any regular WS connection handler. Handling many connections these days is easy. It's handling the quadratic merge algorithms that is expensive on the Realm Object Server, which is why the clustering is required for deployments at scale.

Does dynatrace monitor oracle ebs(11i) completely?

I want to monitor oracle ebs(11i) & oracle db(11g) simultaneously during load test through dynatrace.
Oracle EBS architecture
I know we can monitor oracle db using dynatrace but did not find how to Identify what areas or modules (e.g. Order Management, Sales, Finance, Shipping) a particular work flow/user request touches during the load test?
I found that using DC RUM we can capture the metrics for Form Server. Apart from this I also want to monitor Concurrent processing server. Is it possible using dynatrace or not?
With Dynatrace DC RUM you may choose one of two approaches of monitoring EBS performance.
First - DC RUM using agentless technology, captures network traffic between all servers and clients and as result provides you with information on performance, usage and availability details. Additionally for most popular network protocols including the ones used during communication with Oracle database, Oracle Forms servers and web servers it’s possible to use analyzers, that provides deeper performance insights. For example with Oracle Forms analyzer applied for EBS monitoring DC RUM is decoding all interactions between user and oracle forms reporting user names, form names, control names and identifying EBS module name. For Oracle Database traffic it reports performance down to single query execution including SQL, database schema and user name. Answering your question it allows monitoring of Oracle EBS and Oracle DB simultaneously.
Second one – Enterprise Synthetic allows you to create synthetic tests for key transactions in EBS. This way for example you may track the performance of whole creating sales order transaction.
DC RUM is intended to constant, systematic application performance monitoring. However if you have it in your company it’s also perfect tool to evaluate the results of the load tests performed on EBS.

SQL Server Express for ASP.NET Intranet?

We are looking at creating a custom ASP.NET application for a client, however they are a nonprofit and thus budget is limited.
We typically develop ASP.NET web and desktop apps to connect to a central SQl Server 200X database, ie with a full version of SQL Server, running on networked Windows Server. In this case we won't have a full version available.
Are there any issues with using SQL Server Express in this sort of arrangement? IIS and SQL Server Express would be running on the same physical server, serving up pages over the local Intranet to users.
Any real differences to be aware of in regards to development of the app itself or deployment? This will be a fairly standard app, with SQL mainly being used for a datastore with tables and SPs, nothing really SQL Server specific beyond that.
SQL Server Express edition should be fine for this scenario. It has all the core features of the full product, but as you said you are only really using it for data storage and some SPs, then you will not need any of the additional functionality available in the other versions (ie. reporting and analysis services). There are some limitations to the express version (the biggest being that the maximum database size is 4GB), but they should not really affect you unless your are building a very busy ASP.Net application.
Some public-facing websites use SQL Server Express as the database server (DotNetKicks being the only one I can remember at the moment) without issue.
The exact list of unsuported features in Express is at SQL Server Express Features:
Database mirroring
SQL Mail
Online restore
Fail-over clustering
Database snapshot
Distributed partitioned views
Parallel index operations
VIA protocol support
Mirrored media sets
Log shipping
Partitioning
Parallel DBCC
Address Windowing Extensions (AWE)
Parallel Create Index
Hot-add memory
Enhanced Read Ahead and Scan
Native HTTP SOAP access
Indexed views (materialized views)
SQL Mail and Database Mail
Partitioned views
Online Index Operations
SQL Server Agent and SQL Server Agent Service
SSIS, SSAS, OLAP/Data Mining
The SQL Server Express with Advanced Services Features supports a "subset of Reporting Services features".
In addtion there are the operational restrictions:
Express will use onyl one CPU core
Express will not grow the buffer pool over 1 GB no matter how much RAM you have
Express will not allow any database to grow over 4GB and will not put online (restore, attach) databases that are already over 4 GB.
The key problems you may run into are the operational restrictions (one core, 1 GB ram, 4GB each database) and the lack of SQL Agent, preventing any sort of job scheduling.
You should not really run into anything, its actually a full featured product that MS SQL Express
Here's a really basic comparison from Microsoft.

Resources