Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
colonel_claypoo
Regular Visitor

Newbie question: Dataset/report versioning with OData

Hello,

I have a basic report and its dataset comes from an OData feed.

 

I would like to know if it's possible to create 'versioned reports' where each report represents the state of the data pulled from the feed at time of creating it.

What I determined is that sure, I can create multiple reports and archive them in SharePoint for example. But since the data source is always the OData feed the data in every report is always dynamically updated i.e. the latest state of the data.

Is it possible to have each report have a different 'snapshot' of the data coming from the OData feed?

Thanks for your help.

1 ACCEPTED SOLUTION

Hi @colonel_claypoo 

Typically, this type of snapshotting is best done outside Power BI in the original data, creating archive copies of the original data and reporting on that.

But you may have a few other options.

Firstly, if data is not being erased from the data feed, and is simply accumulating by date, it should be possible to filter by ,say, transaction date, to show the position at any time in the past. This is the simplest solution, just let the data grow over time, unless you have multi-millions of records Power BI will be able to cope with it,  and report on the historical position within the Report. 

However if data is being removed from the data feed (and you have to ask why ?) then you can't show the historic position by using dates (as the data isn't there anymore). In that case you'll need to manually control refreshing and publish a new Dataset and Report whenever you want to take a snapshot. This will not scale well if you have a lot of data or a lot of reports from the Dataset, and will need a lot of manual management. That's why it's better to archive data in the original, or just let it grow.

Finally you may be able to do something with Dataflows to approximate a data warehouse see: Introduction to dataflows and self-service data prep - Power BI | Microsoft Docs and Dataflows in Power BI – BI Polar (ssbipolar.com). If I needed to store snapshots of original data that was otherwise being deleted this would be my approach, but you'll need to learn up on Dataflows and see how best to apply them. 

It's a big subject, and there is no one easy answer but I hope this helps

Stuart

View solution in original post

3 REPLIES 3
colonel_claypoo
Regular Visitor

Thank you! I will take a look at it right away. If I may ask because perhaps I'm approaching this all wrong:

We want to build some kind of bare bones Data Warehouse where we can host a history of reports with their datasets so that we can, ideally, simply open the report and view the state of the data from when the report was created/archived.

Is there an easier solution? Otherwise, of course, I appreciate you mentioning this new feature.

 

Thanks.

Hi @colonel_claypoo 

Typically, this type of snapshotting is best done outside Power BI in the original data, creating archive copies of the original data and reporting on that.

But you may have a few other options.

Firstly, if data is not being erased from the data feed, and is simply accumulating by date, it should be possible to filter by ,say, transaction date, to show the position at any time in the past. This is the simplest solution, just let the data grow over time, unless you have multi-millions of records Power BI will be able to cope with it,  and report on the historical position within the Report. 

However if data is being removed from the data feed (and you have to ask why ?) then you can't show the historic position by using dates (as the data isn't there anymore). In that case you'll need to manually control refreshing and publish a new Dataset and Report whenever you want to take a snapshot. This will not scale well if you have a lot of data or a lot of reports from the Dataset, and will need a lot of manual management. That's why it's better to archive data in the original, or just let it grow.

Finally you may be able to do something with Dataflows to approximate a data warehouse see: Introduction to dataflows and self-service data prep - Power BI | Microsoft Docs and Dataflows in Power BI – BI Polar (ssbipolar.com). If I needed to store snapshots of original data that was otherwise being deleted this would be my approach, but you'll need to learn up on Dataflows and see how best to apply them. 

It's a big subject, and there is no one easy answer but I hope this helps

Stuart

Burningsuit
Resident Rockstar
Resident Rockstar

HI @colonel_claypoo 

You're right, you can't have "snapshots" of data in Power BI as you describe. Reports are always updated to reflect the data in the Dataset. 

However you might want to look at the new Power BI "Goals" feature.

This allows you to take a regular snapshot of one or more values from a Report , say a KPI or Total Figure. And store it in a Goals Dasboard. This creates a historic view of the change of the data values.

It also stores the value in a new Power BI Dataset, along with the date and time of each snapshot, so you can write reports based on this data to show the change over time.

See Introducing Goals in Power BI | Microsoft Power BI Blog | Microsoft Power BI

Hope this helps

Stuart

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors