Storage in the Windows Azure Platform - ericnel


Published on

Windows Azure Storage and SQL Azure. Delivered at UK Azure Net meeting 6th of Oct 2009

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Partition Key – how data is partitionedRow Key – unique in partition, defines sortGoalsKeep partitions small (increased scalability)Specify partition key in common queriesQuery/sort on row key
  • Each Table: PartitionKey (e.g. DocumentName) to ensure scalabilityRowKey (e.g. version number)[fields] for data
  • Storage in the Windows Azure Platform - ericnel

    1. 1. Storing data in the cloud<br />Eric Nelson<br />Microsoft UK<br />Email:<br />Blog:<br />Twitter: and<br />Podcast:<br />Newsletter:<br />
    2. 2. <ul><li>Storage in the Cloud
    3. 3. Queues
    4. 4. Blobs
    5. 5. Tables
    6. 6. Relational</li></ul>Agenda<br />
    7. 7.
    8. 8. Storage in the Cloud…<br />Windows Azure Storage and SQL Azure<br />
    9. 9. Solve using the Cloud aka Windows Azure Platform<br />Browser<br />p1 p2 p3<br />Web Role<br />N L B<br />Worker Role<br />N L B<br />Browser<br />AzureStorage<br />Web Role<br />Browser<br />Worker Role<br />Worker Role<br />Browser<br />Web Role<br />Browser<br />You don’t see this bit<br />You don’t see this bit<br />You don’t see this bit<br />or…<br />Maybe you do<br />
    10. 10. Solve using the Cloud aka Windows Azure Platform<br />SQLAzure<br />Browser<br />p1 p2 p3<br />Web Role<br />N L B<br />Worker Role<br />N L B<br />Browser<br />AzureStorage<br />Web Role<br />Browser<br />Worker Role<br />Worker Role<br />Browser<br />Web Role<br />Browser<br />You don’t see this bit<br />You don’t see this bit<br />You don’t see this bit<br />Ok, you definitely do<br />
    11. 11. 3 Important Services<br />3 Critical Concepts<br />Windows Azure<br />Compute and Storage<br />SQL Azure<br />Storage<br />.NET Services<br />Connecting<br />Computation<br />Web and Worker<br />Storage<br />Table, Blob, Relational<br />Messaging<br />Queues, Service Bus<br />
    12. 12. Blobs, Tables, Relational<br />
    13. 13. Queues<br />
    14. 14. Blobs, Tables, Relational<br />
    15. 15. Blobs, Tables, Relational<br />
    16. 16. Provides structured storage<br />Massively scalable tables (TBs of data)<br />Self scaling<br />Highly available<br />Durable<br />Familiar and easy-to-use API, layered<br />.NET classes and LINQ<br />ADO.NET Data Services – .NET 3.5 SP1<br />REST – with any platform or language<br />Introduction to Tables<br />
    17. 17. No join<br />No group by<br />No order by<br />“No Schema”<br />Not a Relational Database<br />
    18. 18. Table<br />A Table is a set of Entities (rows)<br />An Entity is a set of Properties (columns)<br />Entity<br />Two “key” properties form unique ID<br />PartitionKey – enables scale<br />RowKey – uniquely ID within a partition<br />Data Model<br />
    19. 19. Key Example – Blog Posts<br />Partition 1<br />Partition 2<br />Getting all of dunnry’s blog posts is fast<br />Single partition<br />Getting all posts after 2008-03-27 is slow<br />Traverse all partitions<br />
    20. 20. Query a Table<br />REST: <br />GET$filter=%20PartitionKey%20eq%20value<br />LINQ:<br />var customers = from o in context.CreateQuery&lt;customer&gt;(“Customer”) where o.PartitionKey == value select o;<br />Azure<br />Table Storage<br />Worker Role<br /><br />
    21. 21. Demo: Windows Azure Storage<br />
    22. 22. Lessons LearnedAzure Storage – Entity Group Transactions<br />Different Entity types in the same table<br />E.g. PK = CustomerId<br />Customer, Order and OrderDetails in the same table<br />
    23. 23. Blobs, Tables, Relational<br />
    24. 24. SQL Azure (July 2009)aka SQL Data Servicesaka SQL Server Data Services<br />
    25. 25. On Premise Programming Model<br />This is what we do on-premise...<br />Data<br />TDS<br />RDBMS<br />Client<br />SQL Server<br />
    26. 26. Same for the cloud? <br />So, is this is what we would like to do in the cloud...<br />Data<br />TDS<br />RDBMS<br />Client<br />SQL Server<br />
    27. 27. SQL Azure can do this<br />Data<br />TDS<br />RDBMS<br />Client<br />SQL Azure<br />
    28. 28. SQL Azure can also do this<br />HTTP<br />TDS<br />RDBMS<br />Browser<br />Web Role<br />SQL Azure<br />
    29. 29. And this!<br />Queue<br />TDS<br />HTTP<br />RDBMS<br />Browser<br />Web Role<br />Worker Role<br />SQL Azure<br />
    30. 30. Which means you can easily migrate from this<br />“The Data Center”<br />TDS<br />HTTP<br />RDBMS<br />Browser<br />Web Tier<br />Bus. Logic<br />SQL Server<br />
    31. 31. To this… Windows Azure and SQL Azure<br />“The Cloud”<br />Queue<br />TDS<br />HTTP<br />RDBMS<br />Browser<br />Web Role<br />Worker Role<br />SQL Azure<br />
    32. 32. Demo: SQL Azure<br />
    33. 33. Lessons LearnedSQL Azure<br />From the database “down” it’s just SQL Server<br />Well, almost …<br />Many tools don’t work today<br />System catalog is different<br />Above the database is taken care of for you<br />You can’t really change anything<br />
    34. 34. Lessons LearnedSQL Azure<br />Tooling<br />SSMS partially works – “good enough”<br />Can not create connection using Visual Studio designer<br />Other tools may work better<br />No BCP (currently)<br />DDL<br />Must be a clustered index on every table<br />No physical file placement<br />No indexed views<br />No “not for replication” constraint allowed<br />No Extended properties<br />Some index options missing (e.g. allow_row_locks, sort_in_tempdb ..)<br />No set ansi_nulls on<br />
    35. 35. Lessons LearnedSQL Azure<br />Types<br />No spatial or hierarchy id<br />No Text/images support. <br />Use nvarchar(max)<br />XML datatype and schema allowed but no XML index or schema collection.<br />Security<br />No integrated security<br />
    36. 36. Lessons LearnedSQL Azure<br />Development<br />No CLR<br />Local temp tables are allowed <br />Global temp tables are not allowed<br />Cannot alter database inside a connection<br />No UDDT’s<br />No ROWGUIDCOL column property<br />
    37. 37. Lessons LearnedSQL Azure vs Windows Azure Tables<br />SQL Server is very familiar<br />SQL Azure *is* SQL Server in the cloud<br />Windows Azure Storage is…very different <br />Make the right choice<br />Understand Azure storage<br />Understand SQL Azure<br />Understand they are totally different<br />You can use both<br />
    38. 38. Lessons Learned SQL Azure vs Windows Azure Tables<br />SQL Azure is not always the best storage option<br />SQL Azure costs more<br />Delivers a *lot* more functionality<br />SQL Azure is more limited on scale<br />
    39. 39. Lessons Learned SQL Azure and Sharding<br />Can be done<br />Many 10GB databases<br />Not fun <br />
    40. 40. In Summary<br />
    41. 41. Resources<br />Slides, links and more<br /><br />Azure Training Kit (August update)<br /><br />Sign up, links to resources etc<br /><br />