Storing data in the cloud<br />Eric Nelson<br />Microsoft UK<br />Email: eric.nelson@microsoft.com<br />Blog: http://geeks...
<ul><li>Storage in the Cloud
Queues
Blobs
Tables
Relational</li></ul>Agenda<br />
Storage in the Cloud…<br />Windows Azure Storage and SQL Azure<br />
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 /...
Solve using the Cloud aka Windows Azure Platform<br />SQLAzure<br />Browser<br />p1 p2 p3<br />Web Role<br />N L B<br />Wo...
3 Important Services<br />3 Critical Concepts<br />Windows Azure<br />Compute and Storage<br />SQL Azure<br />Storage<br /...
Blobs, Tables, Relational<br />
Queues<br />
Blobs, Tables, Relational<br />
Blobs, Tables, Relational<br />
Provides structured storage<br />Massively scalable tables (TBs of data)<br />Self scaling<br />Highly available<br />Dura...
No join<br />No group by<br />No order by<br />“No Schema”<br />Not a Relational Database<br />
Table<br />A Table is a set of Entities (rows)<br />An Entity is a set of Properties (columns)<br />Entity<br />Two “key” ...
Key Example – Blog Posts<br />Partition 1<br />Partition 2<br />Getting all of dunnry’s blog posts is fast<br />Single par...
Query a Table<br />REST:  <br />GET http://account.table.core.windows.net/Customer?$filter=%20PartitionKey%20eq%20value<br...
Demo:  Windows Azure Storage<br />
Lessons LearnedAzure Storage – Entity Group Transactions<br />Different Entity types in the same table<br />E.g. PK = Cust...
Blobs, Tables, Relational<br />
SQL Azure (July 2009)aka SQL Data Servicesaka SQL Server Data Services<br />
On Premise Programming Model<br />This is what we do on-premise...<br />Data<br />TDS<br />RDBMS<br />Client<br />SQL Serv...
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 />Clie...
SQL Azure can do this<br />Data<br />TDS<br />RDBMS<br />Client<br />SQL Azure<br />
SQL Azure can also do this<br />HTTP<br />TDS<br />RDBMS<br />Browser<br />Web Role<br />SQL Azure<br />
And this!<br />Queue<br />TDS<br />HTTP<br />RDBMS<br />Browser<br />Web Role<br />Worker Role<br />SQL Azure<br />
Which means you can easily migrate from this<br />“The Data Center”<br />TDS<br />HTTP<br />RDBMS<br />Browser<br />Web Ti...
To this… Windows Azure and SQL Azure<br />“The Cloud”<br />Queue<br />TDS<br />HTTP<br />RDBMS<br />Browser<br />Web Role<...
Demo:  SQL Azure<br />
Lessons LearnedSQL Azure<br />From the database “down” it’s just SQL Server<br />Well, almost …<br />Many tools don’t work...
Lessons LearnedSQL Azure<br />Tooling<br />SSMS partially works – “good enough”<br />Can not create connection using Visua...
Lessons LearnedSQL Azure<br />Types<br />No spatial or hierarchy id<br />No Text/images support.  <br />Use nvarchar(max)<...
Lessons LearnedSQL Azure<br />Development<br />No CLR<br />Local temp tables are allowed <br />Global temp tables are not ...
Lessons LearnedSQL Azure vs Windows Azure Tables<br />SQL Server is very familiar<br />SQL Azure *is* SQL Server in the cl...
Upcoming SlideShare
Loading in...5
×

Storage in the Windows Azure Platform - ericnel

2,008

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,008
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
92
Comments
0
Likes
1
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: eric.nelson@microsoft.com<br />Blog: http://geekswithblogs.net/iupdateable<br />Twitter: http://twitter.com/ericnel and http://twitter.com/ukmsdn<br />Podcast: http://bit.ly/msdnpodcast<br />Newsletter: http://msdn.microsoft.com/en-gb/flash<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 http://account.table.core.windows.net/Customer?$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 />http://account.table.core.windows.net<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 />http://geekswithblogs.net/iupdateable<br />Azure Training Kit (August update)<br />www.azure.com<br />Sign up, links to resources etc<br />http://www.cerebrata.com<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×