Consulting/Training
Blobs and Tables in the Real World
Azure Storage Revisited
Consulting/Training
About Me
 Microsoft Client Development MVP
 ASPInsider
 Twitter: @joelcochran
 Email: joelcochran@gmail.com
 Blog: joelcochran.com
 Lead Developer, WintellectNOW
Consulting/Training
About Wintellect
Founded by top experts on Microsoft – Jeffrey Richter, Jeff Prosise, and John Robbins – we pull out all the stops
to help our customers achieve their goals through advanced software-based consulting and training solutions.
consulting
Wintellect helps you build better software, faster,
tackling the tough projects and solving the software
and technology questions that help you transform
your business.
 Architecture, Analysis and Design
 Full lifecycle software development
 Debugging and Performance tuning
 Database design and development
training
Wintellect's courses are written and taught by some of
the biggest and most respected names in the Microsoft
programming industry.
 Learn from the best. Access the same training
Microsoft’s developers enjoy
 Real world knowledge and solutions on both current
and cutting edge technologies
 Flexibility in training options – onsite, virtual, on
demand
who we are
Consulting/TrainingIndividuals | Businesses | Enterprise Organizations
Authors Enjoy:
 Royalty Income
 Personal Branding
 Cross-Sell Opps
 Free library access
Subscribers Enjoy:
 Expert Instructors
 Quality Content
 Practical Application
 All Devices
Try it free
Code: <INSERT CODE HERE>WintellectNOW.com
Wintellect’s On-Demand Video Training Solution
COCHRAN-13
Consulting/Training
Azure Storage Costs (Monthly)
http://azure.microsoft.com/en-us/pricing/details/storage/
 Block Blobs: start at $0.024 per GB
 Tables and Queues: start at $0.07 per GB
 Outbound data: $0.12 per GB
 Free within the same data center
 Transactions: $0.005 per 100,000 transactions
 Every authenticated request is a transaction
 Response does not have to return data to count as a transaction
 Beware of Queue processors!
Consulting/Training
Blob Storage Overview
 Typically for documents, pictures, music, videos
 An account has blob containers (∞)
 A blob can be any type
 A blob can be up to 200GB
Consulting/Training
Blob Storage Structure
Account Blocks/
Pages
BlobsContainers
wintellect
pictures
documents
Employee.jpg
Building.jpg
Foo.docx
Bar.pptx
(block/page 0)
(block/page 1)
(block/page 2)
Consulting/Training
Accessing a Blob via URL
 Normal URL addressing:
http://account.blob.core.windows.net/container/blob
http://account-secondary.blob.core.windows.net/container/blob
 Azure & Storage Emulator examples:
http://wintellect.blob.core.windows.net/pictures/Employee.jpg
http://127.0.0.1:10000/devstorageaccount1/pictures/Employee.jpg
 Container & Blob naming rules
 Containers: Lowercase, 3-63 characters
 Blobs: Mixed case (case sensitive), 1-1024 characters
 Naming violation results in HTTP 400 (Bad Request)
 http://msdn.microsoft.com/en-us/library/dd135715.aspx
Consulting/Training
Shared Access Signatures (SAS)
 SAS grants granular access to container, blob, table, & queue
 Scenarios: Grant access to logged-in users, write-only container/table/queue,
give users access based on role
 SAS embeds access in URL query string
 Includes time window, permissions,
& optional policy identifier (≤5 per resource
 Make sure you distribute SAS securely
 Always use HTTPS to access the resource
Consulting/Training
What is Azure Table Storage?
 Non-relational Data Store
 Meant for storing Structured Data
 Extremely high capacity and scalability
 NoSQL
Consulting/Training
Table Basics
 A Table itself is (basically) structure-less
 Every row has a PartitionKey, RowKey, TimeStamp, and E-Tag.
 Every row has a property bag (columns) that represents its structure
 Every row is independent
 Properties can be Boolean, Int32s, Int64s, Strings, Doubles, Guids, DateTimes, or
Binary
Consulting/Training
Wintellect Azure Storage Library
 Written by Jeffrey Richter
 Simplifies working with Azure Storage
 High Performance
 Available on Nuget
 https://www.nuget.org/packages/Wintellect.Azure.Storage/
Consulting/Training
Demo Title, if Desired
Consulting/Training
Questions?
joelcochran@gmail.com

Azure Storage Revisited

  • 1.
    Consulting/Training Blobs and Tablesin the Real World Azure Storage Revisited
  • 2.
    Consulting/Training About Me  MicrosoftClient Development MVP  ASPInsider  Twitter: @joelcochran  Email: joelcochran@gmail.com  Blog: joelcochran.com  Lead Developer, WintellectNOW
  • 3.
    Consulting/Training About Wintellect Founded bytop experts on Microsoft – Jeffrey Richter, Jeff Prosise, and John Robbins – we pull out all the stops to help our customers achieve their goals through advanced software-based consulting and training solutions. consulting Wintellect helps you build better software, faster, tackling the tough projects and solving the software and technology questions that help you transform your business.  Architecture, Analysis and Design  Full lifecycle software development  Debugging and Performance tuning  Database design and development training Wintellect's courses are written and taught by some of the biggest and most respected names in the Microsoft programming industry.  Learn from the best. Access the same training Microsoft’s developers enjoy  Real world knowledge and solutions on both current and cutting edge technologies  Flexibility in training options – onsite, virtual, on demand who we are
  • 4.
    Consulting/TrainingIndividuals | Businesses| Enterprise Organizations Authors Enjoy:  Royalty Income  Personal Branding  Cross-Sell Opps  Free library access Subscribers Enjoy:  Expert Instructors  Quality Content  Practical Application  All Devices Try it free Code: <INSERT CODE HERE>WintellectNOW.com Wintellect’s On-Demand Video Training Solution COCHRAN-13
  • 5.
    Consulting/Training Azure Storage Costs(Monthly) http://azure.microsoft.com/en-us/pricing/details/storage/  Block Blobs: start at $0.024 per GB  Tables and Queues: start at $0.07 per GB  Outbound data: $0.12 per GB  Free within the same data center  Transactions: $0.005 per 100,000 transactions  Every authenticated request is a transaction  Response does not have to return data to count as a transaction  Beware of Queue processors!
  • 6.
    Consulting/Training Blob Storage Overview Typically for documents, pictures, music, videos  An account has blob containers (∞)  A blob can be any type  A blob can be up to 200GB
  • 7.
    Consulting/Training Blob Storage Structure AccountBlocks/ Pages BlobsContainers wintellect pictures documents Employee.jpg Building.jpg Foo.docx Bar.pptx (block/page 0) (block/page 1) (block/page 2)
  • 8.
    Consulting/Training Accessing a Blobvia URL  Normal URL addressing: http://account.blob.core.windows.net/container/blob http://account-secondary.blob.core.windows.net/container/blob  Azure & Storage Emulator examples: http://wintellect.blob.core.windows.net/pictures/Employee.jpg http://127.0.0.1:10000/devstorageaccount1/pictures/Employee.jpg  Container & Blob naming rules  Containers: Lowercase, 3-63 characters  Blobs: Mixed case (case sensitive), 1-1024 characters  Naming violation results in HTTP 400 (Bad Request)  http://msdn.microsoft.com/en-us/library/dd135715.aspx
  • 9.
    Consulting/Training Shared Access Signatures(SAS)  SAS grants granular access to container, blob, table, & queue  Scenarios: Grant access to logged-in users, write-only container/table/queue, give users access based on role  SAS embeds access in URL query string  Includes time window, permissions, & optional policy identifier (≤5 per resource  Make sure you distribute SAS securely  Always use HTTPS to access the resource
  • 10.
    Consulting/Training What is AzureTable Storage?  Non-relational Data Store  Meant for storing Structured Data  Extremely high capacity and scalability  NoSQL
  • 11.
    Consulting/Training Table Basics  ATable itself is (basically) structure-less  Every row has a PartitionKey, RowKey, TimeStamp, and E-Tag.  Every row has a property bag (columns) that represents its structure  Every row is independent  Properties can be Boolean, Int32s, Int64s, Strings, Doubles, Guids, DateTimes, or Binary
  • 12.
    Consulting/Training Wintellect Azure StorageLibrary  Written by Jeffrey Richter  Simplifies working with Azure Storage  High Performance  Available on Nuget  https://www.nuget.org/packages/Wintellect.Azure.Storage/
  • 13.
  • 14.

Editor's Notes

  • #7 http://blogs.msdn.com/b/windowsazurestorage/archive/2011/02/18/windows-azure-blob-md5-overview.aspx What is the value of sending an MD5 hash with PutBlock if TCP protocol already ensures the integrity of the data being sent? O Some customers use HTTP, so the MD5 checks for bit flips there O In Azure Storage we store the block with a checksum, which we immediately calculate after the block arrives at our service.  If an MD5 is passed in, we can insure the integrity of the data to match that MD5.  If not, there is an extremely small chance that a bit could be flipped in memory before we have a chance to checksum it.
  • #10 http://blogs.msdn.com/b/windowsazurestorage/archive/2012/06/12/introducing-table-sas-shared-access-signature-queue-sas-and-update-to-blob-sas.aspx http://blog.smarx.com/posts/new-storage-feature-signed-access-signatures http://blog.smarx.com/posts/shared-access-signatures-are-easy-these-days Container/Blob: Read, Write, Delete, List Not supported container ops: create/delete or access properties/metadata Table: Query, Add, Update, Delete via PK/RK range Queue: Read, Add, Update, Process