Editorials

NoSql Meta Data

How do you obtain meta-data when you use an NoSql data store? Is it even important? Perhaps the reason you used a NoSql data store in the first place, is that meta data is not important to you.

So, to define the playing field, lets take a look at some of the kinds of meta data that are available in an SQL data store. SQL provides definitions of the contents through ANSI SQL standards in the INFORMATION_SCHEMA views. These views define procedures, parameters for procedures, tables and views, columns for tables and views, among many other things. In short, it defines interfaces for input and communication, defined to the smallest attribute of data type on any column or parameter.

When it comes to sets, SQL Server provides techniques to get counts, space allocation, data distribution, and summary information.

It is harder to compare NoSql data stores when it comes to meta data, because they are all a little different. Azure table data is one where I found a need to have some meta data, and was required to roll my own. I simply wanted some record counts, dates, and amount of space used. This information was not available, so I had to build my own. I simply used another table data store in Azure to contain the meta data about other storage.

When you use objects in NoSql the kind of information you could store has a greater complexity due to the non-structured requirement of the storage. You can store sets of data within sets of data, etc. You could store a company with different locations. For each location you could have a number of telephone numbers. Sets within sets make meta data more complicated to expose.

Is it worth rolling your own meta data for NoSql data stores? Is that something that is better done on demand rather than computing prior to consumption? If you do track it independently, how do make sure it is in sync with the detail data?

Leave your thoughts with us through comments here, or by Email to btaylor@sswug.org.

Cheers,

Ben