How can we improve Azure Storage?

Support secondary Indexes

Need to be able to sort on something other than the rowkey

895 votes
Sign in
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    andybritcliffeandybritcliffe shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →
    Aaron BirdAaron Bird shared a merged idea: Allow for secondary indexes on Table Storage  ·   · 

    Thank you for the feedback on this feature, and we apologize for the lack of updates. We have not gotten to this feature due to the focus on delivering Disaster Recovery features such as Read-Access Geo-Redundant Storage, IaaS Disks (Page Blobs), along with other features. Our intent is to provide this feature at some point, but we do not have a timeline for when it will be delivered.


    Sign in
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      • RyanLMRyanLM commented  ·   ·  Flag as inappropriate

        You can manage this by hand, I do it today and built some reusable code to maintain this. However, changing or adding indexes in the future is a pain, and with the lack of cross table transactions, I have had instances where an index did not get created. Which means if you want/need true integrity, you need to have other process/patterns in place.

        So while, yeah you can do this today, other systems, even Amazon's does this now for you. I would love to not have to deal with this.

      • FrankFrank commented  ·   ·  Flag as inappropriate

        I wonder the same first glance this feature seems like an essential key ingredient, but on further examination the 'feature' can be implemented as part of the table design.

        Am I right in saying that the only real benefit this feature would bring would be automatic guarantees of integrity across multiple entries? So the programmer would not need to rely on azure queues for example?

        I would agree that this should be a high priority feature...but largely for non-technical reasons. Am I correct in understanding that the real problem here is a development community entrenched in the relational mindset, and who need features like this to drive adoption and improve the reputation of the platform?

      • John LeidegrenJohn Leidegren commented  ·   ·  Flag as inappropriate

        Does this even make sense? I thought the point was that you'd build out any secondary indexes much in the sense that you have to think of it as a asynchronous process that eventually indexes all your data. What else could you possibly be doing at this scale?

        What Anders Madsen wrote in his comment makes a lot of sense to me.

      • Anders MadsenAnders Madsen commented  ·   ·  Flag as inappropriate

        Price kept in mind, I think that ATS functions and performs very well, and there's no reason why you can't index the data yourself.

        I've used a radical approach, where I create Btree indexes, saved in blobs. I then use cheap small workerroles that executes SQL-like queries, and it performs very well.
        Only thing to keep in mind, is that this approach creates stale indexes, so it primarily targets applications that access the table storage in an asynchronous way, e.g. reading and writing at different times of the day.

      • Shaun TonstadShaun Tonstad commented  ·   ·  Flag as inappropriate

        @Jeff Windows Azure Storage / Tables is something of a joke among savy cloud developers. Four years have past since this original request was made. There is no sense of urgency from MS to make this service competitive with other solutions (i.e. AWS SimpleDb). It's clear that MS lacks the expertise to improve it or the political desire given dominance of SQL Azure.

      • smithkl42smithkl42 commented  ·   ·  Flag as inappropriate

        At this point, ATS is so behind the ball compared to all the other no-sql alternatives out there that it almost seems like a waste to continue with it. Wouldn't it make better sense just to make something like RavenDB or MongoDB a first-class citizen and move forward with that?

      • Anonymous commented  ·   ·  Flag as inappropriate

        @John Wyler, I've used Azure Tables for years now and it performs great if what you need is a key, value or key,attribute store. Yes, it will be great to have secondary index, but Azure Tables is significantly cheaper than DynamoDB, even more so that they just announced that you get 1,000,000 transactions for $0.05, and that is any size of transaction (up to 1MB entity). I can afford Azure Tables, but I can't afford DynamoDB for my business.

      • John WylerJohn Wyler commented  ·   ·  Flag as inappropriate

        There is no way I'm using ATS without its support for global and local secondary indices. It appears neither SQL Azure nor Table Storage is suitable for big data applications. DynamoDB it is!

      • Aaron BirdAaron Bird commented  ·   ·  Flag as inappropriate

        Is there any update on this? AWS is eating your lunch when it comes to table storage and honestly, we are considering moving everything to AWS just to get secondary indexes in DynamoDB. It's that big of a deal.

        What is the table storage team doing? Table storage is literally the same as it was when v1 of Azure shipped 5+ years ago.

        I would love to know when this is happening so we can plan accordingly. Scalable storage is a key piece of our architecture and it seems that Microsoft has abandoned it.

      • Tom SawyerTom Sawyer commented  ·   ·  Flag as inappropriate

        On 2009, Dec 7, Mike Wickstrand (MS) said
        "Announced at PDC that it’s coming"

        Today is Oct 26, 2013. I really really really want to use Table Storage, but without secondary indexes and some LINQ support for aggregate operations it is not worth it.

      • Ted van der VeenTed van der Veen commented  ·   ·  Flag as inappropriate

        Or maybe implement tags that can be attached to items in the Table Storage? A bit like how tags are implemented in items in Windows Azure Caching?

      • smithkl42smithkl42 commented  ·   ·  Flag as inappropriate

        My goodness, Microsoft. What are you guys thinking? This has been supposedly "in the works" for years now, and it still isn't here?

        We currently have two supported options to choose from: (1) Table storage, which is basically just a glorified text file; and (2) Azure SQL, which is great, but scales like wet cement. We really need something somewhere in-between. Given any thought to supporting, say, MongoDB or CouchDB or Riak or... ? Those are currently *much* more full-featured than Azure table storage, and I can't for the life of me figure out why Azure wouldn't at least pick one to make a first-class citizen.

      • Rob PotterRob Potter commented  ·   ·  Flag as inappropriate

        Building up an index table could be implemented in application code, but I imagine that most developers have written this into their application, maintaining the indexes with every insert/delete operation. It is such a common scenario that I think it should be part of the storage platform.

        I see AWS DynamoDB now supports it...

      • DennisDennis commented  ·   ·  Flag as inappropriate

        This was announced as coming at the PDC conference in 2009. Three years later, I'm pretty sure we'll never see it. Microsoft has recently started a beta version of Hadoop on Azure (see

        My best bet now is that Hadoop will be the preferred approach and will meet whatever needs there may have been for secondary indexes in Azure Table Storage.

        Once SQL Azure came out, there didn't seem to be any steam left behind further advancements to Table Storage. Microsoft missed the boat on this one, but I think this feature request has long since become irrelevant. There just wasn't much use for Table Storage in the way it was first released and it didn't get any real upgrades from that early version.

      ← Previous 1 3 4

      Feedback and Knowledge Base