Azure Table Storage Cheap, fast and scalable storage Anton Boyko Ukrainian Azure Community Founder Microsoft Azure MVP
Say Thank you to Volunteers: They spend their FREE time to give you this event. Because they are love our COMMUNITY. Because they want YOU to learn from the BEST IN THE WORLD. If you see one of these guys in the hall – buy them a beer/wine, they deserve it.
Vitaliy Popovych
Olena Smoliak
Maksim Garnets
Yevhen Nedashkivskyi
Oksana Borysenko
3 Sponsor Sessions at 12:30 Don’t miss them, they might be providing some interesting and valuable information! Bakotech (Dell) – Room “AE” Intapp – Room “F” DevArt – Room “Lazurny”
Our Sponsors:
AZURE STORAGE
Azure Storage Storage in the cloud Scalable, durable, available Exposed via RESTful web services Only pay for what the service uses
Azure Locations
Azure Storage Abstractions BlobsDrivesFiles QueuesTables
Azure Storage Redundancy Locally redundant Makes multiple synchronous copies of your data within a single datacenter Geographically redundant Same as LRS, plus multiple asynchronous copies to a second datacenter hundreds of miles away Read-access geographically redundant Same as GRS, plus read access to the secondary datacenter
Azure Storage Libraries
AZURE TABLE STORAGE
What is Azure Table Storage? Is not Relational Database Management System No-SQL Database Management System Database Management System Is Key value storage Software as a service
Azure Table Storage Concept EntityTableAccount azureua Speakers FullName FacebookUrl FullName TwitterUrl Registration FullName
Azure Table Storage Operations Tables Create Query Delete Entities Insert Update Merge Replace Upsert Delete Query
Azure Table Storage Entity RowKey PartitionKey Binary strings Indexed fields Timestamp Optimistic concurrency Custom fields String, Binary, Integer, Double, Guid, DateTime, Bool There are no fixed schema Up-to 1MB entity data Up-to 255 fields (including RowKey, PartitionKey, Timestamp)
No Fixed Schema FIRSTLASTBIRTHDATE WadeWegner2/2/1981 NathanTotten3/15/1965 NickHarrisMay 1, 1976 FAV SPORT Canoeing
Querying FIRSTLASTBIRTHDATE WadeWegner2/2/1981 NathanTotten3/15/1965 NickHarrisMay 1, 1976 ?$filter=Last eq ‘Wegner’
Querying GET /myaccount/Customers() ?$filter=(Rating ge 3) and (Rating le 6) &$top=10 &$select=PartitionKey,RowKey,Address,CustomerSince
Purpose of the PartitionKey Entity location Entities in the same partition will be stored together Efficient querying and cache locality Endeavour to include partition key in all queries Entity group transaction Atomic multiple Insert/Update/Delete in same partition in a single transaction Table scalability Target throughput – 500 tps/partition, tps/account Microsoft Azure monitors the usage patterns of partitions Automatically load balance partitions Each partition can be served by a different storage node Scale to meet the traffic needs of your table
PARTITIONKEY (CATEGORY) ROWKEY (TITLE) TIMESTAMPMODELYEAR BikesSuper Duper Cycle…2009 Bikes Quick Cycle 200 Deluxe …2007 ………… CanoesWhitewater…2009 CanoesFlatwater…2006 PARTITIONKEY (CATEGORY) ROWKEY (TITLE) TIMESTAMPMODELYEAR Rafts14ft Super Tourer…1999 ………… Skis Fabrikam Back Trackers …2009 ………… TentsSuper Palace…2008 PARTITIONKEY (CATEGORY) ROWKEY (TITLE) TIMESTAMPMODELYEAR BikesSuper Duper Cycle…2009 Bikes Quick Cycle 200 Deluxe …2007 ………… CanoesWhitewater…2009 CanoesFlatwater…2006 Rafts14ft Super Tourer…1999 ………… Skis Fabrikam Back Trackers …2009 ………… TentsSuper Palace…2008 Partitions and Partition Ranges
AZURE STORAGE SECURITY
Azure Storage Security HTTPS Two 512bit symmetric keys per storage account More granular security via Shared Access Signatures Ad-hoc Policy based
Azure Table Storage SAS Table granularity Can grant access to an entire table (tn) or to a table range defined by a table (tn) along with a partition key range (startpk/endpk) and row key range (startrk/endrk) Access permissions Can grant access rights to the specified table or table range such as Query (r), Add (a), Update (u), Delete (d) or a combination of them Time range Can limit the SAS token access time. Start time (st) is optional but Expiry time (se) is mandatory, and no limits are enforced on these parameters. Therefore a SAS token may be valid for a very large time period
SAS Example GET ?$filter=PartitionKey eq 'Coho Winery‘ &sv= &tn=MyTable &st= T08:49Z &se= T08:49Z &sp=r &spk=Coho Winery &srk=Auburn &epk=Coho Winery &erk=Seattle &sig=jDrr6cna7JPwIaxWfdH0tT5v9dc=
AZURE TABLE STORAGE SCENARIOS
Azure Table Storage Scenarios Application logs Static dictionaries and/or lists Session state Distributed cache Configuration storage
AZURE TABLE STORAGE PRICING
Azure Table Storage pricing RedundancyPrice LRS$0.07 per GB GRS$0.095 per GB RA-GRS$0.12 per GB Transactions $ per 100,000 transactions
Questions? Anton Boyko Ukrainian Azure Community Founder Microsoft Azure MVP