3

Im running through a course on Cloud Academy - now known as QA - and it makes the statement that

Azure Table Storage is a "Key/attribute store" and Redis cached is a "Key value store"

Is there a different in the concepts between key value and key attribute or is it that each product uses different wording?

3 Answers 3

1

The key-value store associates a key with a value. Each value can be elementary or it can be composite, e.g. a serialized object. Think of it as a dictionary. Or as a table with two columns. The principle is that the code reading from the stores needs to know how to interpret/use the value retrieved for a key.

The key-attribute store associates a key with a set of several values each having an attribute name. The set of all the pairs attribute-name/value queried for a key defines an entity/object. This model allows to structure the objects stored in a dynamic and self-documented way (adding new attribute, and ignoring others). Think of the set of attribute-names/values associated with a same key, as a kind of javascript object. Or as a table where every row can have different columns.

3

"Key value store" is definitely the more common term, which has also a Wikipedia entry.

I can only guess why in context of Azure Table Storage, the Microsoft docs call this a key/attribute store, but I am pretty sure your online course just copied the terms without reflection about the meaning. My guess about the official docs is that in that context, the author wanted to put the focus on the retrieved values being the attributes of an entity.

So no, there is no big difference in concepts between the two terms, and using the term "attributes" instead of "value" just makes a slight shift in connotation.

1

I think the "key" difference here is that a key/value store implies a single key and a single value. Where as an attribute value store means that your value is split into multiple (sub) key/value pairs.

Azure Table Storage allows you to query a selection of attributes/columns from the whole value/row. Where as with Redis cache you get the whole value/blob that goes with your key.

Azure Table Storage:

Azure Table Storage

So here we get an entity by it's key and choose only the "attribute"s name/email etc we want. Or we can get a set of entities by an attribute. ie country=gb

Where as in a key/value store, we just get one whole value by its key.

PS. I'm sure that both products can work in both ways, but naming sticks

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.