34
Click to edit Master subtitle style 03 | Data Storage Bruno Terkaly | Technical Evangelist Bret Stateham | Technical Evangelist

03 data storage

Embed Size (px)

DESCRIPTION

 

Citation preview

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

Click to edit Master subtitle style

Windows Azure Storage Overview

Agenda

Windows Azure Storage

Blob Storage

Drives

Tables

Queues

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

Storage Libraries in Many Languages

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.

Click to edit Master subtitle style

Windows Azure Blob Storage

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

Main Web Service

Operations

PutBlobGetBlobDeleteBlobCopyBlobSnapshotBlob LeaseBlob

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

DEMOWindows 8 Uploading Pictures as Blobs

Click to edit Master subtitle style

Windows Azure Table Storage

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

Click to edit Master subtitle style

Windows Azure Queue Storage

Messaging

QueueAsynchronous communication

Offline processing

Load-balancing

Topic & SubscriptionAsynchronous communicationPublish/Subscription patternMessage routing

Queue Queue

DEMOASP.NET App Writing to Azure Tables and Queues

Click to edit Master subtitle style

Windows Azure SQL Database

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

DEMOSQL Database and SQL Server at the Portal

©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.