What is the underlying layer for storing data in Azure Table Storage?


  • I wonder to know how data is stored in Azure Table Storage. Are they get stored on the Blob Storage? I'm coming from an HBase background, in Hbase there is this notion of column family and records belonging to the same column family are partitioned in the same file in the underlying storage layer (HDFS) and each region server is responsible of a column family. How these concepts are different in Azure Table Storage? Are data stored in a columnar fashin? i.e. a tuple (par_key, row_id, att1,att2,...,attn) is stored as (par_key,rowid, att1),....,(par_key,row_id,att2)..?

    • Edited by HESSAMZAK Tuesday, August 4, 2015 5:57 PM
    Tuesday, August 4, 2015 4:18 PM


  • Hi,
    an Azure storage account contains 3 types of storage:
    - Blobs
    - Queues
    - Tables
    Blobs are files that you can save in a container. You can programmatically access to all containers in a storage account and to all files in a container.
    Tables are No-SQL datastores, a table is a collection of entities, an entity a key-value database row.
    Each entity has following system properties:
    - partition key: used to partition data across storage infrastructure
    - row key: unique identifier in a partition
    - timestamp: time of the last update
    and up to 252 user-defined properties.

    The combination of partition key and row key must be unique within the table and it's used for load balancing and scaling.

    Entities with the same partition key can be queried more quickly because the table service will spread your table to multiple servers and all rows with the same partition key are co-located. So you can group operations into a single batch transaction but all operations in the batch must take place on the same partition.

    A tuple (par_key, row_id, att1,att2,...,attn) is stored as a single entity with all of that properties.

    Hope this will be useful for you, regards


    Wednesday, August 5, 2015 1:28 PM