03 data storage
DESCRIPTION
TRANSCRIPT
Click to edit Master subtitle style
03 | Data Storage
Bruno Terkaly | Technical EvangelistBret Stateham | Technical Evangelist
• Windows Azure Storage Overview
• Windows Azure Blob Storage
• Windows Azure Table Storage
• Windows Azure Queue Storage
• Windows Azure SQL Database
Module Overview
Windows Azure Storage
Storage in the CloudScalable, durable, and availableAnywhere at anytime accessOnly pay for what the service uses
Exposed via RESTful Web ServicesUse from Windows Azure ComputeUse from anywhere on the internet
Windows Azure Storage AccountUser specified globally unique account name
North Central USNorthern Europe
Western Europe East Asia
South East Asia
US Europe Asia
Can choose geo-location to host storage account:
South Central US
West US East US
Windows Azure Storage Account
Can CDN Enable AccountBlobs delivered via 24 global CDN nodes
Can co-locate storage account with compute accountExplicitly or using affinity groups
Accounts have two independent 512 bit shared secret keys
100 TBs per account
Features
Geo-ReplicationStorage AnalyticsLogs: Provide trace of executed requests for your storage accountsMetrics: Provide summary of key capacity and request statistics for Blobs, Tables, and Queues
Storage in the Development Fabric
Provides a local “Mock” storage
Emulates storage in cloud
Allows offline development
Requires SQL Express 2005/2008 or above
http://msdn.microsoft.com/en-us/gg433135
The Storage Client API
RESTful APICan call these from any HTTP cliente.g. Flash, Silverlight, etc…
Client API from SDK Microsoft.WindowsAzure.StorageClientProvides a strongly typed wrapper around REST services
Windows Azure Storage Abstractions
TablesStructured storage. A table is a set of entities; an entity is
a set of properties.
QueuesReliable storage and delivery of messages for an application.
BlobsSimple named files along with metadata for the file.
Blob Storage Concepts
BlobContainerAccount
http://<account>.blob.core.windows.net/<container>/<blobname>
Pages/ Blocks
contoso
PIC01.JPG
Block/Page
Block/Page
PIC02.JPG
images
VID1.AVIvideos
Blob Details
Associate Metadata with Blob
Standard HTTP metadata/headers (Cache-Control, Content-Encoding, Content-Type, etc)
Metadata is <name, value> pairs, up to 8KB per blob
Either as part of PutBlob or independently
Blob Details
Blob always accessed by
name
Can include ‘/‘ or other delimeter in name e.g. /<container>/myblobs/blob.jpg
Blob ContainersMultiple Containers per AccountSpecial $root container
Blob ContainerA container holds a set of blobsSet access policies at the container level Associate Metadata with ContainerList the blobs in a containerIncluding Blob Metadata and MD5 NO search/query. i.e. no WHERE MetadataValue = ?
Blobs ThroughputEffectively in Partition of 1Target of 60MB/s per Blob
Two Types of Blobs Under the Hood
Block Blob Page BlobTargeted at random read/write workloads
Each blob consists of an array of pages
Size limit 1TB per blob
Targeted at streaming workloads
Each blob consists of a sequence of blocks
Size limit 200GB per blob
Shared Access Signatures
Fine grain access rights to blobs and containersSign URL with storage key – permit elevated rightsRevocationUse short time periods and re-issueUse container level policy that can be deleted
Table Storage Concepts
EntityTableAccount
contoso
Name =…Email = …
Name =…EMailAdd=
customers
Photo ID =…Date =…
photos
Photo ID =…Date =…
Entity PropertiesEntity can have up to 255 propertiesUp to 1MB per entity
Mandatory Properties for every entityPartitionKey & RowKey (only indexed properties)Uniquely identifies an entityDefines the sort order
Timestamp Optimistic ConcurrencyExposed as an HTTP Etag
No fixed schema for other propertiesEach property is stored as a <name, typed value> pairNo schema stored for a tableProperties can be the standard .NET types String, binary, bool, DateTime, GUID, int, int64, and double
No Fixed Schema
FIRST LAST BIRTHDATE
Wade Wegner 2/2/1981
Nathan Totten 3/15/1965
Nick Harris May 1, 1976
FAV SPORT
Canoeing
Querying
FIRST LAST BIRTHDATE
Wade Wegner 2/2/1981
Nathan Totten 3/15/1965
Nick Harris May 1, 1976
?$filter=Last eq ‘Wegner’
Purpose of the PartitionKeyEntity LocalityEntities in the same partition will be stored together
Entity Group TransactionsAtomic multiple Insert/Update/Delete in same partition in a single transaction
Table ScalabilityTarget throughput – 500 tps/partition, several thousand tps/accountAutomatically load balance partitions
Messaging
QueueAsynchronous communication
Offline processing
Load-balancing
Topic & SubscriptionAsynchronous communicationPublish/Subscription patternMessage routing
Queue Queue
StorageRelational Data
On Premises
Public Cloud
Private Cloud
Raw Hardware
System Center
Since Day 1, Full control, lots of work, not easily scalable
SQL VMs(IaaS)
SQL Database(PaaS)
Killer offering, Can migrate on premises easily, clusters, VPNsSemi-manual
Fully abstracted, triple replication, 150 GB limitChallenging performance
Now you can now get reserved capacity
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.