Backup Azure Tables with the Enzo Backup API

In case you missed it, you can now backup (and restore) Azure Tables and SQL Databases using an API directly. The features available through the API can be found here: http://www.bluesyntax.net/backup20api.aspx and the online help for the API is here: http://www.bluesyntax.net/EnzoCloudBackup20/APIIntro.aspx.

Backing up Azure Tables can’t be any easier than with the Enzo Backup API. Here is a sample code that does the trick:


// Create the backup helper class. The constructor automatically sets the SourceStorageAccount property

StorageBackupHelper backup = new StorageBackupHelper("storageaccountname", "storageaccountkey", "sourceStorageaccountname", "sourceStorageaccountkey", true, "apilicensekey");

// Now set some properties…

backup.UseCloudAgent = false;                                       // backup locally
backup.DeviceURI = @"c:\TMP\azuretablebackup.bkp";    // to this file
backup.Override = true;
backup.Location = DeviceLocation.LocalFile;

// Set optional performance options
backup.PKTableStrategy.Mode = BSC.Backup.API.TableStrategyMode.GUID; // Set GUID strategy by default
backup.MaxRESTPerSec = 200; // Attempt to stay below 200 REST calls per second

// Start the backup now…
string taskId = backup.Backup();

// Use the Environment class to get the final status of the operation
EnvironmentHelper env = new EnvironmentHelper("storageaccountname", "storageaccountkey", "apilicensekey");
string status = env.GetOperationStatus(taskId);

 

As you can see above, the code is straightforward. You provide connection settings in the constructor, set a few options indicating where the backup device will be located, set optional performance parameters and start the backup.

The performance options are designed to help you backup your Azure Tables quickly, while attempting to keep under a specific threshold to prevent Storage Account throttling. For example, the MaxRESTPerSec property will attempt to keep the overall backup operation under 200 rest calls per second.

Another performance option if the Backup Strategy for Azure Tables. By default, all tables are simply scanned. While this works best for smaller Azure Tables, larger tables can use the GUID strategy, which will issue requests against an Azure Table in parallel assuming the PartitionKey stores GUID values. It doesn’t mean that your PartitionKey must have GUIDs however for this strategy to work; but the backup algorithm is tuned for this condition.

Other options are available as well, such as filtering which columns, entities or tables are being backed up.

Check out more on the Blue Syntax website at http://www.bluesyntax.net.

Twitter