Azure table store snapshot/backup capability

I don't seem to be able to find any documentation on taking snapshots of an Azure table store, and neither can I find anything on taking backups either.

I've found a few posts from a few years ago with people saying they export their table stores to another storage account via AzCopy running on a VM called by Windows scheduler, but this seems awfully archaic and would mean storing complete copies of data.

The only thing that the Azure documentation seems to mention is snapshots of blob storage and I don't think that table storage, even though it's likely to be blobs underneath, counts.

Surely there's a better way of taking regular backups of Azure table stores?


There is no table snapshot feature available (unlike blobs, which do have snapshots).

You'd need to devise your own way of making a backup of a table. Whether that is a partition-by-partition read + write, full table read plus write, or maybe some other technique (such as writing to two tables simultaneously).

Note: You still get the read-only secondary for tables (if you enable that type of storage), if you're concerned with DR.

Oh - regarding azCopy (or any other tool): Yes, those result in storing your data in another place. But snapshots could end up doing that too. While it's true that, with regular (non-premium) storage blobs, a snapshot doesn't initially take up much space (minimal, really), as the original blob changes, the snapshot grows in size to reflect the differences. And the same goes for each additional snapshot. Also, with premium storage (or managed disks, both regular and premium), snapshots take up the same amount of space as the original disk.


By using snapshot or backup, you could make different versions of your data.

To create a backup of Azure Storage, you could use the Copy Activity of Azure Data Factory to move data from Azure Table Storage. You also could use this service to restore data back to Azure Table Storage.

Move data to and from Azure Table using Azure Data Factory

If you want to create a in place snapshot, you could implement it by adding a prefix versioning tip to Row Key. If the table data is updated, you could add a new row with a new version prefix. I get this idea from following article.

In place versioning on top of the table store


After doing a lot of research on the best way to automatically backup data, I found that the easiest way to do this is to schedule a job in the Windows Task Scheduler on an Azure virtual machine that uses AZCopy. AZCopy does the work of moving the table data to the VM and then back out to a secondary blob store in Azure to hold the backup. The batch file also causes AZCopy to copy the blobs from the source storage account into the target account directly.

You can see a detailed description of how I made this work complete with links to the batch files that I use to automate the backup at this link: http://www.eastfive.com/2016/03/01/automated-backup-of-azure-storage-tables-and-blobs/


  • Conditionally merge primary and secondary dictionary in Ansible
  • Windows Azure VM availability/Failover steps
  • Stack size of secondary threads, significant differences between DEBUG and RELEASE versions
  • preg_replace speed optimisation
  • autotest and rspec giving different answers
  • Devise: undefined method `user_signed_in?' for ApplicationController:Class
  • Broadcast advanced indexing numpy
  • How to show underscore (shortcut) without holding Alt?
  • Storing a copy of a document embedded in another document in MongoDB via Mongoose
  • Sort by a column in a union query in SqlAlchemy SQLite
  • qt how to know that a pushbutton is clicked?
  • How to protect an asp:textbox from user input?
  • Is it better to have roles as a column on my users table, or do it through join tables (Roles &
  • Segmentation Fault on MySQL2 / Ruby 1.9.3 / Rails 3.2
  • How to turn (A, B, C) into (AB, AC, BC) with Pig?
  • SQL Query - Table Joining Problems
  • jQuery: add elements until a particular height is reached
  • uml Composition relationships to RDF and OWL
  • Enabling DTD support in Sql Server
  • Bigquery event streaming and table creation
  • How to detect interior vertices in groups of 2d polygons? (E.g. ZIP Codes to determine a territory)
  • How to make JSON.NET deserialize to Microsoft Date Time?
  • How to get current document uri in XSLT?
  • How to disable all widgets inside Panel or inside Composite?
  • Security issues with PHP's Readfile method
  • SharedPreferences or SQLite Database?
  • xtable package: Skipping some rows in the output
  • print() is showing quotation marks in results
  • Make VS2015 use angular-cli ng at build time in a .NET project
  • Record samples being played with OpenAL
  • Chrome doesn't support silverlight anymore? How to solve this?
  • Android fill_parent issue
  • Linq Objects Group By & Sum
  • Change JButton Shape while respecting Look And Feel
  • Get object from AWS S3 as a stream
  • Validaiting emails with Net.Mail MailAddress
  • Which linear programming package should I use for high numbers of constraints and “warm starts” [clo
  • Javascript + PHP Encryption with pidCrypt
  • Large data - storage and query
  • How to CLICK on IE download dialog box i.e.(Open, Save, Save As…)