First - we love Elasticsearch for its simplicity and beauty. It is a fantastic search-engine and we have worked with Elasticsearch since its very beginning, we know it in and out. Already in 2012 Jodok (CTO) had a famous talk in Berlin about using Elasticsearch "Quering 24 billion records in 900ms". We liked their concept of simple setup, sharding, full text search and high availability and just wanted to have an operational database that feels like that. Thats why we started Crate in the first place and why Lucene/Elasticsearch is included as library in Crate.
The difference? Elasticsearch is a search engine and Crate is a database.
Crate features its unique Distributed SQL Query Engine which extends the equivalent functions in Elasticsearch. Everything gets handled through the SQL interface in a distributed fashion. In general Crate has at least the speed as Elasticsearch, but on distributed aggregations it can be significantly faster, because Crate not only searches data distributed, but also can compute the search result in a distributed fashion before returning it to the asking node.
Use-cases we see often: companies run a RDMBS (MySQL etc) and have added Elasticsearch to be able to do high speed full text search. Or they combine their operational relational database with Elasticsearch to be able to run fast analytics. In such scenarios a migration of all the data into one single Crate cluster gives you best of both worlds if you prefer SQL as query language. Store relational data, documents and blobs in Crate and use it operationally with your apps. And in parallel use the same Crate cluster to run realtime analytics and dashboards using SQL. No hassle with syncing, all data is hot and highly available.
More details on the differences:
Crate isn’t just a translating SQL commands into Elasticsearch language. It is not a layer, but a implementation as a SQL database product. The Elasticsearch query engine has been replaced with Crate´s Distributed SQL Query Engine, specifically a SQL-parser, analyzer, query planer and execution engine.
Crate mainly uses Elasticsearch for Cluster-State, Node-Discovery/Management, Sharding, Replication and storing data in Lucene.
A little disclaimer: comparisons depend on generalizations by their very nature. Let us know if you think we didn’t get something right and get in contact.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form