2
votes

I have a need to query JSON data stored in Azure blob storage, for operations of filtering (on data types text, data and int), paging (i.e. a functionality similar to skip and take).

The problem my JSON structure is that there is no specific format of JSON data (key/value pair) and is dynamic . Hence the key/value pair of one JSOn result data can differ from another JSOn result data.

Can Azure search help in building indexes on such dynamic JSOn data so that the same can be queried or is there another preferred way?

2
Blob storage is for .. well, storage... not so much for querying. Better use DocumentDB for that.Peter Bons
Thanks for replying Peter. I understand your point, however, wanted to leverage the search services provided by Azure search in order to get the functionality done. I understand its doable through DocumentDB. But do you have any idea if Azure search services work with dynamic JSOn data?puneet
To be honest I don't. We do have a lot of json documents in blob as well but we are looking at Azure Data Lake Analytics for analysis purposes (See azure.microsoft.com/en-us/services/data-lake-analytics) since you can read from blob storage directly. But the operations you mention like filtering and paging are typical database scenario's. Hence my recommendation to take a look at DocumentDB as a NoSQL solution.Peter Bons
Thanks Peter, It seems like DocumentDb will serve better as an optionpuneet

2 Answers

1
votes

Take a look at this https://docs.microsoft.com/en-us/azure/search/search-howto-index-json-blobs maybe it can help you.

Other option might be to export json from blob storage into Azure SQL Database or DocumentDB (maybe not everything - if you can you can export just part of data that you need) and query it there.

0
votes

If you only need filtering like exact matches and numerical comparisons, then a document database such as DocumentDB may be a better choice than Azure Search.

Azure Search excels in linguistically aware full text search (including things like dealing with inflected word forms, misspellings, fuzzy matching, etc.)

As Jovan pointed out, the options are not mutually exclusive - you can use DocumentDB as the primary store and Azure Search for full text search scenarios (getting data from DocumentDB using DocumentDB indexer if necessary).