When importing data into Crate, JSON is the only supported format.
Yes, this is possible, read more about data import here which also applies to PostgreSQL.
By default, no, as Crate uses Lucene indices slightly differently. Crate extends the indices and relies on some extra attributes. There are options though. You can export an Elasticsearch instance and import it into Crate, which is easy and efficient thanks to Crate’s dynamic schema update feature. After that you can enable the traditional ES API from Crate and read your data via the ES API. For more details, we recommend reading this document on the differences between Elasticsearch and Crate.
Crate does not currently support foreign keys.
Crate does not currently support procedures.
Crate does not currently support subselects, but implementing this feature is on our roadmap.
Crate does not currently support triggers.
Crate has a convenient CREATE SNAPSHOT SQL command that stores the current state of one or all tables into a backup store. There are drivers for several stores available, including local file system, an Amazon S3 storage, or HDFS. For more details see the documentation.
Crate offers Enterprise Licenses that entitle customers to premium support. Enterprise license holders will also have access to extra features and drivers.
MemSQL (as any in-memory DB) is great when your data size will fit into memory. Despite some mechanics to store overflowing data on disk, in reality this will negatively impact the performance and usability. While the raw query performance may be better with MemSql (as long as the data is in memory), Crate is close, but provides an ideal solution for all use cases where datasets will grow over time and a cost effective solution is required for storage as well as querying by adding commodity servers to match data growth.
Crate offers a level of SQL compatibility, but with improved speed and scalability.
The World of NoSQL databases is a large one, so we recommend you read our list of comparisons to other databases.
You can import data into Crate with normal INSERT statements (if you have large amounts of initial data, we have some extra tips how to ingest them), or, more efficiently, via COPY FROM statements. These can take JSON as an import format and create a dynamic schema.
Crate is a database, and Elasticsearch is a search engine. Crate borrows code and functionality from Elasticsearch and other open source components, but adds substantial functionality on top. We have a guide available that explains the differences in more detail.
Crate is an independent database that uses some functionality from Elasticsearch, but it is not a plugin.
More resources are always better, from the configuration of a single Crate node as well as the number of nodes in a cluster. For a useful production environment you should have several GB of RAM, 4 cores, and a decent SSD drive per node. We recommend at least a five node cluster if resilience and performance are important.
We explicitly maintain support for Spring, Doctrine and SQLAlchemy. Community supported drivers also support ActiveRecord.
You can find the current version of ElasticSearch Crate is using by visiting SERVER_IP:4200, which lists the version.
Crate is mostly configured via a settings file or when launched on the command line via arguments. You can use Crate’s SQL interface to change certain settings at runtime using the SET / RESET commands. The settings that can be changed are marked with Runtime: yes.