As a Web Developer everyday we are hearing about new technologies, recently I came to know about Elastic Search it is used to analyze the big volumes of data. I've my data in Mongo DB weather it is possible to use elastic search on it.
MongoDB Atlas has a feature called 'Atlas Search', which implements the Apache Lucene engine. This could be a solution for your search requirements.
See Atlas Search for details
Depends what you mean by "analyze the big volumes of data", what are your requirements? Don't pay to much attention on marketing slogans. Maybe you can connect Elasticsearch with MongoDB via an ODBC driver. Elasticsearch is a document oriented NoSQL database like MongoDB is. As usual both have their pros and cons.
MongoDB is more like a database, i.e. it supports CRUD (Create, Read, Update, Delete) operations and the Aggregation Framework is very powerful.
In Elasticsearch you can store data and analyze or query it. I remember in earlier releases it was not so easy to delete or update existing single documents.
Related
Some architectures keep data in an SQL database and sync it with Elasticsearch to support some advanced search options that Elasticsearch is good at, but if they do that, what is the reason to keep the data in the SQL database? After all, you can create, read, update and delete in in ES also.
Thanks.
I can see reasons for keeping it in SQL if your architecture was built around for example you might be using an MVC framework like Laravel or Django that plays nice with sql and the relational db architecture.
We are planning to use Azure Cosmos as a DB for Storing a bunch of Documents (JSON Objects), Does Cosmos have any feature to create Views like Mongodb
I searched many places but could not get details
No CosmosDB does not have, it looks like you will have to create another collection.
If you look at the commands, you can see that there is no command to create a view in CosmosDB.
Based on the REST API and Administration Commands, the feature is not supported by cosmos db mongo api yet.(Please see a similar thread:Is it possible to use MongoDB Views with Azure CosmosDB?)
Per my knowledge, CosmosDB just supports a subset of the MongoDB API. CosmosDB has some different behaviours and results. But the onus is on CosmosDB to improve their emulation of MongoDB.
In addition, you could add feedback here to submit your requirements.Or you could consider using MongoDB Atlas on Azure if you'd like full MongoDB feature support.
I'm working on a SaaS which have a database for each account, with basically the same tables. What's the best way to index all databases separately? I was thinking about setting different solr instances(different ports) for each database in the same server, but it could be hard on the server. So, i'm in this crazy doubt on what to do next. I haven't found any useful idea in the solr documentation. Could you guys help out. Thanks in advance.
If you store all the data from all of your tenants on one collection, it will be easy in the beginning because probably you will do several changes on your schema and it is easier if you do them once for all your customers.
As a negative point in this scenario you will have lots of unrelated data grouped together and you always have to use a filter query for the tenant (client) id.
What if you create, for starters, a collection for each of the tenant on the same Solr server? This way you don't mix the data of your tenants and you achieve the functionality you basically need.
In this scenario, as it happens for your relational database instances, you have to keep the schema changes in sync.
For relational databases there are tools like flyway or liquibase that can be used to version the changes applied on each of the tenant database.
For Solr there aren't AFAIK such tools, but you can apply your schema changes programmatically through Solr Schema API. In case you have to do highly detailed changes that can't be done via the Schema API, you can replace the schema.xml file of each collection with an updated version of it and restart the solr server.
What you need to keep in mind is backward compatibility. Whenever you add some changes to any of the databases (relational DB or Solr) you need to take into account that the old code must still work with the latest updates that you perform on the relational database/ solr schema structure.
I am currently doing an app that loads data into HBase, I chose HBase because the data is not structured and therefore using a column based database is recommended.
Once the data is in HBase I thought of integrating Solr to it but I found little information about the subject and no answer for my question "https://stackoverflow.com/questions/36542936/integrating-solr-to-hbase"
So I wanted to ask how I can query data stored in HBase? Spark Streaming doesn't seem to be made for that ..
Any help please ?
Thanks in advance
Assuming that your question is on how to query data from Hbase.
Apache Phoenix Provides a Sql Wrapper over Hbase.
Hive Hbase Integration Hive also provides a Sql Wrapper over Hbase
Spark Hbase Plugin lets your Apache Spark application interact with Apache HBase.
I would like to know weather SOLR supports a NoSql Database or a Relational Database?
Thanks
Solr internally uses Apache Lucene for indexing. Details about the index file structure is available in the docs here.
Technically this can be classified as a NoSQL store.