Table Storage
What is Azure Table storage? 1
Data partitioning strategies by service 2
Design for data modification 3
Design for querying 4
Design a scalable partitioning strategy for Azure Table storage 5
Design scalable and performant tables 6
Guidelines for table design 7
Index Table pattern 8
Performance and scalability checklist for Table storage 9
Query operators supported for the Table service 10
Querying tables and entities 11
Scalability and performance targets for standard storage accounts 12
Scalability and performance targets for Table storage 13
Table design patterns 14
Understanding the Table service data model 15
Writing LINQ queries against the Table service 16
Table Design Patterns TOC
Table design patterns 17:
- Intra-partition secondary index pattern
- Inter-partition secondary index pattern
- Eventually consistent transactions pattern
- Index entities pattern
- Denormalization pattern
- Compound key pattern
- Log tail pattern
- High volume delete pattern
- Data series pattern
- Wide entities pattern
- Large entities pattern
- Prepend/append anti-pattern
- Log data anti-pattern
- Implementation considerations
- Retrieving entities
- Modifying entities
- Working with heterogeneous entity types
- Controlling access with Shared Access Signatures
- Asynchronous and parallel operations
Modeling relationships 18:
- One-to-many relationships
- One-to-one relationships
- Join in the client
- Inheritance relationships
Performance and scalability checklist 19:
- Checklist
- Scalability targets
- Networking
- SAS and CORS
- Batch transactions
- .NET configuration
- Unbounded parallelism
- Client libraries and tools
- Handle service errors
- Configuration
- Schema
Azure.Data.Tables v12.7.1
TableEntity public sealed class 20: Azure.Data.Tables.ITableEntity, IDictionary<string,object>
Azure.Data.Tables query 21
GitHub Pages samples 22
Announcing the new Azure Tables Libraries 23
Querying tables and entities 24
Entity Size Calculation
How the size of an entity is calculated in Windows Azure Table storage 25
Understanding Windows Azure Storage billing: bandwidth, transactions, and capacity 26
How to calculate the Azure Table storage row size 27
int sizeInBytes = o switch
{
// String|# of Characters * 2 bytes + 4 bytes for length of string
string s => 4 + 2*s.Length,
// DateTime|8 bytes
DateTime _ => 8,
// GUID|16 bytes
Guid _ => 16,
// Double|8 bytes
double _ => 8,
// Int|4 bytes
int _ => 4,
// INT64|8 bytes
long _ => 8,
// Bool|1 byte
bool _ => 1,
// Binary|sizeof(value) in bytes + 4 bytes for length of binary array
byte[] x => 4 + x.Length,
_ => throw new NotSupportedException(o.GetType().Name)
};
An entity always has the following system properties:
PartitionKey(<1KiB, characters disallowed in key fields)RowKey(<1KiB)Timestamp(internal optimistic concurrency)
Combined size of all data in entity properties < 1MiB (1,048,576 bytes)
Total entity size = overhead + lenKeys + properties:
- Overhead: 4 bytes for each entity (includes
Timestampand system metadata) - lenKeys: Len(PartitionKey + RowKey) * 2 bytes (stored as UTF-16)
- Properties: for each property: 8 bytes + Len(Property Name) * 2 bytes + Sizeof(.NET Property Type)
| .NET Property Type | Sizeof() |
|---|---|
| String | # of Characters * 2 bytes + 4 bytes |
| DateTime | 8 bytes |
| GUID | 16 bytes |
| Double | 8 bytes |
| Int | 4 bytes |
| INT64 | 8 bytes |
| Bool | 1 byte |
| Binary | sizeof(value) + 4 bytes |